@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,269 @@
|
|
|
1
|
+
import { 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 class RVMasonryLayoutManagerImpl extends RVLayoutManager {
|
|
8
|
+
constructor(params, previousLayoutManager) {
|
|
9
|
+
var _a;
|
|
10
|
+
super(params, previousLayoutManager);
|
|
11
|
+
/** Current column index for sequential placement */
|
|
12
|
+
this.currentColumn = 0;
|
|
13
|
+
/** If there's a span change for masonry layout, we need to recompute all the widths */
|
|
14
|
+
this.fullRelayoutRequired = false;
|
|
15
|
+
this.boundedSize = params.windowSize.width;
|
|
16
|
+
this.optimizeItemArrangement = params.optimizeItemArrangement;
|
|
17
|
+
this.columnHeights = (_a = this.columnHeights) !== null && _a !== void 0 ? _a : Array(this.maxColumns).fill(0);
|
|
18
|
+
}
|
|
19
|
+
/**
|
|
20
|
+
* Updates layout parameters and triggers recomputation if necessary.
|
|
21
|
+
* @param params New layout parameters
|
|
22
|
+
*/
|
|
23
|
+
updateLayoutParams(params) {
|
|
24
|
+
const prevMaxColumns = this.maxColumns;
|
|
25
|
+
const prevOptimizeItemArrangement = this.optimizeItemArrangement;
|
|
26
|
+
super.updateLayoutParams(params);
|
|
27
|
+
if (this.boundedSize !== params.windowSize.width ||
|
|
28
|
+
prevMaxColumns !== params.maxColumns ||
|
|
29
|
+
prevOptimizeItemArrangement !== params.optimizeItemArrangement) {
|
|
30
|
+
this.boundedSize = params.windowSize.width;
|
|
31
|
+
if (this.layouts.length > 0) {
|
|
32
|
+
// console.log("-----> recomputeLayouts");
|
|
33
|
+
// update all widths
|
|
34
|
+
this.updateAllWidths();
|
|
35
|
+
this.recomputeLayouts(0, this.layouts.length - 1);
|
|
36
|
+
this.requiresRepaint = true;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Processes layout information for items, updating their dimensions.
|
|
42
|
+
* @param layoutInfo Array of layout information for items (real measurements)
|
|
43
|
+
* @param itemCount Total number of items in the list
|
|
44
|
+
*/
|
|
45
|
+
processLayoutInfo(layoutInfo, itemCount) {
|
|
46
|
+
// Update layout information
|
|
47
|
+
for (const info of layoutInfo) {
|
|
48
|
+
const { index, dimensions } = info;
|
|
49
|
+
const layout = this.layouts[index];
|
|
50
|
+
layout.height = dimensions.height;
|
|
51
|
+
layout.isHeightMeasured = true;
|
|
52
|
+
layout.isWidthMeasured = true;
|
|
53
|
+
this.layouts[index] = layout;
|
|
54
|
+
}
|
|
55
|
+
// TODO: Can be optimized
|
|
56
|
+
if (this.fullRelayoutRequired) {
|
|
57
|
+
this.updateAllWidths();
|
|
58
|
+
this.fullRelayoutRequired = false;
|
|
59
|
+
return 0;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
/**
|
|
63
|
+
* Estimates layout dimensions for an item at the given index.
|
|
64
|
+
* Can be called by base class if estimate is required.
|
|
65
|
+
* @param index Index of the item to estimate layout for
|
|
66
|
+
*/
|
|
67
|
+
estimateLayout(index) {
|
|
68
|
+
const layout = this.layouts[index];
|
|
69
|
+
// Set width based on columns and span
|
|
70
|
+
layout.width = this.getWidth(index);
|
|
71
|
+
layout.height = this.getEstimatedHeight(index);
|
|
72
|
+
layout.isWidthMeasured = true;
|
|
73
|
+
layout.enforcedWidth = true;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Handles span change for an item.
|
|
77
|
+
* @param index Index of the item
|
|
78
|
+
*/
|
|
79
|
+
handleSpanChange(index) {
|
|
80
|
+
this.fullRelayoutRequired = true;
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Returns the total size of the layout area.
|
|
84
|
+
* @returns RVDimension containing width and height of the layout
|
|
85
|
+
*/
|
|
86
|
+
getLayoutSize() {
|
|
87
|
+
if (this.layouts.length === 0)
|
|
88
|
+
return { width: 0, height: 0 };
|
|
89
|
+
// Find the tallest column
|
|
90
|
+
const maxHeight = Math.max(...this.columnHeights);
|
|
91
|
+
return {
|
|
92
|
+
width: this.boundedSize,
|
|
93
|
+
height: maxHeight,
|
|
94
|
+
};
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Recomputes layouts for items in the given range.
|
|
98
|
+
* Uses different placement strategies based on optimization settings.
|
|
99
|
+
* @param startIndex Starting index of items to recompute
|
|
100
|
+
* @param endIndex Ending index of items to recompute
|
|
101
|
+
*/
|
|
102
|
+
recomputeLayouts(startIndex, endIndex) {
|
|
103
|
+
// Reset column heights if starting from the beginning
|
|
104
|
+
if (startIndex === 0) {
|
|
105
|
+
this.columnHeights = Array(this.maxColumns).fill(0);
|
|
106
|
+
this.currentColumn = 0;
|
|
107
|
+
}
|
|
108
|
+
else {
|
|
109
|
+
// Find the y-position of the first item to recompute
|
|
110
|
+
// and adjust column heights accordingly
|
|
111
|
+
this.updateColumnHeightsToIndex(startIndex);
|
|
112
|
+
}
|
|
113
|
+
const itemCount = this.layouts.length;
|
|
114
|
+
for (let i = startIndex; i < itemCount; i++) {
|
|
115
|
+
const layout = this.getLayout(i);
|
|
116
|
+
// Skip tracking span because we're not changing widths
|
|
117
|
+
const span = this.getSpan(i, true);
|
|
118
|
+
if (this.optimizeItemArrangement) {
|
|
119
|
+
if (span === 1) {
|
|
120
|
+
// For single column items, place in the shortest column
|
|
121
|
+
this.placeSingleColumnItem(layout);
|
|
122
|
+
}
|
|
123
|
+
else {
|
|
124
|
+
// For multi-column items, find the best position
|
|
125
|
+
this.placeOptimizedMultiColumnItem(layout, span);
|
|
126
|
+
}
|
|
127
|
+
}
|
|
128
|
+
else {
|
|
129
|
+
// No optimization - place items sequentially
|
|
130
|
+
this.placeItemSequentially(layout, span);
|
|
131
|
+
}
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
/**
|
|
135
|
+
* Calculates the width of an item based on its span.
|
|
136
|
+
* @param index Index of the item
|
|
137
|
+
* @returns Width of the item
|
|
138
|
+
*/
|
|
139
|
+
getWidth(index) {
|
|
140
|
+
return (this.boundedSize / this.maxColumns) * this.getSpan(index);
|
|
141
|
+
}
|
|
142
|
+
updateAllWidths() {
|
|
143
|
+
for (let i = 0; i < this.layouts.length; i++) {
|
|
144
|
+
this.layouts[i].width = this.getWidth(i);
|
|
145
|
+
this.layouts[i].minHeight = undefined;
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
/**
|
|
149
|
+
* Places an item sequentially in the next available position.
|
|
150
|
+
* @param layout Layout information for the item
|
|
151
|
+
* @param span Number of columns the item spans
|
|
152
|
+
*/
|
|
153
|
+
placeItemSequentially(layout, span) {
|
|
154
|
+
// Check if the item can fit in the current row
|
|
155
|
+
if (this.currentColumn + span > this.maxColumns) {
|
|
156
|
+
// Move to the next row
|
|
157
|
+
this.currentColumn = 0;
|
|
158
|
+
}
|
|
159
|
+
// Find the maximum height of the columns this item will span
|
|
160
|
+
let maxHeight = this.columnHeights[this.currentColumn];
|
|
161
|
+
for (let col = this.currentColumn + 1; col < this.currentColumn + span; col++) {
|
|
162
|
+
if (col < this.maxColumns) {
|
|
163
|
+
maxHeight = Math.max(maxHeight, this.columnHeights[col]);
|
|
164
|
+
}
|
|
165
|
+
}
|
|
166
|
+
// Place the item
|
|
167
|
+
layout.x = (this.boundedSize / this.maxColumns) * this.currentColumn;
|
|
168
|
+
layout.y = maxHeight;
|
|
169
|
+
// Update column heights
|
|
170
|
+
for (let col = this.currentColumn; col < this.currentColumn + span; col++) {
|
|
171
|
+
if (col < this.maxColumns) {
|
|
172
|
+
this.columnHeights[col] = maxHeight + layout.height;
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
// Move to the next column
|
|
176
|
+
this.currentColumn += span;
|
|
177
|
+
if (this.currentColumn >= this.maxColumns) {
|
|
178
|
+
this.currentColumn = 0;
|
|
179
|
+
}
|
|
180
|
+
}
|
|
181
|
+
/**
|
|
182
|
+
* Places a single-column item in the shortest available column.
|
|
183
|
+
* @param layout Layout information for the item
|
|
184
|
+
*/
|
|
185
|
+
placeSingleColumnItem(layout) {
|
|
186
|
+
// Find the shortest column
|
|
187
|
+
let shortestColumnIndex = 0;
|
|
188
|
+
let minHeight = this.columnHeights[0];
|
|
189
|
+
for (let i = 1; i < this.maxColumns; i++) {
|
|
190
|
+
if (this.columnHeights[i] < minHeight) {
|
|
191
|
+
minHeight = this.columnHeights[i];
|
|
192
|
+
shortestColumnIndex = i;
|
|
193
|
+
}
|
|
194
|
+
}
|
|
195
|
+
// Place the item in the shortest column
|
|
196
|
+
layout.x = (this.boundedSize / this.maxColumns) * shortestColumnIndex;
|
|
197
|
+
layout.y = this.columnHeights[shortestColumnIndex];
|
|
198
|
+
// Update the column height
|
|
199
|
+
this.columnHeights[shortestColumnIndex] += layout.height;
|
|
200
|
+
}
|
|
201
|
+
/**
|
|
202
|
+
* Places a multi-column item in the position that minimizes total column heights.
|
|
203
|
+
* @param layout Layout information for the item
|
|
204
|
+
* @param span Number of columns the item spans
|
|
205
|
+
*/
|
|
206
|
+
placeOptimizedMultiColumnItem(layout, span) {
|
|
207
|
+
let bestStartColumn = 0;
|
|
208
|
+
let minTotalHeight = Number.MAX_VALUE;
|
|
209
|
+
// Try all possible positions
|
|
210
|
+
for (let startCol = 0; startCol <= this.maxColumns - span; startCol++) {
|
|
211
|
+
// Find the maximum height among the columns this item would span
|
|
212
|
+
let maxHeight = this.columnHeights[startCol];
|
|
213
|
+
for (let col = startCol + 1; col < startCol + span; col++) {
|
|
214
|
+
maxHeight = Math.max(maxHeight, this.columnHeights[col]);
|
|
215
|
+
}
|
|
216
|
+
// Calculate the total height after placing the item
|
|
217
|
+
let totalHeight = 0;
|
|
218
|
+
for (let col = 0; col < this.maxColumns; col++) {
|
|
219
|
+
if (col >= startCol && col < startCol + span) {
|
|
220
|
+
totalHeight += maxHeight + layout.height;
|
|
221
|
+
}
|
|
222
|
+
else {
|
|
223
|
+
totalHeight += this.columnHeights[col];
|
|
224
|
+
}
|
|
225
|
+
}
|
|
226
|
+
// Update best position if this is better
|
|
227
|
+
if (totalHeight < minTotalHeight) {
|
|
228
|
+
minTotalHeight = totalHeight;
|
|
229
|
+
bestStartColumn = startCol;
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
// Place the item at the best position
|
|
233
|
+
const maxHeight = Math.max(...this.columnHeights.slice(bestStartColumn, bestStartColumn + span));
|
|
234
|
+
layout.x = (this.boundedSize / this.maxColumns) * bestStartColumn;
|
|
235
|
+
layout.y = maxHeight;
|
|
236
|
+
// Update column heights
|
|
237
|
+
for (let col = bestStartColumn; col < bestStartColumn + span; col++) {
|
|
238
|
+
this.columnHeights[col] = maxHeight + layout.height;
|
|
239
|
+
}
|
|
240
|
+
}
|
|
241
|
+
/**
|
|
242
|
+
* Updates column heights up to a given index by recalculating item positions.
|
|
243
|
+
* @param index Index to update column heights up to
|
|
244
|
+
*/
|
|
245
|
+
updateColumnHeightsToIndex(index) {
|
|
246
|
+
// Reset column heights
|
|
247
|
+
this.columnHeights = Array(this.maxColumns).fill(0);
|
|
248
|
+
this.currentColumn = 0;
|
|
249
|
+
// Recalculate column heights up to the given index
|
|
250
|
+
for (let i = 0; i < index; i++) {
|
|
251
|
+
const layout = this.layouts[i];
|
|
252
|
+
const itemWidth = layout.width;
|
|
253
|
+
const columnWidth = this.boundedSize / this.maxColumns;
|
|
254
|
+
const span = Math.round(itemWidth / columnWidth);
|
|
255
|
+
// Find which columns this item spans
|
|
256
|
+
const startColumn = Math.round(layout.x / columnWidth);
|
|
257
|
+
const endColumn = Math.min(startColumn + span, this.maxColumns);
|
|
258
|
+
// Update column heights
|
|
259
|
+
for (let col = startColumn; col < endColumn; col++) {
|
|
260
|
+
this.columnHeights[col] = Math.max(this.columnHeights[col], layout.y + layout.height);
|
|
261
|
+
}
|
|
262
|
+
// Update current column for non-optimized layout
|
|
263
|
+
if (!this.optimizeItemArrangement) {
|
|
264
|
+
this.currentColumn = (startColumn + span) % this.maxColumns;
|
|
265
|
+
}
|
|
266
|
+
}
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
//# sourceMappingURL=MasonryLayoutManager.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"MasonryLayoutManager.js","sourceRoot":"","sources":["../../../src/recyclerview/layout-managers/MasonryLayoutManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAKL,eAAe,GAChB,MAAM,iBAAiB,CAAC;AAEzB;;;;GAIG;AACH,MAAM,OAAO,0BAA2B,SAAQ,eAAe;IAW7D,YAAY,MAAoB,EAAE,qBAAuC;;QACvE,KAAK,CAAC,MAAM,EAAE,qBAAqB,CAAC,CAAC;QAPvC,oDAAoD;QAC5C,kBAAa,GAAG,CAAC,CAAC;QAE1B,uFAAuF;QAC/E,yBAAoB,GAAG,KAAK,CAAC;QAInC,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;QAC3C,IAAI,CAAC,uBAAuB,GAAG,MAAM,CAAC,uBAAuB,CAAC;QAC9D,IAAI,CAAC,aAAa,GAAG,MAAA,IAAI,CAAC,aAAa,mCAAI,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAC5E,CAAC;IAED;;;OAGG;IACH,kBAAkB,CAAC,MAAoB;QACrC,MAAM,cAAc,GAAG,IAAI,CAAC,UAAU,CAAC;QACvC,MAAM,2BAA2B,GAAG,IAAI,CAAC,uBAAuB,CAAC;QACjE,KAAK,CAAC,kBAAkB,CAAC,MAAM,CAAC,CAAC;QACjC,IACE,IAAI,CAAC,WAAW,KAAK,MAAM,CAAC,UAAU,CAAC,KAAK;YAC5C,cAAc,KAAK,MAAM,CAAC,UAAU;YACpC,2BAA2B,KAAK,MAAM,CAAC,uBAAuB,EAC9D,CAAC;YACD,IAAI,CAAC,WAAW,GAAG,MAAM,CAAC,UAAU,CAAC,KAAK,CAAC;YAC3C,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;gBAC5B,0CAA0C;gBAE1C,oBAAoB;gBACpB,IAAI,CAAC,eAAe,EAAE,CAAC;gBACvB,IAAI,CAAC,gBAAgB,CAAC,CAAC,EAAE,IAAI,CAAC,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC,CAAC;gBAClD,IAAI,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9B,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,iBAAiB,CAAC,UAA0B,EAAE,SAAiB;QAC7D,4BAA4B;QAC5B,KAAK,MAAM,IAAI,IAAI,UAAU,EAAE,CAAC;YAC9B,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,IAAI,CAAC;YACnC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;YACnC,MAAM,CAAC,MAAM,GAAG,UAAU,CAAC,MAAM,CAAC;YAClC,MAAM,CAAC,gBAAgB,GAAG,IAAI,CAAC;YAC/B,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;YAC9B,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,MAAM,CAAC;QAC/B,CAAC;QAED,yBAAyB;QACzB,IAAI,IAAI,CAAC,oBAAoB,EAAE,CAAC;YAC9B,IAAI,CAAC,eAAe,EAAE,CAAC;YACvB,IAAI,CAAC,oBAAoB,GAAG,KAAK,CAAC;YAClC,OAAO,CAAC,CAAC;QACX,CAAC;IACH,CAAC;IAED;;;;OAIG;IACH,cAAc,CAAC,KAAa;QAC1B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;QAEnC,sCAAsC;QACtC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,GAAG,IAAI,CAAC,kBAAkB,CAAC,KAAK,CAAC,CAAC;QAE/C,MAAM,CAAC,eAAe,GAAG,IAAI,CAAC;QAC9B,MAAM,CAAC,aAAa,GAAG,IAAI,CAAC;IAC9B,CAAC;IAED;;;OAGG;IACH,gBAAgB,CAAC,KAAa;QAC5B,IAAI,CAAC,oBAAoB,GAAG,IAAI,CAAC;IACnC,CAAC;IAED;;;OAGG;IACH,aAAa;QACX,IAAI,IAAI,CAAC,OAAO,CAAC,MAAM,KAAK,CAAC;YAAE,OAAO,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;QAE9D,0BAA0B;QAC1B,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC;QAElD,OAAO;YACL,KAAK,EAAE,IAAI,CAAC,WAAW;YACvB,MAAM,EAAE,SAAS;SAClB,CAAC;IACJ,CAAC;IAED;;;;;OAKG;IACH,gBAAgB,CAAC,UAAkB,EAAE,QAAgB;QACnD,sDAAsD;QACtD,IAAI,UAAU,KAAK,CAAC,EAAE,CAAC;YACrB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;YACpD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACzB,CAAC;aAAM,CAAC;YACN,qDAAqD;YACrD,wCAAwC;YACxC,IAAI,CAAC,0BAA0B,CAAC,UAAU,CAAC,CAAC;QAC9C,CAAC;QAED,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,CAAC;QAEtC,KAAK,IAAI,CAAC,GAAG,UAAU,EAAE,CAAC,GAAG,SAAS,EAAE,CAAC,EAAE,EAAE,CAAC;YAC5C,MAAM,MAAM,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC;YACjC,uDAAuD;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,EAAE,IAAI,CAAC,CAAC;YAEnC,IAAI,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBACjC,IAAI,IAAI,KAAK,CAAC,EAAE,CAAC;oBACf,wDAAwD;oBACxD,IAAI,CAAC,qBAAqB,CAAC,MAAM,CAAC,CAAC;gBACrC,CAAC;qBAAM,CAAC;oBACN,iDAAiD;oBACjD,IAAI,CAAC,6BAA6B,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;gBACnD,CAAC;YACH,CAAC;iBAAM,CAAC;gBACN,6CAA6C;gBAC7C,IAAI,CAAC,qBAAqB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,QAAQ,CAAC,KAAa;QAC5B,OAAO,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;IACpE,CAAC;IAEO,eAAe;QACrB,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;YAC7C,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,IAAI,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACzC,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,SAAS,GAAG,SAAS,CAAC;QACxC,CAAC;IACH,CAAC;IAED;;;;OAIG;IACK,qBAAqB,CAAC,MAAgB,EAAE,IAAY;QAC1D,+CAA+C;QAC/C,IAAI,IAAI,CAAC,aAAa,GAAG,IAAI,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;YAChD,uBAAuB;YACvB,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACzB,CAAC;QAED,6DAA6D;QAC7D,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,IAAI,CAAC,aAAa,CAAC,CAAC;QACvD,KACE,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,CAAC,EAChC,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,EAC/B,GAAG,EAAE,EACL,CAAC;YACD,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1B,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,CAAC;QACH,CAAC;QAED,iBAAiB;QACjB,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC;QACrE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;QAErB,wBAAwB;QACxB,KAAK,IAAI,GAAG,GAAG,IAAI,CAAC,aAAa,EAAE,GAAG,GAAG,IAAI,CAAC,aAAa,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;YAC1E,IAAI,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC;gBAC1B,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;YACtD,CAAC;QACH,CAAC;QAED,0BAA0B;QAC1B,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC;QAC3B,IAAI,IAAI,CAAC,aAAa,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAC1C,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QACzB,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,qBAAqB,CAAC,MAAgB;QAC5C,2BAA2B;QAC3B,IAAI,mBAAmB,GAAG,CAAC,CAAC;QAC5B,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;QAEtC,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,UAAU,EAAE,CAAC,EAAE,EAAE,CAAC;YACzC,IAAI,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,GAAG,SAAS,EAAE,CAAC;gBACtC,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,CAAC,CAAC,CAAC;gBAClC,mBAAmB,GAAG,CAAC,CAAC;YAC1B,CAAC;QACH,CAAC;QAED,wCAAwC;QACxC,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,mBAAmB,CAAC;QACtE,MAAM,CAAC,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,CAAC;QAEnD,2BAA2B;QAC3B,IAAI,CAAC,aAAa,CAAC,mBAAmB,CAAC,IAAI,MAAM,CAAC,MAAM,CAAC;IAC3D,CAAC;IAED;;;;OAIG;IACK,6BAA6B,CAAC,MAAgB,EAAE,IAAY;QAClE,IAAI,eAAe,GAAG,CAAC,CAAC;QACxB,IAAI,cAAc,GAAG,MAAM,CAAC,SAAS,CAAC;QAEtC,6BAA6B;QAC7B,KAAK,IAAI,QAAQ,GAAG,CAAC,EAAE,QAAQ,IAAI,IAAI,CAAC,UAAU,GAAG,IAAI,EAAE,QAAQ,EAAE,EAAE,CAAC;YACtE,iEAAiE;YACjE,IAAI,SAAS,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YAC7C,KAAK,IAAI,GAAG,GAAG,QAAQ,GAAG,CAAC,EAAE,GAAG,GAAG,QAAQ,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;gBAC1D,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC,CAAC;YAC3D,CAAC;YAED,oDAAoD;YACpD,IAAI,WAAW,GAAG,CAAC,CAAC;YACpB,KAAK,IAAI,GAAG,GAAG,CAAC,EAAE,GAAG,GAAG,IAAI,CAAC,UAAU,EAAE,GAAG,EAAE,EAAE,CAAC;gBAC/C,IAAI,GAAG,IAAI,QAAQ,IAAI,GAAG,GAAG,QAAQ,GAAG,IAAI,EAAE,CAAC;oBAC7C,WAAW,IAAI,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;gBAC3C,CAAC;qBAAM,CAAC;oBACN,WAAW,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,CAAC;gBACzC,CAAC;YACH,CAAC;YAED,yCAAyC;YACzC,IAAI,WAAW,GAAG,cAAc,EAAE,CAAC;gBACjC,cAAc,GAAG,WAAW,CAAC;gBAC7B,eAAe,GAAG,QAAQ,CAAC;YAC7B,CAAC;QACH,CAAC;QAED,sCAAsC;QACtC,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CACxB,GAAG,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,eAAe,EAAE,eAAe,GAAG,IAAI,CAAC,CACrE,CAAC;QACF,MAAM,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC;QAClE,MAAM,CAAC,CAAC,GAAG,SAAS,CAAC;QAErB,wBAAwB;QACxB,KAAK,IAAI,GAAG,GAAG,eAAe,EAAE,GAAG,GAAG,eAAe,GAAG,IAAI,EAAE,GAAG,EAAE,EAAE,CAAC;YACpE,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,SAAS,GAAG,MAAM,CAAC,MAAM,CAAC;QACtD,CAAC;IACH,CAAC;IAED;;;OAGG;IACK,0BAA0B,CAAC,KAAa;QAC9C,uBAAuB;QACvB,IAAI,CAAC,aAAa,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;QACpD,IAAI,CAAC,aAAa,GAAG,CAAC,CAAC;QAEvB,mDAAmD;QACnD,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;YAC/B,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC;YAC/B,MAAM,SAAS,GAAG,MAAM,CAAC,KAAK,CAAC;YAC/B,MAAM,WAAW,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,UAAU,CAAC;YACvD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC;YAEjD,qCAAqC;YACrC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,MAAM,CAAC,CAAC,GAAG,WAAW,CAAC,CAAC;YACvD,MAAM,SAAS,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,GAAG,IAAI,EAAE,IAAI,CAAC,UAAU,CAAC,CAAC;YAEhE,wBAAwB;YACxB,KAAK,IAAI,GAAG,GAAG,WAAW,EAAE,GAAG,GAAG,SAAS,EAAE,GAAG,EAAE,EAAE,CAAC;gBACnD,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,GAAG,IAAI,CAAC,GAAG,CAChC,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,EACvB,MAAM,CAAC,CAAC,GAAG,MAAM,CAAC,MAAM,CACzB,CAAC;YACJ,CAAC;YAED,iDAAiD;YACjD,IAAI,CAAC,IAAI,CAAC,uBAAuB,EAAE,CAAC;gBAClC,IAAI,CAAC,aAAa,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,GAAG,IAAI,CAAC,UAAU,CAAC;YAC9D,CAAC;QACH,CAAC;IACH,CAAC;CACF"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adjusts the scroll offset for Right-to-Left (RTL) layouts.
|
|
3
|
+
* offset it flipped when RTL is enabled.
|
|
4
|
+
* This function converts a left-to-right offset to its RTL equivalent.
|
|
5
|
+
*
|
|
6
|
+
* @param offset - The original scroll offset in LTR layout
|
|
7
|
+
* @param contentSize - The total size of the scrollable content
|
|
8
|
+
* @param windowSize - The size of the visible window/viewport
|
|
9
|
+
* @returns The adjusted offset for RTL layout
|
|
10
|
+
*/
|
|
11
|
+
export declare function adjustOffsetForRTL(offset: number, contentSize: number, windowSize: number): number;
|
|
12
|
+
//# sourceMappingURL=adjustOffsetForRTL.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adjustOffsetForRTL.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/utils/adjustOffsetForRTL.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,wBAAgB,kBAAkB,CAChC,MAAM,EAAE,MAAM,EACd,WAAW,EAAE,MAAM,EACnB,UAAU,EAAE,MAAM,UAGnB"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Adjusts the scroll offset for Right-to-Left (RTL) layouts.
|
|
3
|
+
* offset it flipped when RTL is enabled.
|
|
4
|
+
* This function converts a left-to-right offset to its RTL equivalent.
|
|
5
|
+
*
|
|
6
|
+
* @param offset - The original scroll offset in LTR layout
|
|
7
|
+
* @param contentSize - The total size of the scrollable content
|
|
8
|
+
* @param windowSize - The size of the visible window/viewport
|
|
9
|
+
* @returns The adjusted offset for RTL layout
|
|
10
|
+
*/
|
|
11
|
+
export function adjustOffsetForRTL(offset, contentSize, windowSize) {
|
|
12
|
+
return contentSize - offset - windowSize;
|
|
13
|
+
}
|
|
14
|
+
//# sourceMappingURL=adjustOffsetForRTL.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adjustOffsetForRTL.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/adjustOffsetForRTL.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AACH,MAAM,UAAU,kBAAkB,CAChC,MAAc,EACd,WAAmB,EACnB,UAAkB;IAElB,OAAO,WAAW,GAAG,MAAM,GAAG,UAAU,CAAC;AAC3C,CAAC"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Helper function to handle both React components and React elements.
|
|
4
|
+
* This utility ensures proper rendering of components whether they are passed as
|
|
5
|
+
* component types or pre-rendered elements.
|
|
6
|
+
*
|
|
7
|
+
* @param component - Can be a React component type, React element, null, or undefined
|
|
8
|
+
* @returns A valid React element if the input is valid, null otherwise
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* // With a component type
|
|
12
|
+
* getValidComponent(MyComponent)
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // With a pre-rendered element
|
|
16
|
+
* getValidComponent(<MyComponent />)
|
|
17
|
+
*/
|
|
18
|
+
export declare const getValidComponent: (component: React.ComponentType | React.ReactElement | null | undefined) => React.ReactElement | null;
|
|
19
|
+
//# sourceMappingURL=componentUtils.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"componentUtils.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/utils/componentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,iBAAiB,GAC5B,WAAW,KAAK,CAAC,aAAa,GAAG,KAAK,CAAC,YAAY,GAAG,IAAI,GAAG,SAAS,KACrE,KAAK,CAAC,YAAY,GAAG,IAOvB,CAAC"}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
/**
|
|
3
|
+
* Helper function to handle both React components and React elements.
|
|
4
|
+
* This utility ensures proper rendering of components whether they are passed as
|
|
5
|
+
* component types or pre-rendered elements.
|
|
6
|
+
*
|
|
7
|
+
* @param component - Can be a React component type, React element, null, or undefined
|
|
8
|
+
* @returns A valid React element if the input is valid, null otherwise
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* // With a component type
|
|
12
|
+
* getValidComponent(MyComponent)
|
|
13
|
+
*
|
|
14
|
+
* @example
|
|
15
|
+
* // With a pre-rendered element
|
|
16
|
+
* getValidComponent(<MyComponent />)
|
|
17
|
+
*/
|
|
18
|
+
export const getValidComponent = (component) => {
|
|
19
|
+
if (React.isValidElement(component)) {
|
|
20
|
+
return component;
|
|
21
|
+
}
|
|
22
|
+
else if (typeof component === "function") {
|
|
23
|
+
return React.createElement(component);
|
|
24
|
+
}
|
|
25
|
+
return null;
|
|
26
|
+
};
|
|
27
|
+
//# sourceMappingURL=componentUtils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"componentUtils.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/componentUtils.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,iBAAiB,GAAG,CAC/B,SAAsE,EAC3C,EAAE;IAC7B,IAAI,KAAK,CAAC,cAAc,CAAC,SAAS,CAAC,EAAE,CAAC;QACpC,OAAO,SAAS,CAAC;IACnB,CAAC;SAAM,IAAI,OAAO,SAAS,KAAK,UAAU,EAAE,CAAC;QAC3C,OAAO,KAAK,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import { RVLayout } from "../layout-managers/LayoutManager";
|
|
2
|
+
/**
|
|
3
|
+
* Finds the first visible index in a sorted array of RVLayout objects.
|
|
4
|
+
* This is a wrapper around binarySearchVisibleIndex that specifically finds
|
|
5
|
+
* the first item that becomes visible in the viewport.
|
|
6
|
+
*
|
|
7
|
+
* @param layouts - The sorted array of RVLayout objects
|
|
8
|
+
* @param threshold - The threshold value to determine visibility
|
|
9
|
+
* @param isSortedByX - A boolean indicating if the array is sorted by x (true) or y (false)
|
|
10
|
+
* @returns The index of the first visible layout or -1 if none are visible
|
|
11
|
+
*/
|
|
12
|
+
export declare function findFirstVisibleIndex(layouts: RVLayout[], threshold: number, isSortedByX: boolean): number;
|
|
13
|
+
/**
|
|
14
|
+
* Finds the last visible index in a sorted array of RVLayout objects.
|
|
15
|
+
* This is a wrapper around binarySearchVisibleIndex that specifically finds
|
|
16
|
+
* the last item that remains visible in the viewport.
|
|
17
|
+
*
|
|
18
|
+
* @param layouts - The sorted array of RVLayout objects
|
|
19
|
+
* @param threshold - The threshold value to determine visibility
|
|
20
|
+
* @param isSortedByX - A boolean indicating if the array is sorted by x (true) or y (false)
|
|
21
|
+
* @returns The index of the last visible layout or -1 if none are visible
|
|
22
|
+
*/
|
|
23
|
+
export declare function findLastVisibleIndex(layouts: RVLayout[], threshold: number, isSortedByX: boolean): number;
|
|
24
|
+
//# sourceMappingURL=findVisibleIndex.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findVisibleIndex.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/utils/findVisibleIndex.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,kCAAkC,CAAC;AA0D5D;;;;;;;;;GASG;AACH,wBAAgB,qBAAqB,CACnC,OAAO,EAAE,QAAQ,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,GACnB,MAAM,CAER;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,OAAO,EAAE,QAAQ,EAAE,EACnB,SAAS,EAAE,MAAM,EACjB,WAAW,EAAE,OAAO,GACnB,MAAM,CAER"}
|
|
@@ -0,0 +1,76 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* A helper function to perform binary search for the first or last visible index.
|
|
3
|
+
* This function efficiently finds items that are visible within a viewport by using
|
|
4
|
+
* a binary search algorithm on sorted layouts.
|
|
5
|
+
*
|
|
6
|
+
* @param layouts - The sorted array of RVLayout objects, sorted by either x or y position
|
|
7
|
+
* @param threshold - The threshold value to determine visibility (viewport boundary)
|
|
8
|
+
* @param isSortedByX - A boolean indicating if the array is sorted by x (true) or y (false)
|
|
9
|
+
* @param findFirst - A boolean indicating whether to find the first (true) or last (false) visible index
|
|
10
|
+
* @returns The index of the visible layout or -1 if none are visible
|
|
11
|
+
*
|
|
12
|
+
* @remarks
|
|
13
|
+
* The binary search implementation ensures O(log n) time complexity for finding visible items.
|
|
14
|
+
* The function assumes the layouts array is pre-sorted by the relevant dimension (x or y).
|
|
15
|
+
*/
|
|
16
|
+
function binarySearchVisibleIndex(layouts, threshold, isSortedByX, findFirst) {
|
|
17
|
+
let left = 0;
|
|
18
|
+
let right = layouts.length - 1;
|
|
19
|
+
let visibleIndex = -1;
|
|
20
|
+
while (left <= right) {
|
|
21
|
+
const mid = Math.floor((left + right) / 2);
|
|
22
|
+
const layout = layouts[mid];
|
|
23
|
+
// Check visibility based on the sorting criteria
|
|
24
|
+
const position = isSortedByX ? layout.x : layout.y;
|
|
25
|
+
const size = isSortedByX ? layout.width : layout.height;
|
|
26
|
+
if (findFirst) {
|
|
27
|
+
// Logic for finding the first visible index
|
|
28
|
+
if (position >= threshold || position + size > threshold) {
|
|
29
|
+
// Potential visible index found, continue searching left for earlier visible items
|
|
30
|
+
visibleIndex = mid;
|
|
31
|
+
right = mid - 1;
|
|
32
|
+
}
|
|
33
|
+
else {
|
|
34
|
+
// Search in the right half for visible items
|
|
35
|
+
left = mid + 1;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
else if (position <= threshold) {
|
|
39
|
+
// Potential visible index found, continue searching right for later visible items
|
|
40
|
+
visibleIndex = mid;
|
|
41
|
+
left = mid + 1;
|
|
42
|
+
}
|
|
43
|
+
else {
|
|
44
|
+
// Search in the left half for visible items
|
|
45
|
+
right = mid - 1;
|
|
46
|
+
}
|
|
47
|
+
}
|
|
48
|
+
return visibleIndex;
|
|
49
|
+
}
|
|
50
|
+
/**
|
|
51
|
+
* Finds the first visible index in a sorted array of RVLayout objects.
|
|
52
|
+
* This is a wrapper around binarySearchVisibleIndex that specifically finds
|
|
53
|
+
* the first item that becomes visible in the viewport.
|
|
54
|
+
*
|
|
55
|
+
* @param layouts - The sorted array of RVLayout objects
|
|
56
|
+
* @param threshold - The threshold value to determine visibility
|
|
57
|
+
* @param isSortedByX - A boolean indicating if the array is sorted by x (true) or y (false)
|
|
58
|
+
* @returns The index of the first visible layout or -1 if none are visible
|
|
59
|
+
*/
|
|
60
|
+
export function findFirstVisibleIndex(layouts, threshold, isSortedByX) {
|
|
61
|
+
return binarySearchVisibleIndex(layouts, threshold, isSortedByX, true);
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Finds the last visible index in a sorted array of RVLayout objects.
|
|
65
|
+
* This is a wrapper around binarySearchVisibleIndex that specifically finds
|
|
66
|
+
* the last item that remains visible in the viewport.
|
|
67
|
+
*
|
|
68
|
+
* @param layouts - The sorted array of RVLayout objects
|
|
69
|
+
* @param threshold - The threshold value to determine visibility
|
|
70
|
+
* @param isSortedByX - A boolean indicating if the array is sorted by x (true) or y (false)
|
|
71
|
+
* @returns The index of the last visible layout or -1 if none are visible
|
|
72
|
+
*/
|
|
73
|
+
export function findLastVisibleIndex(layouts, threshold, isSortedByX) {
|
|
74
|
+
return binarySearchVisibleIndex(layouts, threshold, isSortedByX, false);
|
|
75
|
+
}
|
|
76
|
+
//# sourceMappingURL=findVisibleIndex.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"findVisibleIndex.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/findVisibleIndex.ts"],"names":[],"mappings":"AAEA;;;;;;;;;;;;;;GAcG;AACH,SAAS,wBAAwB,CAC/B,OAAmB,EACnB,SAAiB,EACjB,WAAoB,EACpB,SAAkB;IAElB,IAAI,IAAI,GAAG,CAAC,CAAC;IACb,IAAI,KAAK,GAAG,OAAO,CAAC,MAAM,GAAG,CAAC,CAAC;IAC/B,IAAI,YAAY,GAAG,CAAC,CAAC,CAAC;IAEtB,OAAO,IAAI,IAAI,KAAK,EAAE,CAAC;QACrB,MAAM,GAAG,GAAG,IAAI,CAAC,KAAK,CAAC,CAAC,IAAI,GAAG,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC;QAC3C,MAAM,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC,CAAC;QAE5B,iDAAiD;QACjD,MAAM,QAAQ,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;QACnD,MAAM,IAAI,GAAG,WAAW,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,MAAM,CAAC;QAExD,IAAI,SAAS,EAAE,CAAC;YACd,4CAA4C;YAC5C,IAAI,QAAQ,IAAI,SAAS,IAAI,QAAQ,GAAG,IAAI,GAAG,SAAS,EAAE,CAAC;gBACzD,mFAAmF;gBACnF,YAAY,GAAG,GAAG,CAAC;gBACnB,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;YAClB,CAAC;iBAAM,CAAC;gBACN,6CAA6C;gBAC7C,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;YACjB,CAAC;QACH,CAAC;aAAM,IAAI,QAAQ,IAAI,SAAS,EAAE,CAAC;YACjC,kFAAkF;YAClF,YAAY,GAAG,GAAG,CAAC;YACnB,IAAI,GAAG,GAAG,GAAG,CAAC,CAAC;QACjB,CAAC;aAAM,CAAC;YACN,4CAA4C;YAC5C,KAAK,GAAG,GAAG,GAAG,CAAC,CAAC;QAClB,CAAC;IACH,CAAC;IAED,OAAO,YAAY,CAAC;AACtB,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,qBAAqB,CACnC,OAAmB,EACnB,SAAiB,EACjB,WAAoB;IAEpB,OAAO,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,IAAI,CAAC,CAAC;AACzE,CAAC;AAED;;;;;;;;;GASG;AACH,MAAM,UAAU,oBAAoB,CAClC,OAAmB,EACnB,SAAiB,EACjB,WAAoB;IAEpB,OAAO,wBAAwB,CAAC,OAAO,EAAE,SAAS,EAAE,WAAW,EAAE,KAAK,CAAC,CAAC;AAC1E,CAAC"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { View } from "react-native";
|
|
2
|
+
interface Layout {
|
|
3
|
+
x: number;
|
|
4
|
+
y: number;
|
|
5
|
+
width: number;
|
|
6
|
+
height: number;
|
|
7
|
+
}
|
|
8
|
+
/**
|
|
9
|
+
* Checks if two dimension values are not equal, with a small tolerance.
|
|
10
|
+
* Used to handle floating-point precision issues in layout measurements.
|
|
11
|
+
*
|
|
12
|
+
* @param value1 - First dimension value to compare
|
|
13
|
+
* @param value2 - Second dimension value to compare
|
|
14
|
+
* @returns true if the values are significantly different, false otherwise
|
|
15
|
+
*/
|
|
16
|
+
export declare function areDimensionsNotEqual(value1: number, value2: number): boolean;
|
|
17
|
+
/**
|
|
18
|
+
* Checks if two dimension values are equal, with a small tolerance.
|
|
19
|
+
* Used to handle floating-point precision issues in layout measurements.
|
|
20
|
+
*
|
|
21
|
+
* @param value1 - First dimension value to compare
|
|
22
|
+
* @param value2 - Second dimension value to compare
|
|
23
|
+
* @returns true if the values are approximately equal, false otherwise
|
|
24
|
+
*/
|
|
25
|
+
export declare function areDimensionsEqual(value1: number, value2: number): boolean;
|
|
26
|
+
export declare function roundOffPixel(value: number): number;
|
|
27
|
+
/**
|
|
28
|
+
* Specific method for easier mocking
|
|
29
|
+
* Measures the layout of parent of RecyclerView
|
|
30
|
+
* Returns the x, y coordinates and dimensions of the view.
|
|
31
|
+
* @param view - The React Native View component to measure
|
|
32
|
+
* @returns An object containing x, y, width, and height measurements
|
|
33
|
+
*/
|
|
34
|
+
export declare function measureParentSize(view: View): Layout;
|
|
35
|
+
/**
|
|
36
|
+
* Specific method for easier mocking
|
|
37
|
+
* Measures the layout of child container of RecyclerView
|
|
38
|
+
* @param childContainerView
|
|
39
|
+
* @param parentView
|
|
40
|
+
* @returns
|
|
41
|
+
*/
|
|
42
|
+
export declare function measureFirstChildLayout(childContainerView: View, parentView: View): Layout;
|
|
43
|
+
/**
|
|
44
|
+
* Specific method for easier mocking
|
|
45
|
+
* Measures the layout of items of RecyclerView
|
|
46
|
+
* @param item
|
|
47
|
+
* @param oldLayout
|
|
48
|
+
* @returns
|
|
49
|
+
*/
|
|
50
|
+
export declare function measureItemLayout(item: View, oldLayout: Layout | undefined): Layout;
|
|
51
|
+
export {};
|
|
52
|
+
//# sourceMappingURL=measureLayout.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measureLayout.d.ts","sourceRoot":"","sources":["../../../src/recyclerview/utils/measureLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAc,IAAI,EAAE,MAAM,cAAc,CAAC;AAEhD,UAAU,MAAM;IACd,CAAC,EAAE,MAAM,CAAC;IACV,CAAC,EAAE,MAAM,CAAC;IACV,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAkDD;;;;;;;GAOG;AACH,wBAAgB,qBAAqB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAE7E;AAED;;;;;;;GAOG;AACH,wBAAgB,kBAAkB,CAAC,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,GAAG,OAAO,CAO1E;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,CAEnD;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAAC,IAAI,EAAE,IAAI,GAAG,MAAM,CAEpD;AAED;;;;;;GAMG;AACH,wBAAgB,uBAAuB,CACrC,kBAAkB,EAAE,IAAI,EACxB,UAAU,EAAE,IAAI,GACf,MAAM,CAER;AAED;;;;;;GAMG;AACH,wBAAgB,iBAAiB,CAC/B,IAAI,EAAE,IAAI,EACV,SAAS,EAAE,MAAM,GAAG,SAAS,GAC5B,MAAM,CAER"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
import { PixelRatio } from "react-native";
|
|
2
|
+
/**
|
|
3
|
+
* Measures the layout of a view relative to itselft.
|
|
4
|
+
* Using measure wasn't returing accurate values but this workaround does.
|
|
5
|
+
* Returns the x, y coordinates and dimensions of the view.
|
|
6
|
+
*
|
|
7
|
+
* @param view - The React Native View component to measure
|
|
8
|
+
* @returns An object containing x, y, width, and height measurements
|
|
9
|
+
*/
|
|
10
|
+
function measureLayout(view, oldLayout) {
|
|
11
|
+
// const layout = view.unstable_getBoundingClientRect();
|
|
12
|
+
// layout.width = roundOffPixel(layout.width);
|
|
13
|
+
// layout.height = roundOffPixel(layout.height);
|
|
14
|
+
// return layout;
|
|
15
|
+
return measureLayoutRelative(view, view, oldLayout);
|
|
16
|
+
}
|
|
17
|
+
/**
|
|
18
|
+
* Measures the layout of a view relative to another view.
|
|
19
|
+
* Useful for measuring positions relative to a specific reference view.
|
|
20
|
+
*
|
|
21
|
+
* @param view - The React Native View component to measure
|
|
22
|
+
* @param relativeTo - The reference view to measure against
|
|
23
|
+
* @returns An object containing x, y, width, and height measurements
|
|
24
|
+
*/
|
|
25
|
+
function measureLayoutRelative(view, relativeTo, oldLayout) {
|
|
26
|
+
const layout = { x: 0, y: 0, width: 0, height: 0 };
|
|
27
|
+
view.measureLayout(relativeTo, (x, y, width, height) => {
|
|
28
|
+
layout.x = x;
|
|
29
|
+
layout.y = y;
|
|
30
|
+
layout.width = roundOffPixel(width);
|
|
31
|
+
layout.height = roundOffPixel(height);
|
|
32
|
+
});
|
|
33
|
+
if (oldLayout) {
|
|
34
|
+
if (areDimensionsEqual(layout.width, oldLayout.width)) {
|
|
35
|
+
layout.width = oldLayout.width;
|
|
36
|
+
}
|
|
37
|
+
if (areDimensionsEqual(layout.height, oldLayout.height)) {
|
|
38
|
+
layout.height = oldLayout.height;
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
return layout;
|
|
42
|
+
}
|
|
43
|
+
/**
|
|
44
|
+
* Checks if two dimension values are not equal, with a small tolerance.
|
|
45
|
+
* Used to handle floating-point precision issues in layout measurements.
|
|
46
|
+
*
|
|
47
|
+
* @param value1 - First dimension value to compare
|
|
48
|
+
* @param value2 - Second dimension value to compare
|
|
49
|
+
* @returns true if the values are significantly different, false otherwise
|
|
50
|
+
*/
|
|
51
|
+
export function areDimensionsNotEqual(value1, value2) {
|
|
52
|
+
return !areDimensionsEqual(value1, value2);
|
|
53
|
+
}
|
|
54
|
+
/**
|
|
55
|
+
* Checks if two dimension values are equal, with a small tolerance.
|
|
56
|
+
* Used to handle floating-point precision issues in layout measurements.
|
|
57
|
+
*
|
|
58
|
+
* @param value1 - First dimension value to compare
|
|
59
|
+
* @param value2 - Second dimension value to compare
|
|
60
|
+
* @returns true if the values are approximately equal, false otherwise
|
|
61
|
+
*/
|
|
62
|
+
export function areDimensionsEqual(value1, value2) {
|
|
63
|
+
return (Math.abs(PixelRatio.getPixelSizeForLayoutSize(value1) -
|
|
64
|
+
PixelRatio.getPixelSizeForLayoutSize(value2)) <= 1);
|
|
65
|
+
}
|
|
66
|
+
export function roundOffPixel(value) {
|
|
67
|
+
return PixelRatio.roundToNearestPixel(value);
|
|
68
|
+
}
|
|
69
|
+
/**
|
|
70
|
+
* Specific method for easier mocking
|
|
71
|
+
* Measures the layout of parent of RecyclerView
|
|
72
|
+
* Returns the x, y coordinates and dimensions of the view.
|
|
73
|
+
* @param view - The React Native View component to measure
|
|
74
|
+
* @returns An object containing x, y, width, and height measurements
|
|
75
|
+
*/
|
|
76
|
+
export function measureParentSize(view) {
|
|
77
|
+
return measureLayout(view, undefined);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Specific method for easier mocking
|
|
81
|
+
* Measures the layout of child container of RecyclerView
|
|
82
|
+
* @param childContainerView
|
|
83
|
+
* @param parentView
|
|
84
|
+
* @returns
|
|
85
|
+
*/
|
|
86
|
+
export function measureFirstChildLayout(childContainerView, parentView) {
|
|
87
|
+
return measureLayoutRelative(childContainerView, parentView, undefined);
|
|
88
|
+
}
|
|
89
|
+
/**
|
|
90
|
+
* Specific method for easier mocking
|
|
91
|
+
* Measures the layout of items of RecyclerView
|
|
92
|
+
* @param item
|
|
93
|
+
* @param oldLayout
|
|
94
|
+
* @returns
|
|
95
|
+
*/
|
|
96
|
+
export function measureItemLayout(item, oldLayout) {
|
|
97
|
+
return measureLayout(item, oldLayout);
|
|
98
|
+
}
|
|
99
|
+
//# sourceMappingURL=measureLayout.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"measureLayout.js","sourceRoot":"","sources":["../../../src/recyclerview/utils/measureLayout.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAQ,MAAM,cAAc,CAAC;AAShD;;;;;;;GAOG;AACH,SAAS,aAAa,CAAC,IAAU,EAAE,SAA6B;IAC9D,wDAAwD;IACxD,8CAA8C;IAC9C,gDAAgD;IAChD,iBAAiB;IACjB,OAAO,qBAAqB,CAAC,IAAI,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;AACtD,CAAC;AAED;;;;;;;GAOG;AACH,SAAS,qBAAqB,CAC5B,IAAU,EACV,UAAgB,EAChB,SAA6B;IAE7B,MAAM,MAAM,GAAG,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,CAAC;IACnD,IAAI,CAAC,aAAa,CAAC,UAAU,EAAE,CAAC,CAAC,EAAE,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE;QACrD,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,CAAC,GAAG,CAAC,CAAC;QACb,MAAM,CAAC,KAAK,GAAG,aAAa,CAAC,KAAK,CAAC,CAAC;QACpC,MAAM,CAAC,MAAM,GAAG,aAAa,CAAC,MAAM,CAAC,CAAC;IACxC,CAAC,CAAC,CAAC;IAEH,IAAI,SAAS,EAAE,CAAC;QACd,IAAI,kBAAkB,CAAC,MAAM,CAAC,KAAK,EAAE,SAAS,CAAC,KAAK,CAAC,EAAE,CAAC;YACtD,MAAM,CAAC,KAAK,GAAG,SAAS,CAAC,KAAK,CAAC;QACjC,CAAC;QACD,IAAI,kBAAkB,CAAC,MAAM,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,CAAC,EAAE,CAAC;YACxD,MAAM,CAAC,MAAM,GAAG,SAAS,CAAC,MAAM,CAAC;QACnC,CAAC;IACH,CAAC;IACD,OAAO,MAAM,CAAC;AAChB,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,qBAAqB,CAAC,MAAc,EAAE,MAAc;IAClE,OAAO,CAAC,kBAAkB,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;AAC7C,CAAC;AAED;;;;;;;GAOG;AACH,MAAM,UAAU,kBAAkB,CAAC,MAAc,EAAE,MAAc;IAC/D,OAAO,CACL,IAAI,CAAC,GAAG,CACN,UAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC;QAC1C,UAAU,CAAC,yBAAyB,CAAC,MAAM,CAAC,CAC/C,IAAI,CAAC,CACP,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAa;IACzC,OAAO,UAAU,CAAC,mBAAmB,CAAC,KAAK,CAAC,CAAC;AAC/C,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAAC,IAAU;IAC1C,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,uBAAuB,CACrC,kBAAwB,EACxB,UAAgB;IAEhB,OAAO,qBAAqB,CAAC,kBAAkB,EAAE,UAAU,EAAE,SAAS,CAAC,CAAC;AAC1E,CAAC;AAED;;;;;;GAMG;AACH,MAAM,UAAU,iBAAiB,CAC/B,IAAU,EACV,SAA6B;IAE7B,OAAO,aAAa,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;AACxC,CAAC"}
|