@xhsreds/reds-rn-next 0.9.1-beta202510291556 → 0.9.1-feat-swiper202511031535
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/coverage/.tmp/coverage-10.json +1 -1
- package/coverage/.tmp/coverage-11.json +1 -1
- package/coverage/.tmp/coverage-12.json +1 -1
- package/coverage/.tmp/coverage-16.json +1 -1
- package/coverage/.tmp/coverage-17.json +1 -1
- package/coverage/.tmp/coverage-2.json +1 -1
- package/coverage/.tmp/coverage-21.json +1 -1
- package/coverage/.tmp/coverage-22.json +1 -1
- package/coverage/.tmp/coverage-26.json +1 -1
- package/coverage/.tmp/coverage-27.json +1 -1
- package/coverage/.tmp/coverage-29.json +1 -1
- package/coverage/.tmp/coverage-3.json +1 -1
- package/coverage/.tmp/coverage-30.json +1 -1
- package/coverage/.tmp/coverage-31.json +1 -1
- package/coverage/.tmp/coverage-32.json +1 -1
- package/coverage/.tmp/coverage-33.json +1 -1
- package/coverage/.tmp/coverage-34.json +1 -1
- package/coverage/.tmp/coverage-35.json +1 -1
- package/coverage/.tmp/coverage-36.json +1 -1
- package/coverage/.tmp/coverage-37.json +1 -1
- package/coverage/.tmp/coverage-38.json +1 -1
- package/coverage/.tmp/coverage-39.json +1 -1
- package/coverage/.tmp/coverage-4.json +1 -1
- package/coverage/.tmp/coverage-40.json +1 -1
- package/coverage/.tmp/coverage-41.json +1 -1
- package/coverage/.tmp/coverage-42.json +1 -1
- package/coverage/.tmp/coverage-5.json +1 -1
- package/coverage/.tmp/coverage-7.json +1 -1
- package/coverage/.tmp/coverage-8.json +1 -1
- package/coverage/.tmp/coverage-9.json +1 -1
- package/lib/cjs/_chunks/CwkpVXDI.js.map +1 -1
- package/lib/cjs/_chunks/{DNr-ZG4Y.js → Dn-t7SiM.js} +2 -2
- package/lib/cjs/_chunks/{DNr-ZG4Y.js.map → Dn-t7SiM.js.map} +1 -1
- package/lib/cjs/_chunks/{C9tZEm0t.js → hnLc3Qom.js} +8 -10
- package/lib/cjs/_chunks/{C9tZEm0t.js.map → hnLc3Qom.js.map} +1 -1
- package/lib/cjs/components/ActionSheets/ActionSheets.js +1 -1
- package/lib/cjs/components/ActionSheets/ActionSheetsItem.js +1 -1
- package/lib/cjs/components/ActionSheets/api.js +1 -1
- package/lib/cjs/components/ActionSheets/hooks.js +1 -1
- package/lib/cjs/components/ActionSheets/index.js +1 -1
- package/lib/cjs/components/ActionablePopover/ActionablePopover.js +1 -1
- package/lib/cjs/components/ActionablePopover/index.js +1 -1
- package/lib/cjs/components/Alert/Alert.js +1 -1
- package/lib/cjs/components/Alert/hooks/alert.js +1 -1
- package/lib/cjs/components/Alert/index.js +1 -1
- package/lib/cjs/components/Alert/styles.js +1 -1
- package/lib/cjs/components/Avatar/Avatar.js +1 -1
- package/lib/cjs/components/Avatar/index.js +1 -1
- package/lib/cjs/components/Avatar/styles.js +1 -1
- package/lib/cjs/components/AvatarGroup/AvatarGroup.js +1 -1
- package/lib/cjs/components/AvatarGroup/index.js +1 -1
- package/lib/cjs/components/Badge/Badge.js +1 -1
- package/lib/cjs/components/Badge/index.js +1 -1
- package/lib/cjs/components/Badge/styles.js +1 -1
- package/lib/cjs/components/BottomBar/BottomBar.js +1 -1
- package/lib/cjs/components/BottomBar/index.js +1 -1
- package/lib/cjs/components/Button/Button.js +1 -1
- package/lib/cjs/components/Button/Viewable.js +1 -1
- package/lib/cjs/components/Button/index.js +1 -1
- package/lib/cjs/components/Button/styleMap.js +1 -1
- package/lib/cjs/components/Carousel/Carousel.js +3 -10
- package/lib/cjs/components/Carousel/Carousel.js.map +1 -1
- package/lib/cjs/components/Carousel/index.js +1 -1
- package/lib/cjs/components/CheckBoxGroup/CheckBox.js +1 -1
- package/lib/cjs/components/CheckBoxGroup/CheckBoxGroup.js +1 -1
- package/lib/cjs/components/CheckBoxGroup/index.js +1 -1
- package/lib/cjs/components/CheckBoxGroup/styles.js +1 -1
- package/lib/cjs/components/Collapse/Collapse.js +1 -1
- package/lib/cjs/components/Collapse/Item/Item.js +1 -1
- package/lib/cjs/components/Collapse/Item/styles.js +1 -1
- package/lib/cjs/components/Collapse/index.js +1 -1
- package/lib/cjs/components/ConfigProvider/ConfigProvider.js +1 -1
- package/lib/cjs/components/ConfigProvider/hooks/ConfigCache/ConfigCache.js +1 -1
- package/lib/cjs/components/ConfigProvider/hooks/ConfigCache/index.js +1 -1
- package/lib/cjs/components/ConfigProvider/hooks/themeToken/index.js +1 -1
- package/lib/cjs/components/ConfigProvider/hooks/themeToken/useThemeToken.js +1 -1
- package/lib/cjs/components/ConfigProvider/index.js +1 -1
- package/lib/cjs/components/DatePicker/DatePicker.js +1 -1
- package/lib/cjs/components/DatePicker/api.js +1 -1
- package/lib/cjs/components/DatePicker/index.js +1 -1
- package/lib/cjs/components/Divider/Divider.js +1 -1
- package/lib/cjs/components/Divider/index.js +1 -1
- package/lib/cjs/components/Divider/styles.js +1 -1
- package/lib/cjs/components/DropDown/DropDown.js +1 -1
- package/lib/cjs/components/DropDown/DropDownItem.js +1 -1
- package/lib/cjs/components/DropDown/index.js +1 -1
- package/lib/cjs/components/Empty/Empty.js +1 -1
- package/lib/cjs/components/Empty/index.js +1 -1
- package/lib/cjs/components/Empty/styles.js +1 -1
- package/lib/cjs/components/FAB/FAB.js +1 -1
- package/lib/cjs/components/FAB/index.js +1 -1
- package/lib/cjs/components/Form/Form.js +1 -1
- package/lib/cjs/components/Form/FormItem.js +1 -1
- package/lib/cjs/components/Form/index.js +1 -1
- package/lib/cjs/components/Form/styles.js +1 -1
- package/lib/cjs/components/Image/Image.js +1 -1
- package/lib/cjs/components/Image/Image69.js +1 -1
- package/lib/cjs/components/Image/VisibilitySensor.js +1 -1
- package/lib/cjs/components/Image/hook/index.js +1 -1
- package/lib/cjs/components/Image/index.js +1 -1
- package/lib/cjs/components/Image/utils.js +1 -1
- package/lib/cjs/components/ImagePreview/ImagePreview.js +1 -1
- package/lib/cjs/components/ImagePreview/api.js +1 -1
- package/lib/cjs/components/ImagePreview/index.js +1 -1
- package/lib/cjs/components/LanguageProvider/hooks/useLanguage.js +1 -1
- package/lib/cjs/components/LanguageProvider/index.js +1 -1
- package/lib/cjs/components/List/List.js +1 -1
- package/lib/cjs/components/List/ListItem/ListItem.js +1 -1
- package/lib/cjs/components/List/index.js +1 -1
- package/lib/cjs/components/List/styles.js +1 -1
- package/lib/cjs/components/MiniSnackBar/MiniSnackBar.js +1 -1
- package/lib/cjs/components/MiniSnackBar/index.js +1 -1
- package/lib/cjs/components/MiniSnackBar/styles.js +1 -1
- package/lib/cjs/components/NavigationBar/NavigationBar.js +1 -1
- package/lib/cjs/components/NavigationBar/index.js +1 -1
- package/lib/cjs/components/NavigationBar/styles.js +1 -1
- package/lib/cjs/components/NoticeBar/NoticeBar.js +1 -1
- package/lib/cjs/components/NoticeBar/index.js +1 -1
- package/lib/cjs/components/Picker/Picker.js +1 -1
- package/lib/cjs/components/Picker/api.js +1 -1
- package/lib/cjs/components/Picker/index.js +1 -1
- package/lib/cjs/components/PickerView/PickerView.js +1 -1
- package/lib/cjs/components/PickerView/Wheel.js +1 -1
- package/lib/cjs/components/PickerView/index.js +1 -1
- package/lib/cjs/components/Popover/Popover.js +4 -5
- package/lib/cjs/components/Popover/Popover.js.map +1 -1
- package/lib/cjs/components/Popover/index.js +1 -1
- package/lib/cjs/components/Portal/core/PortalProvider.js +1 -1
- package/lib/cjs/components/Portal/index.js +1 -1
- package/lib/cjs/components/Progress/Progress.js +1 -1
- package/lib/cjs/components/Progress/index.js +1 -1
- package/lib/cjs/components/Progress/styles.js +1 -1
- package/lib/cjs/components/ProgressIndicator/ProgressIndicator.js +1 -1
- package/lib/cjs/components/ProgressIndicator/index.js +1 -1
- package/lib/cjs/components/ProgressIndicator/styles.js +1 -1
- package/lib/cjs/components/PullRefresh/PullRefresh.js +1 -1
- package/lib/cjs/components/PullRefresh/component.js +1 -1
- package/lib/cjs/components/PullRefresh/index.js +1 -1
- package/lib/cjs/components/Radio/Radio.js +8 -2
- package/lib/cjs/components/Radio/Radio.js.map +1 -1
- package/lib/cjs/components/Radio/RadioGroup.js +1 -1
- package/lib/cjs/components/Radio/index.js +8 -2
- package/lib/cjs/components/Radio/index.js.map +1 -1
- package/lib/cjs/components/Radio/styles.js +1 -1
- package/lib/cjs/components/Rate/Rate.js +1 -1
- package/lib/cjs/components/Rate/index.js +1 -1
- package/lib/cjs/components/Result/Result.js +1 -1
- package/lib/cjs/components/Result/index.js +1 -1
- package/lib/cjs/components/Result/styles.js +1 -1
- package/lib/cjs/components/Search/Search.js +1 -1
- package/lib/cjs/components/Search/index.js +1 -1
- package/lib/cjs/components/Search/styles.js +1 -1
- package/lib/cjs/components/SegmentedControl/SegmentedControl.js +1 -1
- package/lib/cjs/components/SegmentedControl/index.js +1 -1
- package/lib/cjs/components/Sheets/AnimatedSheets.js +1 -1
- package/lib/cjs/components/Sheets/Sheets.js +1 -1
- package/lib/cjs/components/Sheets/api.js +1 -1
- package/lib/cjs/components/Sheets/index.js +1 -1
- package/lib/cjs/components/Sheets/styles.js +2 -2
- package/lib/cjs/components/Sheets/styles.js.map +1 -1
- package/lib/cjs/components/Skeleton/Item/SkeletonItem.js +1 -1
- package/lib/cjs/components/Skeleton/Item/SkeletonItem69.js +1 -1
- package/lib/cjs/components/Skeleton/Skeleton.js +1 -1
- package/lib/cjs/components/Skeleton/Skeleton69.js +1 -1
- package/lib/cjs/components/Skeleton/index.js +1 -1
- package/lib/cjs/components/Slider/Slider.js +1 -1
- package/lib/cjs/components/Slider/index.js +1 -1
- package/lib/cjs/components/SlimAlert/Alert.js +1 -1
- package/lib/cjs/components/SlimAlert/AlertContent.js +1 -1
- package/lib/cjs/components/SlimAlert/AlertFooter.js +1 -1
- package/lib/cjs/components/SlimAlert/index.js +1 -1
- package/lib/cjs/components/SlimAlert/styles.js +1 -1
- package/lib/cjs/components/SlimNavigationBar/NavigationBar.js +1 -1
- package/lib/cjs/components/SlimNavigationBar/NavigationBarAction.js +1 -1
- package/lib/cjs/components/SlimNavigationBar/index.js +1 -1
- package/lib/cjs/components/SlimNavigationBar/styles.js +1 -1
- package/lib/cjs/components/SlimSheets/AnimatedSheets.js +1 -1
- package/lib/cjs/components/SlimSheets/AnimatedSheetsAction.js +1 -1
- package/lib/cjs/components/SlimSheets/AnimatedSheetsHeader.js +1 -1
- package/lib/cjs/components/SlimSheets/DragAnimatedSheets.js +1 -1
- package/lib/cjs/components/SlimSheets/index.js +1 -1
- package/lib/cjs/components/SlimTabs/BadgeSlimTabItem.js +1 -1
- package/lib/cjs/components/SlimTabs/SlimTab.js +1 -1
- package/lib/cjs/components/SlimTabs/SlimTabItem.js +1 -1
- package/lib/cjs/components/SlimTabs/SlimTabItemLabel.js +1 -1
- package/lib/cjs/components/SlimTabs/SlimTabItemValue.js +1 -1
- package/lib/cjs/components/SlimTabs/SlimTabList.js +1 -1
- package/lib/cjs/components/SlimTabs/index.js +1 -1
- package/lib/cjs/components/SlimTabs/styles.js +1 -1
- package/lib/cjs/components/SnackBar/SnackBar.js +1 -1
- package/lib/cjs/components/SnackBar/index.js +1 -1
- package/lib/cjs/components/SnackBar/styles.js +1 -1
- package/lib/cjs/components/Stepper/Stepper.js +1 -1
- package/lib/cjs/components/Stepper/index.js +1 -1
- package/lib/cjs/components/Swiper/LazyPage.js +42 -0
- package/lib/cjs/components/Swiper/LazyPage.js.map +1 -0
- package/lib/cjs/components/Swiper/Swiper.js +27 -0
- package/lib/cjs/components/Swiper/Swiper.js.map +1 -0
- package/lib/cjs/components/Swiper/SwiperFlatList.js +227 -0
- package/lib/cjs/components/Swiper/SwiperFlatList.js.map +1 -0
- package/lib/cjs/components/Swiper/SwiperPagerView.js +231 -0
- package/lib/cjs/components/Swiper/SwiperPagerView.js.map +1 -0
- package/lib/cjs/components/Swiper/index.js +16 -0
- package/lib/cjs/components/Swiper/index.js.map +1 -0
- package/lib/cjs/components/Swiper/types.js +3 -0
- package/lib/cjs/components/Swiper/types.js.map +1 -0
- package/lib/cjs/components/Swiper/utils.js +73 -0
- package/lib/cjs/components/Swiper/utils.js.map +1 -0
- package/lib/cjs/components/Switch/Switch.js +1 -1
- package/lib/cjs/components/Switch/index.js +1 -1
- package/lib/cjs/components/Tab/Tabs.js +1 -1
- package/lib/cjs/components/Tab/index.js +1 -1
- package/lib/cjs/components/Tab/styles.js +1 -1
- package/lib/cjs/components/TabBar/TabBar.js +1 -1
- package/lib/cjs/components/TabBar/index.js +1 -1
- package/lib/cjs/components/TabBar/styles.js +1 -1
- package/lib/cjs/components/Tag/Tag.js +1 -1
- package/lib/cjs/components/Tag/index.js +1 -1
- package/lib/cjs/components/Text/Text.js +1 -1
- package/lib/cjs/components/Text/Viewable.js +1 -1
- package/lib/cjs/components/Text/hooks/cloneContainer.js +1 -1
- package/lib/cjs/components/Text/hooks/index.js +1 -1
- package/lib/cjs/components/Text/hooks/loadFontFromFile.js +2 -2
- package/lib/cjs/components/Text/hooks/loadFontFromFile.js.map +1 -1
- package/lib/cjs/components/Text/index.js +1 -1
- package/lib/cjs/components/Text/styles.js +1 -1
- package/lib/cjs/components/TextField/TextField.js +1 -1
- package/lib/cjs/components/TextField/index.js +1 -1
- package/lib/cjs/components/TextField/styles.js +1 -1
- package/lib/cjs/components/TextView/TextView.js +1 -1
- package/lib/cjs/components/TextView/index.js +1 -1
- package/lib/cjs/components/TextView/styles.js +1 -1
- package/lib/cjs/components/Toast/Toast.js +1 -1
- package/lib/cjs/components/Toast/api.js +1 -1
- package/lib/cjs/components/Toast/index.js +1 -1
- package/lib/cjs/components/Toast/styles.js +1 -1
- package/lib/cjs/components/Uploader/Uploader.js +3 -3
- package/lib/cjs/components/Uploader/Uploader.js.map +1 -1
- package/lib/cjs/components/Uploader/index.js +2 -2
- package/lib/cjs/components/Uploader/interface/index.js +2 -2
- package/lib/cjs/components/Uploader/styles.js +2 -2
- package/lib/cjs/components/Uploader/utils.js +1 -1
- package/lib/cjs/index.js +9 -2
- package/lib/cjs/index.js.map +1 -1
- package/lib/cjs/pvCount/pvData.js +1 -0
- package/lib/cjs/pvCount/pvData.js.map +1 -1
- package/lib/esm/_chunks/{CAkwE9ZD.js → CgvIDP0E.js} +8 -10
- package/lib/esm/_chunks/{CAkwE9ZD.js.map → CgvIDP0E.js.map} +1 -1
- package/lib/esm/_chunks/{eYElHgNc.js → DRgGcbc8.js} +2 -2
- package/lib/esm/_chunks/{eYElHgNc.js.map → DRgGcbc8.js.map} +1 -1
- package/lib/esm/_chunks/Da9cW8JG.js.map +1 -1
- package/lib/esm/components/ActionSheets/ActionSheets.js +1 -1
- package/lib/esm/components/ActionSheets/ActionSheetsItem.js +1 -1
- package/lib/esm/components/ActionSheets/api.js +1 -1
- package/lib/esm/components/ActionSheets/hooks.js +1 -1
- package/lib/esm/components/ActionSheets/index.js +1 -1
- package/lib/esm/components/ActionablePopover/ActionablePopover.js +1 -1
- package/lib/esm/components/ActionablePopover/index.js +1 -1
- package/lib/esm/components/Alert/Alert.js +1 -1
- package/lib/esm/components/Alert/hooks/alert.js +1 -1
- package/lib/esm/components/Alert/index.js +1 -1
- package/lib/esm/components/Alert/styles.js +1 -1
- package/lib/esm/components/Avatar/Avatar.js +1 -1
- package/lib/esm/components/Avatar/index.js +1 -1
- package/lib/esm/components/Avatar/styles.js +1 -1
- package/lib/esm/components/AvatarGroup/AvatarGroup.js +1 -1
- package/lib/esm/components/AvatarGroup/index.js +1 -1
- package/lib/esm/components/Badge/Badge.js +1 -1
- package/lib/esm/components/Badge/index.js +1 -1
- package/lib/esm/components/Badge/styles.js +1 -1
- package/lib/esm/components/BottomBar/BottomBar.js +1 -1
- package/lib/esm/components/BottomBar/index.js +1 -1
- package/lib/esm/components/Button/Button.js +1 -1
- package/lib/esm/components/Button/Viewable.js +1 -1
- package/lib/esm/components/Button/index.js +1 -1
- package/lib/esm/components/Button/styleMap.js +1 -1
- package/lib/esm/components/Carousel/Carousel.js +3 -10
- package/lib/esm/components/Carousel/Carousel.js.map +1 -1
- package/lib/esm/components/Carousel/index.js +1 -1
- package/lib/esm/components/CheckBoxGroup/CheckBox.js +1 -1
- package/lib/esm/components/CheckBoxGroup/CheckBoxGroup.js +1 -1
- package/lib/esm/components/CheckBoxGroup/index.js +1 -1
- package/lib/esm/components/CheckBoxGroup/styles.js +1 -1
- package/lib/esm/components/Collapse/Collapse.js +1 -1
- package/lib/esm/components/Collapse/Item/Item.js +1 -1
- package/lib/esm/components/Collapse/Item/styles.js +1 -1
- package/lib/esm/components/Collapse/index.js +1 -1
- package/lib/esm/components/ConfigProvider/ConfigProvider.js +1 -1
- package/lib/esm/components/ConfigProvider/hooks/ConfigCache/ConfigCache.js +1 -1
- package/lib/esm/components/ConfigProvider/hooks/ConfigCache/index.js +1 -1
- package/lib/esm/components/ConfigProvider/hooks/themeToken/index.js +1 -1
- package/lib/esm/components/ConfigProvider/hooks/themeToken/useThemeToken.js +1 -1
- package/lib/esm/components/ConfigProvider/index.js +1 -1
- package/lib/esm/components/DatePicker/DatePicker.js +1 -1
- package/lib/esm/components/DatePicker/api.js +1 -1
- package/lib/esm/components/DatePicker/index.js +1 -1
- package/lib/esm/components/Divider/Divider.js +1 -1
- package/lib/esm/components/Divider/index.js +1 -1
- package/lib/esm/components/Divider/styles.js +1 -1
- package/lib/esm/components/DropDown/DropDown.js +1 -1
- package/lib/esm/components/DropDown/DropDownItem.js +1 -1
- package/lib/esm/components/DropDown/index.js +1 -1
- package/lib/esm/components/Empty/Empty.js +1 -1
- package/lib/esm/components/Empty/index.js +1 -1
- package/lib/esm/components/Empty/styles.js +1 -1
- package/lib/esm/components/FAB/FAB.js +1 -1
- package/lib/esm/components/FAB/index.js +1 -1
- package/lib/esm/components/Form/Form.js +1 -1
- package/lib/esm/components/Form/FormItem.js +1 -1
- package/lib/esm/components/Form/index.js +1 -1
- package/lib/esm/components/Form/styles.js +1 -1
- package/lib/esm/components/Image/Image.js +1 -1
- package/lib/esm/components/Image/Image69.js +1 -1
- package/lib/esm/components/Image/VisibilitySensor.js +1 -1
- package/lib/esm/components/Image/hook/index.js +1 -1
- package/lib/esm/components/Image/index.js +1 -1
- package/lib/esm/components/Image/utils.js +1 -1
- package/lib/esm/components/ImagePreview/ImagePreview.js +1 -1
- package/lib/esm/components/ImagePreview/api.js +1 -1
- package/lib/esm/components/ImagePreview/index.js +1 -1
- package/lib/esm/components/LanguageProvider/hooks/useLanguage.js +1 -1
- package/lib/esm/components/LanguageProvider/index.js +1 -1
- package/lib/esm/components/List/List.js +1 -1
- package/lib/esm/components/List/ListItem/ListItem.js +1 -1
- package/lib/esm/components/List/index.js +1 -1
- package/lib/esm/components/List/styles.js +1 -1
- package/lib/esm/components/MiniSnackBar/MiniSnackBar.js +1 -1
- package/lib/esm/components/MiniSnackBar/index.js +1 -1
- package/lib/esm/components/MiniSnackBar/styles.js +1 -1
- package/lib/esm/components/NavigationBar/NavigationBar.js +1 -1
- package/lib/esm/components/NavigationBar/index.js +1 -1
- package/lib/esm/components/NavigationBar/styles.js +1 -1
- package/lib/esm/components/NoticeBar/NoticeBar.js +1 -1
- package/lib/esm/components/NoticeBar/index.js +1 -1
- package/lib/esm/components/Picker/Picker.js +1 -1
- package/lib/esm/components/Picker/api.js +1 -1
- package/lib/esm/components/Picker/index.js +1 -1
- package/lib/esm/components/PickerView/PickerView.js +1 -1
- package/lib/esm/components/PickerView/Wheel.js +1 -1
- package/lib/esm/components/PickerView/index.js +1 -1
- package/lib/esm/components/Popover/Popover.js +4 -5
- package/lib/esm/components/Popover/Popover.js.map +1 -1
- package/lib/esm/components/Popover/index.js +1 -1
- package/lib/esm/components/Portal/core/PortalProvider.js +1 -1
- package/lib/esm/components/Portal/index.js +1 -1
- package/lib/esm/components/Progress/Progress.js +1 -1
- package/lib/esm/components/Progress/index.js +1 -1
- package/lib/esm/components/Progress/styles.js +1 -1
- package/lib/esm/components/ProgressIndicator/ProgressIndicator.js +1 -1
- package/lib/esm/components/ProgressIndicator/index.js +1 -1
- package/lib/esm/components/ProgressIndicator/styles.js +1 -1
- package/lib/esm/components/PullRefresh/PullRefresh.js +1 -1
- package/lib/esm/components/PullRefresh/component.js +1 -1
- package/lib/esm/components/PullRefresh/index.js +1 -1
- package/lib/esm/components/Radio/Radio.js +8 -2
- package/lib/esm/components/Radio/Radio.js.map +1 -1
- package/lib/esm/components/Radio/RadioGroup.js +1 -1
- package/lib/esm/components/Radio/index.js +8 -2
- package/lib/esm/components/Radio/index.js.map +1 -1
- package/lib/esm/components/Radio/styles.js +1 -1
- package/lib/esm/components/Rate/Rate.js +1 -1
- package/lib/esm/components/Rate/index.js +1 -1
- package/lib/esm/components/Result/Result.js +1 -1
- package/lib/esm/components/Result/index.js +1 -1
- package/lib/esm/components/Result/styles.js +1 -1
- package/lib/esm/components/Search/Search.js +1 -1
- package/lib/esm/components/Search/index.js +1 -1
- package/lib/esm/components/Search/styles.js +1 -1
- package/lib/esm/components/SegmentedControl/SegmentedControl.js +1 -1
- package/lib/esm/components/SegmentedControl/index.js +1 -1
- package/lib/esm/components/Sheets/AnimatedSheets.js +1 -1
- package/lib/esm/components/Sheets/Sheets.js +1 -1
- package/lib/esm/components/Sheets/api.js +1 -1
- package/lib/esm/components/Sheets/index.js +1 -1
- package/lib/esm/components/Sheets/styles.js +2 -2
- package/lib/esm/components/Sheets/styles.js.map +1 -1
- package/lib/esm/components/Skeleton/Item/SkeletonItem.js +1 -1
- package/lib/esm/components/Skeleton/Item/SkeletonItem69.js +1 -1
- package/lib/esm/components/Skeleton/Skeleton.js +1 -1
- package/lib/esm/components/Skeleton/Skeleton69.js +1 -1
- package/lib/esm/components/Skeleton/index.js +1 -1
- package/lib/esm/components/Slider/Slider.js +1 -1
- package/lib/esm/components/Slider/index.js +1 -1
- package/lib/esm/components/SlimAlert/Alert.js +1 -1
- package/lib/esm/components/SlimAlert/AlertContent.js +1 -1
- package/lib/esm/components/SlimAlert/AlertFooter.js +1 -1
- package/lib/esm/components/SlimAlert/index.js +1 -1
- package/lib/esm/components/SlimAlert/styles.js +1 -1
- package/lib/esm/components/SlimNavigationBar/NavigationBar.js +1 -1
- package/lib/esm/components/SlimNavigationBar/NavigationBarAction.js +1 -1
- package/lib/esm/components/SlimNavigationBar/index.js +1 -1
- package/lib/esm/components/SlimNavigationBar/styles.js +1 -1
- package/lib/esm/components/SlimSheets/AnimatedSheets.js +1 -1
- package/lib/esm/components/SlimSheets/AnimatedSheetsAction.js +1 -1
- package/lib/esm/components/SlimSheets/AnimatedSheetsHeader.js +1 -1
- package/lib/esm/components/SlimSheets/DragAnimatedSheets.js +1 -1
- package/lib/esm/components/SlimSheets/index.js +1 -1
- package/lib/esm/components/SlimTabs/BadgeSlimTabItem.js +1 -1
- package/lib/esm/components/SlimTabs/SlimTab.js +1 -1
- package/lib/esm/components/SlimTabs/SlimTabItem.js +1 -1
- package/lib/esm/components/SlimTabs/SlimTabItemLabel.js +1 -1
- package/lib/esm/components/SlimTabs/SlimTabItemValue.js +1 -1
- package/lib/esm/components/SlimTabs/SlimTabList.js +1 -1
- package/lib/esm/components/SlimTabs/index.js +1 -1
- package/lib/esm/components/SlimTabs/styles.js +1 -1
- package/lib/esm/components/SnackBar/SnackBar.js +1 -1
- package/lib/esm/components/SnackBar/index.js +1 -1
- package/lib/esm/components/SnackBar/styles.js +1 -1
- package/lib/esm/components/Stepper/Stepper.js +1 -1
- package/lib/esm/components/Stepper/index.js +1 -1
- package/lib/esm/components/Swiper/LazyPage.js +40 -0
- package/lib/esm/components/Swiper/LazyPage.js.map +1 -0
- package/lib/esm/components/Swiper/Swiper.js +25 -0
- package/lib/esm/components/Swiper/Swiper.js.map +1 -0
- package/lib/esm/components/Swiper/SwiperFlatList.js +225 -0
- package/lib/esm/components/Swiper/SwiperFlatList.js.map +1 -0
- package/lib/esm/components/Swiper/SwiperPagerView.js +229 -0
- package/lib/esm/components/Swiper/SwiperPagerView.js.map +1 -0
- package/lib/esm/components/Swiper/index.js +10 -0
- package/lib/esm/components/Swiper/index.js.map +1 -0
- package/lib/esm/components/Swiper/types.js +2 -0
- package/lib/esm/components/Swiper/types.js.map +1 -0
- package/lib/esm/components/Swiper/utils.js +68 -0
- package/lib/esm/components/Swiper/utils.js.map +1 -0
- package/lib/esm/components/Switch/Switch.js +1 -1
- package/lib/esm/components/Switch/index.js +1 -1
- package/lib/esm/components/Tab/Tabs.js +1 -1
- package/lib/esm/components/Tab/index.js +1 -1
- package/lib/esm/components/Tab/styles.js +1 -1
- package/lib/esm/components/TabBar/TabBar.js +1 -1
- package/lib/esm/components/TabBar/index.js +1 -1
- package/lib/esm/components/TabBar/styles.js +1 -1
- package/lib/esm/components/Tag/Tag.js +1 -1
- package/lib/esm/components/Tag/index.js +1 -1
- package/lib/esm/components/Text/Text.js +1 -1
- package/lib/esm/components/Text/Viewable.js +1 -1
- package/lib/esm/components/Text/hooks/cloneContainer.js +1 -1
- package/lib/esm/components/Text/hooks/index.js +1 -1
- package/lib/esm/components/Text/hooks/loadFontFromFile.js +2 -2
- package/lib/esm/components/Text/hooks/loadFontFromFile.js.map +1 -1
- package/lib/esm/components/Text/index.js +1 -1
- package/lib/esm/components/Text/styles.js +1 -1
- package/lib/esm/components/TextField/TextField.js +1 -1
- package/lib/esm/components/TextField/index.js +1 -1
- package/lib/esm/components/TextField/styles.js +1 -1
- package/lib/esm/components/TextView/TextView.js +1 -1
- package/lib/esm/components/TextView/index.js +1 -1
- package/lib/esm/components/TextView/styles.js +1 -1
- package/lib/esm/components/Toast/Toast.js +1 -1
- package/lib/esm/components/Toast/api.js +1 -1
- package/lib/esm/components/Toast/index.js +1 -1
- package/lib/esm/components/Toast/styles.js +1 -1
- package/lib/esm/components/Uploader/Uploader.js +3 -3
- package/lib/esm/components/Uploader/Uploader.js.map +1 -1
- package/lib/esm/components/Uploader/index.js +2 -2
- package/lib/esm/components/Uploader/interface/index.js +2 -2
- package/lib/esm/components/Uploader/styles.js +2 -2
- package/lib/esm/components/Uploader/utils.js +1 -1
- package/lib/esm/index.js +8 -2
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/pvCount/pvData.js +1 -0
- package/lib/esm/pvCount/pvData.js.map +1 -1
- package/lib/src/components/Popover/Popover.d.ts +1 -1
- package/lib/src/components/Popover/interface/index.d.ts +0 -1
- package/lib/src/components/Swiper/LazyPage.d.ts +7 -0
- package/lib/src/components/Swiper/Swiper.d.ts +5 -0
- package/lib/src/components/Swiper/SwiperFlatList.d.ts +5 -0
- package/lib/src/components/Swiper/SwiperPagerView.d.ts +5 -0
- package/lib/src/components/Swiper/index.d.ts +24 -0
- package/lib/src/components/Swiper/types.d.ts +166 -0
- package/lib/src/components/Swiper/utils.d.ts +42 -0
- package/lib/src/index.d.ts +1 -0
- package/lib/types/components/Popover/Popover.d.ts +1 -1
- package/lib/types/components/Popover/interface/index.d.ts +0 -1
- package/lib/types/components/Swiper/LazyPage.d.ts +7 -0
- package/lib/types/components/Swiper/Swiper.d.ts +5 -0
- package/lib/types/components/Swiper/SwiperFlatList.d.ts +5 -0
- package/lib/types/components/Swiper/SwiperPagerView.d.ts +5 -0
- package/lib/types/components/Swiper/index.d.ts +24 -0
- package/lib/types/components/Swiper/types.d.ts +166 -0
- package/lib/types/components/Swiper/utils.d.ts +42 -0
- package/lib/types/index.d.ts +1 -0
- package/package.json +3 -2
- package/src/components/Carousel/Carousel.tsx +3 -15
- package/src/components/Carousel/demo/index.tsx +2 -14
- package/src/components/Popover/Popover.tsx +3 -4
- package/src/components/Popover/doc/index.mdx +21 -22
- package/src/components/Popover/interface/index.ts +0 -1
- package/src/components/Sheets/styles.ts +2 -2
- package/src/components/Swiper/LazyPage.tsx +44 -0
- package/src/components/Swiper/Swiper.tsx +31 -0
- package/src/components/Swiper/SwiperFlatList.tsx +299 -0
- package/src/components/Swiper/SwiperPagerView.tsx +286 -0
- package/src/components/Swiper/demo/index.tsx +146 -0
- package/src/components/Swiper/doc/index.mdx +49 -0
- package/src/components/Swiper/index.ts +25 -0
- package/src/components/Swiper/types.ts +208 -0
- package/src/components/Swiper/utils.ts +133 -0
- package/src/index.ts +1 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Swiper.js","sources":["../../../../src/components/Swiper/Swiper.tsx"],"sourcesContent":["import React, { forwardRef } from \"react\";\nimport type { SwiperProps, SwiperRef } from \"./types\";\nimport { SwiperPagerView } from \"./SwiperPagerView\";\nimport { SwiperFlatList } from \"./SwiperFlatList\";\n\n/**\n * Swiper Component - A performant, data-driven carousel with infinite scroll support\n *\n * Features:\n * - Two implementations: PagerView (default) and FlatList\n * - Lazy mounting for performance with large datasets\n * - Infinite/loop scrolling with seamless transitions\n * - Programmatic control via ref methods\n * - Event callbacks for page changes\n * - Nested scroll support\n * - TypeScript generic support for type-safe data\n */\nfunction SwiperComponent<T>(props: SwiperProps<T>, ref: React.Ref<SwiperRef>) {\n const { implementation = \"pagerView\" } = props;\n\n if (implementation === \"flatlist\") {\n return <SwiperFlatList ref={ref} {...props} />;\n }\n\n return <SwiperPagerView ref={ref} {...props} />;\n}\n\n// Export with generic type support\nexport const Swiper = forwardRef(SwiperComponent) as <T>(\n props: SwiperProps<T> & { ref?: React.Ref<SwiperRef> },\n) => React.ReactElement;\n"],"names":["SwiperComponent","props","ref","_props$implementation","implementation","React","createElement","SwiperFlatList","_objectSpread","SwiperPagerView","Swiper","forwardRef"],"mappings":";;;;;;;;;AAiBA,SAASA,eAAAA,CAAmBC,OAAuBC,GAA2B,EAAA;AACtE,EAAA,IAAAC,qBAAA,GAAmCF,KAAA,CAAjCG,cAAiB;AAAjBA,IAAAA,cAAiB,GAAAD,qBAAA,KAAA,KAAA,CAAA,GAAA,WAAA,GAAAA,qBAAA,CAAA;EAEzB,IAAIC,mBAAmB,UAAY,EAAA;AACjC,IAAA,sBAAQC,KAAA,CAAAC,aAAA,CAAAC,cAAA,EAAAC,cAAA,CAAA;AAAeN,MAAAA,GAAW,EAAXA,GAAAA;KAAcD,EAAAA,KAAO,CAAA,CAAA,CAAA;AAC9C,GAAA;AAEA,EAAA,sBAAQI,KAAA,CAAAC,aAAA,CAAAG,eAAA,EAAAD,cAAA,CAAA;AAAgBN,IAAAA,GAAW,EAAXA,GAAAA;GAAcD,EAAAA,KAAO,CAAA,CAAA,CAAA;AAC/C,CAAA;IAGaS,MAAA,gBAASC,WAAWX,eAAe;;;;"}
|
|
@@ -0,0 +1,225 @@
|
|
|
1
|
+
import { _ as _slicedToArray } from '../../_chunks/CgvIDP0E.js';
|
|
2
|
+
import React, { forwardRef, useRef, useState, useMemo, useCallback, useImperativeHandle, useEffect } from 'react';
|
|
3
|
+
import { StyleSheet, View, FlatList } from 'react-native';
|
|
4
|
+
import { prepareInfiniteData, getDisplayIndex, getRealIndex } from './utils.js';
|
|
5
|
+
|
|
6
|
+
function SwiperFlatListComponent(props, ref) {
|
|
7
|
+
var data = props.data,
|
|
8
|
+
renderItem = props.renderItem,
|
|
9
|
+
_keyExtractor = props.keyExtractor,
|
|
10
|
+
_props$infinite = props.infinite,
|
|
11
|
+
infinite = _props$infinite === void 0 ? false : _props$infinite,
|
|
12
|
+
_props$initialPage = props.initialPage,
|
|
13
|
+
initialPage = _props$initialPage === void 0 ? 0 : _props$initialPage,
|
|
14
|
+
_props$cloneCount = props.cloneCount,
|
|
15
|
+
cloneCount = _props$cloneCount === void 0 ? 2 : _props$cloneCount,
|
|
16
|
+
onPageChange = props.onPageChange,
|
|
17
|
+
onNext = props.onNext,
|
|
18
|
+
onPrev = props.onPrev,
|
|
19
|
+
onScrollEndDrag = props.onScrollEndDrag,
|
|
20
|
+
onPageScrollStateChanged = props.onPageScrollStateChanged,
|
|
21
|
+
style = props.style;
|
|
22
|
+
var flatListRef = useRef(null);
|
|
23
|
+
var currentPageRef = useRef(initialPage);
|
|
24
|
+
var isJumpingRef = useRef(false);
|
|
25
|
+
useRef(false);
|
|
26
|
+
var _useState = useState(initialPage),
|
|
27
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
28
|
+
currentPage = _useState2[0],
|
|
29
|
+
setCurrentPage = _useState2[1];
|
|
30
|
+
var _useState3 = useState(0),
|
|
31
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
32
|
+
containerWidth = _useState4[0],
|
|
33
|
+
setContainerWidth = _useState4[1];
|
|
34
|
+
var _useMemo = useMemo(function () {
|
|
35
|
+
return prepareInfiniteData(data, infinite, cloneCount);
|
|
36
|
+
}, [data, infinite, cloneCount]),
|
|
37
|
+
displayData = _useMemo.displayData,
|
|
38
|
+
offset = _useMemo.offset,
|
|
39
|
+
actualCloneCount = _useMemo.cloneCount;
|
|
40
|
+
var adjustedInitialPage = useMemo(function () {
|
|
41
|
+
return infinite ? getDisplayIndex(initialPage, offset) : initialPage;
|
|
42
|
+
}, [infinite, initialPage, offset]);
|
|
43
|
+
var handleLayout = useCallback(function (event) {
|
|
44
|
+
var width = event.nativeEvent.layout.width;
|
|
45
|
+
if (width > 0) {
|
|
46
|
+
setContainerWidth(width);
|
|
47
|
+
}
|
|
48
|
+
}, []);
|
|
49
|
+
var handleScrollBeginDrag = useCallback(function () {
|
|
50
|
+
onPageScrollStateChanged === null || onPageScrollStateChanged === void 0 || onPageScrollStateChanged("dragging");
|
|
51
|
+
}, [onPageScrollStateChanged]);
|
|
52
|
+
var handleScrollEndDrag = useCallback(function (event) {
|
|
53
|
+
if (isJumpingRef.current || containerWidth === 0) {
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
var offsetX = event.nativeEvent.contentOffset.x;
|
|
57
|
+
var newDisplayPage = Math.round(offsetX / containerWidth);
|
|
58
|
+
var realIndex = getRealIndex(newDisplayPage, offset, data.length);
|
|
59
|
+
onScrollEndDrag === null || onScrollEndDrag === void 0 || onScrollEndDrag(realIndex);
|
|
60
|
+
onPageScrollStateChanged === null || onPageScrollStateChanged === void 0 || onPageScrollStateChanged("settling");
|
|
61
|
+
}, [data.length, offset, onScrollEndDrag, onPageScrollStateChanged, containerWidth]);
|
|
62
|
+
var handleMomentumScrollEnd = useCallback(function (event) {
|
|
63
|
+
if (isJumpingRef.current || containerWidth === 0) {
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
var offsetX = event.nativeEvent.contentOffset.x;
|
|
67
|
+
var newDisplayPage = Math.round(offsetX / containerWidth);
|
|
68
|
+
if (newDisplayPage === currentPageRef.current) {
|
|
69
|
+
return;
|
|
70
|
+
}
|
|
71
|
+
var prevPage = currentPageRef.current;
|
|
72
|
+
currentPageRef.current = newDisplayPage;
|
|
73
|
+
var realIndex = getRealIndex(newDisplayPage, offset, data.length);
|
|
74
|
+
setCurrentPage(realIndex);
|
|
75
|
+
onPageChange === null || onPageChange === void 0 || onPageChange(realIndex);
|
|
76
|
+
if (newDisplayPage > prevPage) {
|
|
77
|
+
onNext === null || onNext === void 0 || onNext(realIndex);
|
|
78
|
+
} else if (newDisplayPage < prevPage) {
|
|
79
|
+
onPrev === null || onPrev === void 0 || onPrev(realIndex);
|
|
80
|
+
}
|
|
81
|
+
onPageScrollStateChanged === null || onPageScrollStateChanged === void 0 || onPageScrollStateChanged("idle");
|
|
82
|
+
if (infinite && data.length >= 3) {
|
|
83
|
+
var threshold = Math.max(3, Math.min(5, Math.ceil(actualCloneCount / 5)));
|
|
84
|
+
offset + data.length + actualCloneCount;
|
|
85
|
+
if (newDisplayPage < offset + threshold && newDisplayPage < offset + data.length / 2) {
|
|
86
|
+
var dataIndex = actualCloneCount > data.length ? newDisplayPage % data.length : data.length - actualCloneCount + newDisplayPage;
|
|
87
|
+
var jumpTo = offset + dataIndex;
|
|
88
|
+
performJump(jumpTo);
|
|
89
|
+
} else if (newDisplayPage >= offset + data.length - threshold && newDisplayPage >= offset + data.length / 2) {
|
|
90
|
+
var offsetInCycle = (newDisplayPage - offset) % data.length;
|
|
91
|
+
var _jumpTo = offset + offsetInCycle;
|
|
92
|
+
performJump(_jumpTo);
|
|
93
|
+
}
|
|
94
|
+
}
|
|
95
|
+
}, [data.length, offset, actualCloneCount, infinite, onPageChange, onNext, onPrev, containerWidth]);
|
|
96
|
+
var performJump = useCallback(function (targetIndex) {
|
|
97
|
+
isJumpingRef.current = true;
|
|
98
|
+
requestAnimationFrame(function () {
|
|
99
|
+
var _flatListRef$current;
|
|
100
|
+
(_flatListRef$current = flatListRef.current) === null || _flatListRef$current === void 0 || _flatListRef$current.scrollToIndex({
|
|
101
|
+
index: targetIndex,
|
|
102
|
+
animated: false
|
|
103
|
+
});
|
|
104
|
+
currentPageRef.current = targetIndex;
|
|
105
|
+
requestAnimationFrame(function () {
|
|
106
|
+
isJumpingRef.current = false;
|
|
107
|
+
});
|
|
108
|
+
});
|
|
109
|
+
}, []);
|
|
110
|
+
var getItemLayout = useCallback(function (_, index) {
|
|
111
|
+
return {
|
|
112
|
+
length: containerWidth,
|
|
113
|
+
offset: containerWidth * index,
|
|
114
|
+
index: index
|
|
115
|
+
};
|
|
116
|
+
}, [containerWidth]);
|
|
117
|
+
var renderFlatListItem = useCallback(function (_ref) {
|
|
118
|
+
var item = _ref.item,
|
|
119
|
+
index = _ref.index;
|
|
120
|
+
var realIndex = getRealIndex(index, offset, data.length);
|
|
121
|
+
return /* @__PURE__ */React.createElement(View, {
|
|
122
|
+
style: [styles.page, {
|
|
123
|
+
width: containerWidth
|
|
124
|
+
}]
|
|
125
|
+
}, renderItem(item, realIndex));
|
|
126
|
+
}, [renderItem, offset, data.length, containerWidth]);
|
|
127
|
+
useImperativeHandle(ref, function () {
|
|
128
|
+
return {
|
|
129
|
+
goToPage: function goToPage(index) {
|
|
130
|
+
var _flatListRef$current2;
|
|
131
|
+
var animated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
132
|
+
var clampedIndex = Math.max(0, Math.min(index, data.length - 1));
|
|
133
|
+
var displayIndex = infinite ? getDisplayIndex(clampedIndex, offset) : clampedIndex;
|
|
134
|
+
(_flatListRef$current2 = flatListRef.current) === null || _flatListRef$current2 === void 0 || _flatListRef$current2.scrollToIndex({
|
|
135
|
+
index: displayIndex,
|
|
136
|
+
animated: animated
|
|
137
|
+
});
|
|
138
|
+
},
|
|
139
|
+
next: function next() {
|
|
140
|
+
var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
141
|
+
var nextPage = currentPageRef.current + 1;
|
|
142
|
+
if (nextPage < displayData.length) {
|
|
143
|
+
var _flatListRef$current3;
|
|
144
|
+
(_flatListRef$current3 = flatListRef.current) === null || _flatListRef$current3 === void 0 || _flatListRef$current3.scrollToIndex({
|
|
145
|
+
index: nextPage,
|
|
146
|
+
animated: animated
|
|
147
|
+
});
|
|
148
|
+
}
|
|
149
|
+
},
|
|
150
|
+
prev: function prev() {
|
|
151
|
+
var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
152
|
+
var prevPage = currentPageRef.current - 1;
|
|
153
|
+
if (prevPage >= 0) {
|
|
154
|
+
var _flatListRef$current4;
|
|
155
|
+
(_flatListRef$current4 = flatListRef.current) === null || _flatListRef$current4 === void 0 || _flatListRef$current4.scrollToIndex({
|
|
156
|
+
index: prevPage,
|
|
157
|
+
animated: animated
|
|
158
|
+
});
|
|
159
|
+
}
|
|
160
|
+
},
|
|
161
|
+
getCurrentPage: function getCurrentPage() {
|
|
162
|
+
return currentPage;
|
|
163
|
+
}
|
|
164
|
+
};
|
|
165
|
+
}, [currentPage, data.length, infinite, offset, displayData.length]);
|
|
166
|
+
useEffect(function () {
|
|
167
|
+
if (containerWidth > 0) {
|
|
168
|
+
var timer = setTimeout(function () {
|
|
169
|
+
var _flatListRef$current5;
|
|
170
|
+
(_flatListRef$current5 = flatListRef.current) === null || _flatListRef$current5 === void 0 || _flatListRef$current5.scrollToIndex({
|
|
171
|
+
index: adjustedInitialPage,
|
|
172
|
+
animated: false
|
|
173
|
+
});
|
|
174
|
+
}, 100);
|
|
175
|
+
return function () {
|
|
176
|
+
return clearTimeout(timer);
|
|
177
|
+
};
|
|
178
|
+
}
|
|
179
|
+
}, [adjustedInitialPage, containerWidth]);
|
|
180
|
+
if (data.length === 0) {
|
|
181
|
+
return null;
|
|
182
|
+
}
|
|
183
|
+
return /* @__PURE__ */React.createElement(View, {
|
|
184
|
+
style: [styles.container, style],
|
|
185
|
+
onLayout: handleLayout
|
|
186
|
+
}, containerWidth > 0 && /* @__PURE__ */React.createElement(FlatList, {
|
|
187
|
+
ref: flatListRef,
|
|
188
|
+
data: displayData,
|
|
189
|
+
renderItem: renderFlatListItem,
|
|
190
|
+
keyExtractor: function keyExtractor(item, index) {
|
|
191
|
+
var _keyExtractor2;
|
|
192
|
+
var realIndex = getRealIndex(index, offset, data.length);
|
|
193
|
+
return (_keyExtractor2 = _keyExtractor === null || _keyExtractor === void 0 ? void 0 : _keyExtractor(item, realIndex)) !== null && _keyExtractor2 !== void 0 ? _keyExtractor2 : "swiper-fl-".concat(index);
|
|
194
|
+
},
|
|
195
|
+
horizontal: true,
|
|
196
|
+
pagingEnabled: true,
|
|
197
|
+
showsHorizontalScrollIndicator: false,
|
|
198
|
+
onScrollBeginDrag: onPageScrollStateChanged ? handleScrollBeginDrag : void 0,
|
|
199
|
+
onScrollEndDrag: onScrollEndDrag || onPageScrollStateChanged ? handleScrollEndDrag : void 0,
|
|
200
|
+
onMomentumScrollEnd: handleMomentumScrollEnd,
|
|
201
|
+
getItemLayout: getItemLayout,
|
|
202
|
+
initialScrollIndex: adjustedInitialPage,
|
|
203
|
+
initialNumToRender: 10,
|
|
204
|
+
windowSize: 21,
|
|
205
|
+
maxToRenderPerBatch: 10,
|
|
206
|
+
updateCellsBatchingPeriod: 30,
|
|
207
|
+
removeClippedSubviews: false,
|
|
208
|
+
style: styles.flatList
|
|
209
|
+
}));
|
|
210
|
+
}
|
|
211
|
+
var styles = StyleSheet.create({
|
|
212
|
+
container: {
|
|
213
|
+
flex: 1
|
|
214
|
+
},
|
|
215
|
+
flatList: {
|
|
216
|
+
flex: 1
|
|
217
|
+
},
|
|
218
|
+
page: {
|
|
219
|
+
flex: 1
|
|
220
|
+
}
|
|
221
|
+
});
|
|
222
|
+
var SwiperFlatList = /*#__PURE__*/forwardRef(SwiperFlatListComponent);
|
|
223
|
+
|
|
224
|
+
export { SwiperFlatList };
|
|
225
|
+
//# sourceMappingURL=SwiperFlatList.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwiperFlatList.js","sources":["../../../../src/components/Swiper/SwiperFlatList.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from \"react\";\nimport { FlatList, StyleSheet, View, LayoutChangeEvent } from \"react-native\";\nimport type { SwiperProps, SwiperRef } from \"./types\";\nimport { prepareInfiniteData, shouldJumpForInfinite, getRealIndex, getDisplayIndex } from \"./utils\";\n\n/**\n * FlatList-based Swiper implementation\n */\nfunction SwiperFlatListComponent<T>(props: SwiperProps<T>, ref: React.Ref<SwiperRef>) {\n const {\n data,\n renderItem,\n keyExtractor,\n infinite = false,\n initialPage = 0,\n cloneCount = 2,\n onPageChange,\n onNext,\n onPrev,\n onScrollEndDrag,\n onPageScrollStateChanged,\n style,\n } = props;\n\n // Refs\n const flatListRef = useRef<FlatList>(null);\n const currentPageRef = useRef<number>(initialPage);\n const isJumpingRef = useRef<boolean>(false);\n const scrollingRef = useRef<boolean>(false);\n\n // State\n const [currentPage, setCurrentPage] = useState(initialPage);\n const [containerWidth, setContainerWidth] = useState(0);\n\n // Prepare data for infinite scrolling\n const {\n displayData,\n offset,\n cloneCount: actualCloneCount,\n } = useMemo(() => {\n return prepareInfiniteData(data, infinite, cloneCount);\n }, [data, infinite, cloneCount]);\n\n // Calculate adjusted initial page for infinite mode\n const adjustedInitialPage = useMemo(() => {\n return infinite ? getDisplayIndex(initialPage, offset) : initialPage;\n }, [infinite, initialPage, offset]);\n\n /**\n * Handle layout to measure actual container width\n */\n const handleLayout = useCallback((event: LayoutChangeEvent) => {\n const { width } = event.nativeEvent.layout;\n if (width > 0) {\n setContainerWidth(width);\n }\n }, []);\n\n /**\n * Handle scroll begin drag - fires when user starts dragging\n */\n const handleScrollBeginDrag = useCallback(() => {\n onPageScrollStateChanged?.(\"dragging\");\n }, [onPageScrollStateChanged]);\n\n /**\n * Handle scroll end drag - fires when user releases finger\n */\n const handleScrollEndDrag = useCallback(\n (event: any) => {\n if (isJumpingRef.current || containerWidth === 0) {\n return;\n }\n\n const offsetX = event.nativeEvent.contentOffset.x;\n const newDisplayPage = Math.round(offsetX / containerWidth);\n\n const realIndex = getRealIndex(newDisplayPage, offset, data.length);\n\n // Call the callback if provided\n onScrollEndDrag?.(realIndex);\n\n // Transition to settling state (momentum begins)\n onPageScrollStateChanged?.(\"settling\");\n },\n [data.length, offset, onScrollEndDrag, onPageScrollStateChanged, containerWidth],\n );\n\n /**\n * Handle scroll end - detect which page we're on\n */\n const handleMomentumScrollEnd = useCallback(\n (event: any) => {\n if (isJumpingRef.current || containerWidth === 0) {\n return;\n }\n\n const offsetX = event.nativeEvent.contentOffset.x;\n const newDisplayPage = Math.round(offsetX / containerWidth);\n\n if (newDisplayPage === currentPageRef.current) {\n return;\n }\n\n const prevPage = currentPageRef.current;\n currentPageRef.current = newDisplayPage;\n\n const realIndex = getRealIndex(newDisplayPage, offset, data.length);\n setCurrentPage(realIndex);\n\n // Emit events\n onPageChange?.(realIndex);\n\n if (newDisplayPage > prevPage) {\n onNext?.(realIndex);\n } else if (newDisplayPage < prevPage) {\n onPrev?.(realIndex);\n }\n\n // Transition to idle state (scroll complete)\n onPageScrollStateChanged?.(\"idle\");\n\n // Handle infinite scroll jump - jump earlier to avoid hitting edge\n if (infinite && data.length >= 3) {\n // Use larger threshold for FlatList to jump before hitting edge\n const threshold = Math.max(3, Math.min(5, Math.ceil(actualCloneCount / 5)));\n const totalLength = offset + data.length + actualCloneCount;\n\n // Near start\n if (newDisplayPage < offset + threshold && newDisplayPage < offset + data.length / 2) {\n const dataIndex =\n actualCloneCount > data.length\n ? newDisplayPage % data.length\n : data.length - actualCloneCount + newDisplayPage;\n\n const jumpTo = offset + dataIndex;\n performJump(jumpTo);\n }\n // Near end\n else if (newDisplayPage >= offset + data.length - threshold && newDisplayPage >= offset + data.length / 2) {\n const offsetInCycle = (newDisplayPage - offset) % data.length;\n const jumpTo = offset + offsetInCycle;\n performJump(jumpTo);\n }\n }\n },\n [data.length, offset, actualCloneCount, infinite, onPageChange, onNext, onPrev, containerWidth],\n );\n\n /**\n * Perform jump without animation\n */\n const performJump = useCallback((targetIndex: number) => {\n isJumpingRef.current = true;\n\n requestAnimationFrame(() => {\n flatListRef.current?.scrollToIndex({\n index: targetIndex,\n animated: false,\n });\n currentPageRef.current = targetIndex;\n\n requestAnimationFrame(() => {\n isJumpingRef.current = false;\n });\n });\n }, []);\n\n /**\n * Get item layout for proper scrollToIndex\n */\n const getItemLayout = useCallback(\n (_: any, index: number) => ({\n length: containerWidth,\n offset: containerWidth * index,\n index,\n }),\n [containerWidth],\n );\n\n /**\n * Render each item\n */\n const renderFlatListItem = useCallback(\n ({ item, index }: { item: T; index: number }) => {\n const realIndex = getRealIndex(index, offset, data.length);\n return <View style={[styles.page, { width: containerWidth }]}>{renderItem(item, realIndex)}</View>;\n },\n [renderItem, offset, data.length, containerWidth],\n );\n\n /**\n * Expose ref methods\n */\n useImperativeHandle(\n ref,\n () => ({\n goToPage: (index: number, animated = true) => {\n const clampedIndex = Math.max(0, Math.min(index, data.length - 1));\n const displayIndex = infinite ? getDisplayIndex(clampedIndex, offset) : clampedIndex;\n\n flatListRef.current?.scrollToIndex({\n index: displayIndex,\n animated,\n });\n },\n\n next: (animated = true) => {\n const nextPage = currentPageRef.current + 1;\n if (nextPage < displayData.length) {\n flatListRef.current?.scrollToIndex({\n index: nextPage,\n animated,\n });\n }\n },\n\n prev: (animated = true) => {\n const prevPage = currentPageRef.current - 1;\n if (prevPage >= 0) {\n flatListRef.current?.scrollToIndex({\n index: prevPage,\n animated,\n });\n }\n },\n\n getCurrentPage: () => currentPage,\n }),\n [currentPage, data.length, infinite, offset, displayData.length],\n );\n\n /**\n * Initialize to initial page after container width is measured\n */\n useEffect(() => {\n if (containerWidth > 0) {\n const timer = setTimeout(() => {\n flatListRef.current?.scrollToIndex({\n index: adjustedInitialPage,\n animated: false,\n });\n }, 100);\n\n return () => clearTimeout(timer);\n }\n }, [adjustedInitialPage, containerWidth]);\n\n if (data.length === 0) {\n return null;\n }\n\n return (\n <View style={[styles.container, style]} onLayout={handleLayout}>\n {containerWidth > 0 && (\n <FlatList\n ref={flatListRef}\n data={displayData}\n renderItem={renderFlatListItem}\n keyExtractor={(item, index) => {\n const realIndex = getRealIndex(index, offset, data.length);\n return keyExtractor?.(item, realIndex) ?? `swiper-fl-${index}`;\n }}\n horizontal\n pagingEnabled\n showsHorizontalScrollIndicator={false}\n onScrollBeginDrag={onPageScrollStateChanged ? handleScrollBeginDrag : undefined}\n onScrollEndDrag={onScrollEndDrag || onPageScrollStateChanged ? handleScrollEndDrag : undefined}\n onMomentumScrollEnd={handleMomentumScrollEnd}\n getItemLayout={getItemLayout}\n initialScrollIndex={adjustedInitialPage}\n // Optimized for fast scrolling with paging\n initialNumToRender={10}\n windowSize={21}\n maxToRenderPerBatch={10}\n updateCellsBatchingPeriod={30}\n removeClippedSubviews={false}\n style={styles.flatList}\n />\n )}\n </View>\n );\n}\n\nconst styles = StyleSheet.create({\n container: {\n flex: 1,\n },\n flatList: {\n flex: 1,\n },\n page: {\n flex: 1,\n },\n});\n\nexport const SwiperFlatList = forwardRef(SwiperFlatListComponent) as <T>(\n props: SwiperProps<T> & { ref?: React.Ref<SwiperRef> },\n) => React.ReactElement;\n"],"names":["SwiperFlatListComponent","props","ref","data","renderItem","keyExtractor","_props$infinite","infinite","_props$initialPage","initialPage","_props$cloneCount","cloneCount","onPageChange","onNext","onPrev","onScrollEndDrag","onPageScrollStateChanged","style","flatListRef","useRef","currentPageRef","isJumpingRef","_useState","useState","_useState2","_slicedToArray","currentPage","setCurrentPage","_useState3","_useState4","containerWidth","setContainerWidth","_useMemo","useMemo","prepareInfiniteData","displayData","offset","actualCloneCount","adjustedInitialPage","getDisplayIndex","handleLayout","useCallback","event","width","nativeEvent","layout","handleScrollBeginDrag","handleScrollEndDrag","current","offsetX","contentOffset","x","newDisplayPage","Math","round","realIndex","getRealIndex","length","handleMomentumScrollEnd","prevPage","threshold","max","min","ceil","dataIndex","jumpTo","performJump","offsetInCycle","targetIndex","requestAnimationFrame","_flatListRef$current","scrollToIndex","index","animated","getItemLayout","_","renderFlatListItem","_ref","item","React","createElement","View","styles","page","useImperativeHandle","goToPage","_flatListRef$current2","arguments","undefined","clampedIndex","displayIndex","next","nextPage","_flatListRef$current3","prev","_flatListRef$current4","getCurrentPage","useEffect","timer","setTimeout","_flatListRef$current5","clearTimeout","container","onLayout","FlatList","_keyExtractor2","concat","horizontal","pagingEnabled","showsHorizontalScrollIndicator","onScrollBeginDrag","onMomentumScrollEnd","initialScrollIndex","initialNumToRender","windowSize","maxToRenderPerBatch","updateCellsBatchingPeriod","removeClippedSubviews","flatList","StyleSheet","create","flex","SwiperFlatList","forwardRef"],"mappings":"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"}
|
|
@@ -0,0 +1,229 @@
|
|
|
1
|
+
import { _ as _slicedToArray } from '../../_chunks/CgvIDP0E.js';
|
|
2
|
+
import React, { forwardRef, useRef, useState, useMemo, useCallback, useEffect, useImperativeHandle } from 'react';
|
|
3
|
+
import { StyleSheet } from 'react-native';
|
|
4
|
+
import PagerView from 'react-native-pager-view';
|
|
5
|
+
import { LazyPage } from './LazyPage.js';
|
|
6
|
+
import { prepareInfiniteData, getDisplayIndex, getRealIndex, shouldJumpForInfinite } from './utils.js';
|
|
7
|
+
|
|
8
|
+
function SwiperPagerViewComponent(props, ref) {
|
|
9
|
+
var data = props.data,
|
|
10
|
+
renderItem = props.renderItem,
|
|
11
|
+
keyExtractor = props.keyExtractor,
|
|
12
|
+
_props$infinite = props.infinite,
|
|
13
|
+
infinite = _props$infinite === void 0 ? false : _props$infinite,
|
|
14
|
+
_props$initialPage = props.initialPage,
|
|
15
|
+
initialPage = _props$initialPage === void 0 ? 0 : _props$initialPage,
|
|
16
|
+
_props$cloneCount = props.cloneCount,
|
|
17
|
+
cloneCount = _props$cloneCount === void 0 ? 2 : _props$cloneCount,
|
|
18
|
+
_props$lazyMountWindo = props.lazyMountWindow,
|
|
19
|
+
lazyMountWindow = _props$lazyMountWindo === void 0 ? 2 : _props$lazyMountWindo,
|
|
20
|
+
_props$removeClippedP = props.removeClippedPages,
|
|
21
|
+
removeClippedPages = _props$removeClippedP === void 0 ? false : _props$removeClippedP,
|
|
22
|
+
unmountThreshold = props.unmountThreshold,
|
|
23
|
+
onPageChange = props.onPageChange,
|
|
24
|
+
onNext = props.onNext,
|
|
25
|
+
onPrev = props.onPrev,
|
|
26
|
+
onPageScrollStateChanged = props.onPageScrollStateChanged,
|
|
27
|
+
style = props.style,
|
|
28
|
+
pageMargin = props.pageMargin,
|
|
29
|
+
offscreenPageLimit = props.offscreenPageLimit,
|
|
30
|
+
_props$scrollEnabled = props.scrollEnabled,
|
|
31
|
+
scrollEnabled = _props$scrollEnabled === void 0 ? true : _props$scrollEnabled,
|
|
32
|
+
overdrag = props.overdrag,
|
|
33
|
+
renderPlaceholder = props.renderPlaceholder;
|
|
34
|
+
var pagerRef = useRef(null);
|
|
35
|
+
var currentPageRef = useRef(initialPage);
|
|
36
|
+
var isJumpingRef = useRef(false);
|
|
37
|
+
var pendingJumpRef = useRef(null);
|
|
38
|
+
var scrollStateRef = useRef("idle");
|
|
39
|
+
var _useState = useState(initialPage),
|
|
40
|
+
_useState2 = _slicedToArray(_useState, 2),
|
|
41
|
+
currentPage = _useState2[0],
|
|
42
|
+
setCurrentPage = _useState2[1];
|
|
43
|
+
var _useState3 = useState(/* @__PURE__ */new Set()),
|
|
44
|
+
_useState4 = _slicedToArray(_useState3, 2),
|
|
45
|
+
mountedPages = _useState4[0],
|
|
46
|
+
setMountedPages = _useState4[1];
|
|
47
|
+
var _useState5 = useState(/* @__PURE__ */new Set()),
|
|
48
|
+
_useState6 = _slicedToArray(_useState5, 2),
|
|
49
|
+
unmountPages = _useState6[0],
|
|
50
|
+
setUnmountPages = _useState6[1];
|
|
51
|
+
var _useMemo = useMemo(function () {
|
|
52
|
+
return prepareInfiniteData(data, infinite, cloneCount);
|
|
53
|
+
}, [data, infinite, cloneCount]),
|
|
54
|
+
displayData = _useMemo.displayData,
|
|
55
|
+
offset = _useMemo.offset,
|
|
56
|
+
actualCloneCount = _useMemo.cloneCount;
|
|
57
|
+
var adjustedInitialPage = useMemo(function () {
|
|
58
|
+
return infinite ? getDisplayIndex(initialPage, offset) : initialPage;
|
|
59
|
+
}, [infinite, initialPage, offset]);
|
|
60
|
+
var updateMountedPages = useCallback(function (centerPage) {
|
|
61
|
+
var newMounted = /* @__PURE__ */new Set();
|
|
62
|
+
var newUnmount = /* @__PURE__ */new Set();
|
|
63
|
+
var effectiveMountWindow = Math.max(lazyMountWindow, Math.min(10, Math.ceil(actualCloneCount / 10)));
|
|
64
|
+
var effectiveUnmountThreshold = unmountThreshold !== null && unmountThreshold !== void 0 ? unmountThreshold : effectiveMountWindow * 3;
|
|
65
|
+
for (var i = centerPage - effectiveMountWindow; i <= centerPage + effectiveMountWindow; i++) {
|
|
66
|
+
if (i >= 0 && i < displayData.length) {
|
|
67
|
+
newMounted.add(i);
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
if (removeClippedPages) {
|
|
71
|
+
for (var _i = 0; _i < displayData.length; _i++) {
|
|
72
|
+
var distance = Math.abs(_i - centerPage);
|
|
73
|
+
if (distance > effectiveUnmountThreshold) {
|
|
74
|
+
newUnmount.add(_i);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
console.log("Mounted pages:", Array.from(newMounted));
|
|
79
|
+
console.log("Unmount pages:", Array.from(newUnmount));
|
|
80
|
+
setMountedPages(newMounted);
|
|
81
|
+
setUnmountPages(newUnmount);
|
|
82
|
+
}, [lazyMountWindow, displayData.length, actualCloneCount, unmountThreshold, removeClippedPages]);
|
|
83
|
+
var handlePageSelected = useCallback(function (event) {
|
|
84
|
+
var newDisplayPage = event.nativeEvent.position;
|
|
85
|
+
if (isJumpingRef.current) {
|
|
86
|
+
return;
|
|
87
|
+
}
|
|
88
|
+
var realIndex = getRealIndex(newDisplayPage, offset, data.length);
|
|
89
|
+
var prevDisplayPage = currentPageRef.current;
|
|
90
|
+
setCurrentPage(realIndex);
|
|
91
|
+
currentPageRef.current = newDisplayPage;
|
|
92
|
+
updateMountedPages(newDisplayPage);
|
|
93
|
+
onPageChange === null || onPageChange === void 0 || onPageChange(realIndex);
|
|
94
|
+
if (newDisplayPage > prevDisplayPage) {
|
|
95
|
+
onNext === null || onNext === void 0 || onNext(realIndex);
|
|
96
|
+
} else if (newDisplayPage < prevDisplayPage) {
|
|
97
|
+
onPrev === null || onPrev === void 0 || onPrev(realIndex);
|
|
98
|
+
}
|
|
99
|
+
if (infinite && data.length >= 3) {
|
|
100
|
+
var jumpResult = shouldJumpForInfinite(newDisplayPage, data.length, offset, actualCloneCount);
|
|
101
|
+
if (jumpResult.shouldJump && jumpResult.jumpTo !== void 0) {
|
|
102
|
+
pendingJumpRef.current = jumpResult.jumpTo;
|
|
103
|
+
}
|
|
104
|
+
}
|
|
105
|
+
}, [data.length, offset, actualCloneCount, infinite, onPageChange, onNext, onPrev, updateMountedPages]);
|
|
106
|
+
var handlePageScrollStateChanged = useCallback(function (event) {
|
|
107
|
+
var state = event.nativeEvent.pageScrollState;
|
|
108
|
+
scrollStateRef.current = state;
|
|
109
|
+
onPageScrollStateChanged === null || onPageScrollStateChanged === void 0 || onPageScrollStateChanged(state);
|
|
110
|
+
if (state === "idle" && pendingJumpRef.current !== null) {
|
|
111
|
+
var targetPage = pendingJumpRef.current;
|
|
112
|
+
pendingJumpRef.current = null;
|
|
113
|
+
isJumpingRef.current = true;
|
|
114
|
+
requestAnimationFrame(function () {
|
|
115
|
+
var _pagerRef$current;
|
|
116
|
+
(_pagerRef$current = pagerRef.current) === null || _pagerRef$current === void 0 || _pagerRef$current.setPageWithoutAnimation(targetPage);
|
|
117
|
+
currentPageRef.current = targetPage;
|
|
118
|
+
setTimeout(function () {
|
|
119
|
+
isJumpingRef.current = false;
|
|
120
|
+
}, 50);
|
|
121
|
+
});
|
|
122
|
+
}
|
|
123
|
+
}, [onPageScrollStateChanged]);
|
|
124
|
+
useEffect(function () {
|
|
125
|
+
updateMountedPages(adjustedInitialPage);
|
|
126
|
+
}, [adjustedInitialPage, updateMountedPages]);
|
|
127
|
+
useImperativeHandle(ref, function () {
|
|
128
|
+
return {
|
|
129
|
+
goToPage: function goToPage(index) {
|
|
130
|
+
var animated = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : true;
|
|
131
|
+
var clampedIndex = Math.max(0, Math.min(index, data.length - 1));
|
|
132
|
+
var displayIndex = infinite ? getDisplayIndex(clampedIndex, offset) : clampedIndex;
|
|
133
|
+
if (animated) {
|
|
134
|
+
var _pagerRef$current2;
|
|
135
|
+
(_pagerRef$current2 = pagerRef.current) === null || _pagerRef$current2 === void 0 || _pagerRef$current2.setPage(displayIndex);
|
|
136
|
+
} else {
|
|
137
|
+
var _pagerRef$current3;
|
|
138
|
+
(_pagerRef$current3 = pagerRef.current) === null || _pagerRef$current3 === void 0 || _pagerRef$current3.setPageWithoutAnimation(displayIndex);
|
|
139
|
+
}
|
|
140
|
+
},
|
|
141
|
+
next: function next() {
|
|
142
|
+
var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
143
|
+
var nextPage = currentPage + 1;
|
|
144
|
+
if (infinite) {
|
|
145
|
+
getDisplayIndex(nextPage % data.length, offset);
|
|
146
|
+
if (animated) {
|
|
147
|
+
var _pagerRef$current4;
|
|
148
|
+
(_pagerRef$current4 = pagerRef.current) === null || _pagerRef$current4 === void 0 || _pagerRef$current4.setPage(currentPageRef.current + 1);
|
|
149
|
+
} else {
|
|
150
|
+
var _pagerRef$current5;
|
|
151
|
+
(_pagerRef$current5 = pagerRef.current) === null || _pagerRef$current5 === void 0 || _pagerRef$current5.setPageWithoutAnimation(currentPageRef.current + 1);
|
|
152
|
+
}
|
|
153
|
+
} else {
|
|
154
|
+
if (nextPage < data.length) {
|
|
155
|
+
if (animated) {
|
|
156
|
+
var _pagerRef$current6;
|
|
157
|
+
(_pagerRef$current6 = pagerRef.current) === null || _pagerRef$current6 === void 0 || _pagerRef$current6.setPage(nextPage);
|
|
158
|
+
} else {
|
|
159
|
+
var _pagerRef$current7;
|
|
160
|
+
(_pagerRef$current7 = pagerRef.current) === null || _pagerRef$current7 === void 0 || _pagerRef$current7.setPageWithoutAnimation(nextPage);
|
|
161
|
+
}
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
},
|
|
165
|
+
prev: function prev() {
|
|
166
|
+
var animated = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : true;
|
|
167
|
+
var prevPage = currentPage - 1;
|
|
168
|
+
if (infinite) {
|
|
169
|
+
getDisplayIndex((prevPage + data.length) % data.length, offset);
|
|
170
|
+
if (animated) {
|
|
171
|
+
var _pagerRef$current8;
|
|
172
|
+
(_pagerRef$current8 = pagerRef.current) === null || _pagerRef$current8 === void 0 || _pagerRef$current8.setPage(currentPageRef.current - 1);
|
|
173
|
+
} else {
|
|
174
|
+
var _pagerRef$current9;
|
|
175
|
+
(_pagerRef$current9 = pagerRef.current) === null || _pagerRef$current9 === void 0 || _pagerRef$current9.setPageWithoutAnimation(currentPageRef.current - 1);
|
|
176
|
+
}
|
|
177
|
+
} else {
|
|
178
|
+
if (prevPage >= 0) {
|
|
179
|
+
if (animated) {
|
|
180
|
+
var _pagerRef$current0;
|
|
181
|
+
(_pagerRef$current0 = pagerRef.current) === null || _pagerRef$current0 === void 0 || _pagerRef$current0.setPage(prevPage);
|
|
182
|
+
} else {
|
|
183
|
+
var _pagerRef$current1;
|
|
184
|
+
(_pagerRef$current1 = pagerRef.current) === null || _pagerRef$current1 === void 0 || _pagerRef$current1.setPageWithoutAnimation(prevPage);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
},
|
|
189
|
+
getCurrentPage: function getCurrentPage() {
|
|
190
|
+
return currentPage;
|
|
191
|
+
}
|
|
192
|
+
};
|
|
193
|
+
}, [currentPage, data.length, infinite, offset]);
|
|
194
|
+
if (data.length === 0) {
|
|
195
|
+
return null;
|
|
196
|
+
}
|
|
197
|
+
return /* @__PURE__ */React.createElement(PagerView, {
|
|
198
|
+
ref: pagerRef,
|
|
199
|
+
style: [styles.pager, style],
|
|
200
|
+
initialPage: adjustedInitialPage,
|
|
201
|
+
onPageSelected: handlePageSelected,
|
|
202
|
+
onPageScrollStateChanged: handlePageScrollStateChanged,
|
|
203
|
+
pageMargin: pageMargin,
|
|
204
|
+
offscreenPageLimit: offscreenPageLimit,
|
|
205
|
+
scrollEnabled: scrollEnabled,
|
|
206
|
+
overdrag: overdrag
|
|
207
|
+
}, displayData.map(function (item, displayIndex) {
|
|
208
|
+
var _keyExtractor;
|
|
209
|
+
var realIndex = getRealIndex(displayIndex, offset, data.length);
|
|
210
|
+
var shouldMount = mountedPages.has(displayIndex);
|
|
211
|
+
var shouldUnmount = unmountPages.has(displayIndex);
|
|
212
|
+
var key = (_keyExtractor = keyExtractor === null || keyExtractor === void 0 ? void 0 : keyExtractor(item, realIndex)) !== null && _keyExtractor !== void 0 ? _keyExtractor : "swiper-page-".concat(displayIndex);
|
|
213
|
+
return /* @__PURE__ */React.createElement(LazyPage, {
|
|
214
|
+
key: key,
|
|
215
|
+
shouldMount: shouldMount,
|
|
216
|
+
shouldUnmount: shouldUnmount,
|
|
217
|
+
placeholder: renderPlaceholder === null || renderPlaceholder === void 0 ? void 0 : renderPlaceholder(realIndex)
|
|
218
|
+
}, renderItem(item, realIndex));
|
|
219
|
+
}));
|
|
220
|
+
}
|
|
221
|
+
var styles = StyleSheet.create({
|
|
222
|
+
pager: {
|
|
223
|
+
flex: 1
|
|
224
|
+
}
|
|
225
|
+
});
|
|
226
|
+
var SwiperPagerView = /*#__PURE__*/forwardRef(SwiperPagerViewComponent);
|
|
227
|
+
|
|
228
|
+
export { SwiperPagerView };
|
|
229
|
+
//# sourceMappingURL=SwiperPagerView.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SwiperPagerView.js","sources":["../../../../src/components/Swiper/SwiperPagerView.tsx"],"sourcesContent":["import React, { forwardRef, useCallback, useEffect, useImperativeHandle, useMemo, useRef, useState } from \"react\";\nimport { StyleSheet } from \"react-native\";\nimport PagerView from \"react-native-pager-view\";\nimport type { PagerViewOnPageSelectedEvent, PageScrollStateChangedNativeEvent } from \"react-native-pager-view\";\nimport { LazyPage } from \"./LazyPage\";\nimport type { SwiperProps, SwiperRef } from \"./types\";\nimport { prepareInfiniteData, shouldJumpForInfinite, getRealIndex, getDisplayIndex } from \"./utils\";\n\n/**\n * PagerView-based Swiper implementation\n */\nfunction SwiperPagerViewComponent<T>(props: SwiperProps<T>, ref: React.Ref<SwiperRef>) {\n const {\n data,\n renderItem,\n keyExtractor,\n infinite = false,\n initialPage = 0,\n cloneCount = 2,\n lazyMountWindow = 2,\n removeClippedPages = false,\n unmountThreshold,\n onPageChange,\n onNext,\n onPrev,\n onPageScrollStateChanged,\n style,\n pageMargin,\n offscreenPageLimit,\n scrollEnabled = true,\n overdrag,\n renderPlaceholder,\n } = props;\n\n // Refs\n const pagerRef = useRef<PagerView>(null);\n const currentPageRef = useRef<number>(initialPage);\n const isJumpingRef = useRef<boolean>(false);\n const pendingJumpRef = useRef<number | null>(null);\n const scrollStateRef = useRef<\"idle\" | \"dragging\" | \"settling\">(\"idle\");\n\n // State\n const [currentPage, setCurrentPage] = useState(initialPage);\n const [mountedPages, setMountedPages] = useState<Set<number>>(new Set());\n const [unmountPages, setUnmountPages] = useState<Set<number>>(new Set());\n\n // Prepare data for infinite scrolling\n const {\n displayData,\n offset,\n cloneCount: actualCloneCount,\n } = useMemo(() => {\n return prepareInfiniteData(data, infinite, cloneCount);\n }, [data, infinite, cloneCount]);\n\n // Calculate adjusted initial page for infinite mode\n const adjustedInitialPage = useMemo(() => {\n return infinite ? getDisplayIndex(initialPage, offset) : initialPage;\n }, [infinite, initialPage, offset]);\n\n /**\n * Update which pages should be mounted/unmounted based on current page\n */\n const updateMountedPages = useCallback(\n (centerPage: number) => {\n const newMounted = new Set<number>();\n const newUnmount = new Set<number>();\n\n // Scale mount window with clone count for better fast scrolling\n const effectiveMountWindow = Math.max(lazyMountWindow, Math.min(10, Math.ceil(actualCloneCount / 10)));\n\n // Calculate unmount threshold (default: 3x mount window)\n const effectiveUnmountThreshold = unmountThreshold ?? effectiveMountWindow * 3;\n\n // Mount pages within the window\n for (let i = centerPage - effectiveMountWindow; i <= centerPage + effectiveMountWindow; i++) {\n if (i >= 0 && i < displayData.length) {\n newMounted.add(i);\n }\n }\n\n // Mark pages for unmounting if removeClippedPages is enabled\n if (removeClippedPages) {\n for (let i = 0; i < displayData.length; i++) {\n const distance = Math.abs(i - centerPage);\n if (distance > effectiveUnmountThreshold) {\n newUnmount.add(i);\n }\n }\n }\n\n console.log(\"Mounted pages:\", Array.from(newMounted));\n console.log(\"Unmount pages:\", Array.from(newUnmount));\n\n setMountedPages(newMounted);\n setUnmountPages(newUnmount);\n },\n [lazyMountWindow, displayData.length, actualCloneCount, unmountThreshold, removeClippedPages],\n );\n\n /**\n * Handle page selection from PagerView\n */\n const handlePageSelected = useCallback(\n (event: PagerViewOnPageSelectedEvent) => {\n const newDisplayPage = event.nativeEvent.position;\n\n if (isJumpingRef.current) {\n return;\n }\n\n const realIndex = getRealIndex(newDisplayPage, offset, data.length);\n const prevDisplayPage = currentPageRef.current;\n\n setCurrentPage(realIndex);\n currentPageRef.current = newDisplayPage;\n\n updateMountedPages(newDisplayPage);\n\n onPageChange?.(realIndex);\n\n if (newDisplayPage > prevDisplayPage) {\n onNext?.(realIndex);\n } else if (newDisplayPage < prevDisplayPage) {\n onPrev?.(realIndex);\n }\n\n // Handle infinite scroll jump\n if (infinite && data.length >= 3) {\n const jumpResult = shouldJumpForInfinite(newDisplayPage, data.length, offset, actualCloneCount);\n\n if (jumpResult.shouldJump && jumpResult.jumpTo !== undefined) {\n pendingJumpRef.current = jumpResult.jumpTo;\n }\n }\n },\n [data.length, offset, actualCloneCount, infinite, onPageChange, onNext, onPrev, updateMountedPages],\n );\n\n /**\n * Handle scroll state changes\n */\n const handlePageScrollStateChanged = useCallback(\n (event: PageScrollStateChangedNativeEvent) => {\n const state = event.nativeEvent.pageScrollState;\n scrollStateRef.current = state;\n onPageScrollStateChanged?.(state);\n\n // Execute pending jump when scroll becomes idle\n if (state === \"idle\" && pendingJumpRef.current !== null) {\n const targetPage = pendingJumpRef.current;\n pendingJumpRef.current = null;\n\n isJumpingRef.current = true;\n\n requestAnimationFrame(() => {\n pagerRef.current?.setPageWithoutAnimation(targetPage);\n currentPageRef.current = targetPage;\n\n setTimeout(() => {\n isJumpingRef.current = false;\n }, 50);\n });\n }\n },\n [onPageScrollStateChanged],\n );\n\n /**\n * Initialize mounted pages on mount\n */\n useEffect(() => {\n updateMountedPages(adjustedInitialPage);\n }, [adjustedInitialPage, updateMountedPages]);\n\n /**\n * Expose ref methods for programmatic control\n */\n useImperativeHandle(\n ref,\n () => ({\n goToPage: (index: number, animated = true) => {\n const clampedIndex = Math.max(0, Math.min(index, data.length - 1));\n const displayIndex = infinite ? getDisplayIndex(clampedIndex, offset) : clampedIndex;\n\n if (animated) {\n pagerRef.current?.setPage(displayIndex);\n } else {\n pagerRef.current?.setPageWithoutAnimation(displayIndex);\n }\n },\n\n next: (animated = true) => {\n const nextPage = currentPage + 1;\n\n if (infinite) {\n const displayIndex = getDisplayIndex(nextPage % data.length, offset);\n if (animated) {\n pagerRef.current?.setPage(currentPageRef.current + 1);\n } else {\n pagerRef.current?.setPageWithoutAnimation(currentPageRef.current + 1);\n }\n } else {\n if (nextPage < data.length) {\n if (animated) {\n pagerRef.current?.setPage(nextPage);\n } else {\n pagerRef.current?.setPageWithoutAnimation(nextPage);\n }\n }\n }\n },\n\n prev: (animated = true) => {\n const prevPage = currentPage - 1;\n\n if (infinite) {\n const displayIndex = getDisplayIndex((prevPage + data.length) % data.length, offset);\n if (animated) {\n pagerRef.current?.setPage(currentPageRef.current - 1);\n } else {\n pagerRef.current?.setPageWithoutAnimation(currentPageRef.current - 1);\n }\n } else {\n if (prevPage >= 0) {\n if (animated) {\n pagerRef.current?.setPage(prevPage);\n } else {\n pagerRef.current?.setPageWithoutAnimation(prevPage);\n }\n }\n }\n },\n\n getCurrentPage: () => currentPage,\n }),\n [currentPage, data.length, infinite, offset],\n );\n\n // Handle empty data\n if (data.length === 0) {\n return null;\n }\n\n return (\n <PagerView\n ref={pagerRef}\n style={[styles.pager, style]}\n initialPage={adjustedInitialPage}\n onPageSelected={handlePageSelected}\n onPageScrollStateChanged={handlePageScrollStateChanged}\n pageMargin={pageMargin}\n offscreenPageLimit={offscreenPageLimit}\n scrollEnabled={scrollEnabled}\n overdrag={overdrag}\n >\n {displayData.map((item, displayIndex) => {\n const realIndex = getRealIndex(displayIndex, offset, data.length);\n const shouldMount = mountedPages.has(displayIndex);\n const shouldUnmount = unmountPages.has(displayIndex);\n const key = keyExtractor?.(item, realIndex) ?? `swiper-page-${displayIndex}`;\n\n return (\n <LazyPage\n key={key}\n shouldMount={shouldMount}\n shouldUnmount={shouldUnmount}\n placeholder={renderPlaceholder?.(realIndex)}\n >\n {renderItem(item, realIndex)}\n </LazyPage>\n );\n })}\n </PagerView>\n );\n}\n\nconst styles = StyleSheet.create({\n pager: {\n flex: 1,\n },\n});\n\nexport const SwiperPagerView = forwardRef(SwiperPagerViewComponent) as <T>(\n props: SwiperProps<T> & { ref?: React.Ref<SwiperRef> },\n) => React.ReactElement;\n"],"names":["SwiperPagerViewComponent","props","ref","data","renderItem","keyExtractor","_props$infinite","infinite","_props$initialPage","initialPage","_props$cloneCount","cloneCount","_props$lazyMountWindo","lazyMountWindow","_props$removeClippedP","removeClippedPages","unmountThreshold","onPageChange","onNext","onPrev","onPageScrollStateChanged","style","pageMargin","offscreenPageLimit","_props$scrollEnabled","scrollEnabled","overdrag","renderPlaceholder","pagerRef","useRef","currentPageRef","isJumpingRef","pendingJumpRef","scrollStateRef","_useState","useState","_useState2","_slicedToArray","currentPage","setCurrentPage","_useState3","Set","_useState4","mountedPages","setMountedPages","_useState5","_useState6","unmountPages","setUnmountPages","_useMemo","useMemo","prepareInfiniteData","displayData","offset","actualCloneCount","adjustedInitialPage","getDisplayIndex","updateMountedPages","useCallback","centerPage","newMounted","newUnmount","effectiveMountWindow","Math","max","min","ceil","effectiveUnmountThreshold","i","length","add","distance","abs","console","log","Array","from","handlePageSelected","event","newDisplayPage","nativeEvent","position","current","realIndex","getRealIndex","prevDisplayPage","jumpResult","shouldJumpForInfinite","shouldJump","jumpTo","handlePageScrollStateChanged","state","pageScrollState","targetPage","requestAnimationFrame","_pagerRef$current","setPageWithoutAnimation","setTimeout","useEffect","useImperativeHandle","goToPage","index","animated","arguments","undefined","clampedIndex","displayIndex","_pagerRef$current2","setPage","_pagerRef$current3","next","nextPage","_pagerRef$current4","_pagerRef$current5","_pagerRef$current6","_pagerRef$current7","prev","prevPage","_pagerRef$current8","_pagerRef$current9","_pagerRef$current0","_pagerRef$current1","getCurrentPage","React","createElement","PagerView","styles","pager","onPageSelected","map","item","_keyExtractor","shouldMount","has","shouldUnmount","key","concat","LazyPage","placeholder","StyleSheet","create","flex","SwiperPagerView","forwardRef"],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export { Swiper } from './Swiper.js';
|
|
2
|
+
import '../../_chunks/CgvIDP0E.js';
|
|
3
|
+
import 'react';
|
|
4
|
+
import './SwiperPagerView.js';
|
|
5
|
+
import 'react-native';
|
|
6
|
+
import 'react-native-pager-view';
|
|
7
|
+
import './LazyPage.js';
|
|
8
|
+
import './utils.js';
|
|
9
|
+
import './SwiperFlatList.js';
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
import { b as _toConsumableArray } from '../../_chunks/CgvIDP0E.js';
|
|
2
|
+
|
|
3
|
+
function prepareInfiniteData(data, infinite) {
|
|
4
|
+
var cloneCount = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : 2;
|
|
5
|
+
if (!infinite || data.length < 3) {
|
|
6
|
+
return {
|
|
7
|
+
displayData: data,
|
|
8
|
+
offset: 0,
|
|
9
|
+
cloneCount: 0
|
|
10
|
+
};
|
|
11
|
+
}
|
|
12
|
+
var actualCloneCount = cloneCount;
|
|
13
|
+
var firstClones = data.slice(-actualCloneCount);
|
|
14
|
+
var lastClones = data.slice(0, actualCloneCount);
|
|
15
|
+
var leftClones = [];
|
|
16
|
+
var rightClones = [];
|
|
17
|
+
if (actualCloneCount > data.length) {
|
|
18
|
+
var repeatCount = Math.ceil(actualCloneCount / data.length);
|
|
19
|
+
for (var i = 0; i < repeatCount; i++) {
|
|
20
|
+
var _leftClones, _rightClones;
|
|
21
|
+
(_leftClones = leftClones).push.apply(_leftClones, _toConsumableArray(data));
|
|
22
|
+
(_rightClones = rightClones).push.apply(_rightClones, _toConsumableArray(data));
|
|
23
|
+
}
|
|
24
|
+
leftClones = leftClones.slice(-actualCloneCount);
|
|
25
|
+
rightClones = rightClones.slice(0, actualCloneCount);
|
|
26
|
+
} else {
|
|
27
|
+
leftClones = firstClones;
|
|
28
|
+
rightClones = lastClones;
|
|
29
|
+
}
|
|
30
|
+
return {
|
|
31
|
+
displayData: [].concat(_toConsumableArray(leftClones), _toConsumableArray(data), _toConsumableArray(rightClones)),
|
|
32
|
+
offset: actualCloneCount,
|
|
33
|
+
// Real data starts at this index
|
|
34
|
+
cloneCount: actualCloneCount
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
function shouldJumpForInfinite(newPage, dataLength, offset, cloneCount) {
|
|
38
|
+
var threshold = Math.min(2, Math.max(1, Math.floor(cloneCount / 10)));
|
|
39
|
+
if (newPage < threshold) {
|
|
40
|
+
var dataIndex = cloneCount > dataLength ? newPage % dataLength : dataLength - cloneCount + newPage;
|
|
41
|
+
return {
|
|
42
|
+
shouldJump: true,
|
|
43
|
+
jumpTo: offset + dataIndex
|
|
44
|
+
};
|
|
45
|
+
}
|
|
46
|
+
var totalLength = offset + dataLength + cloneCount;
|
|
47
|
+
if (newPage >= totalLength - threshold) {
|
|
48
|
+
var offsetInCycle = (newPage - offset - dataLength) % dataLength;
|
|
49
|
+
return {
|
|
50
|
+
shouldJump: true,
|
|
51
|
+
jumpTo: offset + offsetInCycle
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
return {
|
|
55
|
+
shouldJump: false
|
|
56
|
+
};
|
|
57
|
+
}
|
|
58
|
+
function getRealIndex(displayIndex, offset, dataLength) {
|
|
59
|
+
if (dataLength === 0) return 0;
|
|
60
|
+
var adjusted = displayIndex - offset;
|
|
61
|
+
return (adjusted % dataLength + dataLength) % dataLength;
|
|
62
|
+
}
|
|
63
|
+
function getDisplayIndex(realIndex, offset) {
|
|
64
|
+
return realIndex + offset;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
export { getDisplayIndex, getRealIndex, prepareInfiniteData, shouldJumpForInfinite };
|
|
68
|
+
//# sourceMappingURL=utils.js.map
|