@one-am/react-native-simple-image-slider 0.16.1 → 1.0.0-beta.3
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/README.md +616 -19
- package/lib/commonjs/constants/layout.js +11 -0
- package/lib/commonjs/constants/layout.js.map +1 -0
- package/lib/commonjs/context/slider-context.js +47 -0
- package/lib/commonjs/context/slider-context.js.map +1 -0
- package/lib/commonjs/{utils/renderProp.js → context/slider-full-screen-context.js} +15 -8
- package/lib/commonjs/context/slider-full-screen-context.js.map +1 -0
- package/lib/commonjs/hooks/index.js +13 -0
- package/lib/commonjs/hooks/index.js.map +1 -0
- package/lib/commonjs/hooks/slider-state/index.js +40 -0
- package/lib/commonjs/hooks/slider-state/index.js.map +1 -0
- package/lib/commonjs/hooks/slider-state/use-slider-callbacks.js +63 -0
- package/lib/commonjs/hooks/slider-state/use-slider-callbacks.js.map +1 -0
- package/lib/commonjs/hooks/slider-state/use-slider-full-screen.js +24 -0
- package/lib/commonjs/hooks/slider-state/use-slider-full-screen.js.map +1 -0
- package/lib/commonjs/hooks/slider-state/use-slider-navigation.js +29 -0
- package/lib/commonjs/hooks/slider-state/use-slider-navigation.js.map +1 -0
- package/lib/commonjs/hooks/use-image-aspect-ratio.js +68 -0
- package/lib/commonjs/hooks/use-image-aspect-ratio.js.map +1 -0
- package/lib/commonjs/hooks/use-registered-callback.js +29 -0
- package/lib/commonjs/hooks/use-registered-callback.js.map +1 -0
- package/lib/commonjs/hooks/use-slider-state.js +72 -0
- package/lib/commonjs/hooks/use-slider-state.js.map +1 -0
- package/lib/commonjs/icons/{IconX.js → icon-x.js} +20 -26
- package/lib/commonjs/icons/icon-x.js.map +1 -0
- package/lib/commonjs/index.js +18 -47
- package/lib/commonjs/index.js.map +1 -1
- package/lib/commonjs/internal/pinch-to-zoom.js +207 -0
- package/lib/commonjs/internal/pinch-to-zoom.js.map +1 -0
- package/lib/commonjs/primitives/index.js +62 -0
- package/lib/commonjs/primitives/index.js.map +1 -0
- package/lib/commonjs/primitives/slider-close-button.js +45 -0
- package/lib/commonjs/primitives/slider-close-button.js.map +1 -0
- package/lib/commonjs/primitives/slider-content.js +170 -0
- package/lib/commonjs/primitives/slider-content.js.map +1 -0
- package/lib/commonjs/{AbsoluteComponentContainer.js → primitives/slider-corner.js} +19 -19
- package/lib/commonjs/primitives/slider-corner.js.map +1 -0
- package/lib/commonjs/{PageCounter.js → primitives/slider-description.js} +22 -31
- package/lib/commonjs/primitives/slider-description.js.map +1 -0
- package/lib/commonjs/primitives/slider-empty.js +32 -0
- package/lib/commonjs/primitives/slider-empty.js.map +1 -0
- package/lib/commonjs/primitives/slider-full-screen.js +114 -0
- package/lib/commonjs/primitives/slider-full-screen.js.map +1 -0
- package/lib/commonjs/primitives/slider-page-counter.js +63 -0
- package/lib/commonjs/primitives/slider-page-counter.js.map +1 -0
- package/lib/commonjs/primitives/slider.js +31 -0
- package/lib/commonjs/primitives/slider.js.map +1 -0
- package/lib/{module/@types → commonjs/types}/common.js.map +1 -1
- package/lib/commonjs/{@types/slider.js → types/context.js} +1 -1
- package/lib/commonjs/{@types/slider.js.map → types/context.js.map} +1 -1
- package/lib/{module/@types → commonjs/types}/icons.js.map +1 -1
- package/lib/commonjs/types/index.js +2 -0
- package/lib/commonjs/types/index.js.map +1 -0
- package/lib/commonjs/types/pinch-to-zoom.js.map +1 -0
- package/lib/commonjs/types/slider-state.js +6 -0
- package/lib/commonjs/types/slider-state.js.map +1 -0
- package/lib/commonjs/utils/capitalize.js +10 -0
- package/lib/commonjs/utils/capitalize.js.map +1 -0
- package/lib/commonjs/utils/clamp.js.map +1 -1
- package/lib/module/constants/layout.js +7 -0
- package/lib/module/constants/layout.js.map +1 -0
- package/lib/module/context/slider-context.js +40 -0
- package/lib/module/context/slider-context.js.map +1 -0
- package/lib/module/context/slider-full-screen-context.js +19 -0
- package/lib/module/context/slider-full-screen-context.js.map +1 -0
- package/lib/module/hooks/index.js +4 -0
- package/lib/module/hooks/index.js.map +1 -0
- package/lib/module/hooks/slider-state/index.js +7 -0
- package/lib/module/hooks/slider-state/index.js.map +1 -0
- package/lib/module/hooks/slider-state/use-slider-callbacks.js +60 -0
- package/lib/module/hooks/slider-state/use-slider-callbacks.js.map +1 -0
- package/lib/module/hooks/slider-state/use-slider-full-screen.js +21 -0
- package/lib/module/hooks/slider-state/use-slider-full-screen.js.map +1 -0
- package/lib/module/hooks/slider-state/use-slider-navigation.js +25 -0
- package/lib/module/hooks/slider-state/use-slider-navigation.js.map +1 -0
- package/lib/module/hooks/use-image-aspect-ratio.js +64 -0
- package/lib/module/hooks/use-image-aspect-ratio.js.map +1 -0
- package/lib/module/hooks/use-registered-callback.js +26 -0
- package/lib/module/hooks/use-registered-callback.js.map +1 -0
- package/lib/module/hooks/use-slider-state.js +68 -0
- package/lib/module/hooks/use-slider-state.js.map +1 -0
- package/lib/module/icons/icon-x.js +32 -0
- package/lib/module/icons/icon-x.js.map +1 -0
- package/lib/module/index.js +2 -7
- package/lib/module/index.js.map +1 -1
- package/lib/module/internal/pinch-to-zoom.js +202 -0
- package/lib/module/internal/pinch-to-zoom.js.map +1 -0
- package/lib/module/primitives/index.js +11 -0
- package/lib/module/primitives/index.js.map +1 -0
- package/lib/module/primitives/slider-close-button.js +40 -0
- package/lib/module/primitives/slider-close-button.js.map +1 -0
- package/lib/module/primitives/slider-content.js +165 -0
- package/lib/module/primitives/slider-content.js.map +1 -0
- package/lib/module/{AbsoluteComponentContainer.js → primitives/slider-corner.js} +19 -18
- package/lib/module/primitives/slider-corner.js.map +1 -0
- package/lib/module/primitives/slider-description.js +31 -0
- package/lib/module/primitives/slider-description.js.map +1 -0
- package/lib/module/primitives/slider-empty.js +28 -0
- package/lib/module/primitives/slider-empty.js.map +1 -0
- package/lib/module/primitives/slider-full-screen.js +109 -0
- package/lib/module/primitives/slider-full-screen.js.map +1 -0
- package/lib/module/primitives/slider-page-counter.js +59 -0
- package/lib/module/primitives/slider-page-counter.js.map +1 -0
- package/lib/module/primitives/slider.js +27 -0
- package/lib/module/primitives/slider.js.map +1 -0
- package/lib/{commonjs/@types → module/types}/common.js.map +1 -1
- package/lib/module/types/context.js +4 -0
- package/lib/module/types/context.js.map +1 -0
- package/lib/{commonjs/@types → module/types}/icons.js.map +1 -1
- package/lib/module/types/index.js +2 -0
- package/lib/module/types/index.js.map +1 -0
- package/lib/module/types/pinch-to-zoom.js.map +1 -0
- package/lib/module/types/slider-state.js +4 -0
- package/lib/module/types/slider-state.js.map +1 -0
- package/lib/module/utils/capitalize.js +7 -0
- package/lib/module/utils/capitalize.js.map +1 -0
- package/lib/module/utils/clamp.js +2 -1
- package/lib/module/utils/clamp.js.map +1 -1
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/src/__tests__/index.test.d.ts +1 -0
- package/lib/typescript/commonjs/src/__tests__/index.test.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/constants/layout.d.ts +5 -0
- package/lib/typescript/commonjs/src/constants/layout.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/context/slider-context.d.ts +8 -0
- package/lib/typescript/commonjs/src/context/slider-context.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/context/slider-full-screen-context.d.ts +6 -0
- package/lib/typescript/commonjs/src/context/slider-full-screen-context.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/index.d.ts +2 -0
- package/lib/typescript/commonjs/src/hooks/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/slider-state/index.d.ts +5 -0
- package/lib/typescript/commonjs/src/hooks/slider-state/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/slider-state/use-slider-callbacks.d.ts +6 -0
- package/lib/typescript/commonjs/src/hooks/slider-state/use-slider-callbacks.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/slider-state/use-slider-full-screen.d.ts +8 -0
- package/lib/typescript/commonjs/src/hooks/slider-state/use-slider-full-screen.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/slider-state/use-slider-navigation.d.ts +5 -0
- package/lib/typescript/commonjs/src/hooks/slider-state/use-slider-navigation.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/use-image-aspect-ratio.d.ts +6 -0
- package/lib/typescript/commonjs/src/hooks/use-image-aspect-ratio.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/use-registered-callback.d.ts +8 -0
- package/lib/typescript/commonjs/src/hooks/use-registered-callback.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/hooks/use-slider-state.d.ts +4 -0
- package/lib/typescript/commonjs/src/hooks/use-slider-state.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/icons/icon-x.d.ts +6 -0
- package/lib/typescript/commonjs/src/icons/icon-x.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +4 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
- package/lib/typescript/{src/PinchToZoom.d.ts → commonjs/src/internal/pinch-to-zoom.d.ts} +9 -6
- package/lib/typescript/commonjs/src/internal/pinch-to-zoom.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/primitives/index.d.ts +17 -0
- package/lib/typescript/commonjs/src/primitives/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/primitives/slider-close-button.d.ts +12 -0
- package/lib/typescript/commonjs/src/primitives/slider-close-button.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/primitives/slider-content.d.ts +15 -0
- package/lib/typescript/commonjs/src/primitives/slider-content.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/primitives/slider-corner.d.ts +12 -0
- package/lib/typescript/commonjs/src/primitives/slider-corner.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/primitives/slider-description.d.ts +10 -0
- package/lib/typescript/commonjs/src/primitives/slider-description.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/primitives/slider-empty.d.ts +10 -0
- package/lib/typescript/commonjs/src/primitives/slider-empty.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/primitives/slider-full-screen.d.ts +10 -0
- package/lib/typescript/commonjs/src/primitives/slider-full-screen.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/primitives/slider-page-counter.d.ts +14 -0
- package/lib/typescript/commonjs/src/primitives/slider-page-counter.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/primitives/slider.d.ts +30 -0
- package/lib/typescript/commonjs/src/primitives/slider.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/common.d.ts +15 -0
- package/lib/typescript/commonjs/src/types/common.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/context.d.ts +25 -0
- package/lib/typescript/commonjs/src/types/context.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/icons.d.ts +8 -0
- package/lib/typescript/commonjs/src/types/icons.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/index.d.ts +6 -0
- package/lib/typescript/commonjs/src/types/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/pinch-to-zoom.d.ts +9 -0
- package/lib/typescript/commonjs/src/types/pinch-to-zoom.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types/slider-state.d.ts +39 -0
- package/lib/typescript/commonjs/src/types/slider-state.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/utils/capitalize.d.ts +3 -0
- package/lib/typescript/commonjs/src/utils/capitalize.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/utils/clamp.d.ts +3 -0
- package/lib/typescript/commonjs/src/utils/clamp.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/src/__tests__/index.test.d.ts +1 -0
- package/lib/typescript/module/src/__tests__/index.test.d.ts.map +1 -0
- package/lib/typescript/module/src/constants/layout.d.ts +5 -0
- package/lib/typescript/module/src/constants/layout.d.ts.map +1 -0
- package/lib/typescript/module/src/context/slider-context.d.ts +8 -0
- package/lib/typescript/module/src/context/slider-context.d.ts.map +1 -0
- package/lib/typescript/module/src/context/slider-full-screen-context.d.ts +6 -0
- package/lib/typescript/module/src/context/slider-full-screen-context.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/index.d.ts +2 -0
- package/lib/typescript/module/src/hooks/index.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/slider-state/index.d.ts +5 -0
- package/lib/typescript/module/src/hooks/slider-state/index.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/slider-state/use-slider-callbacks.d.ts +6 -0
- package/lib/typescript/module/src/hooks/slider-state/use-slider-callbacks.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/slider-state/use-slider-full-screen.d.ts +8 -0
- package/lib/typescript/module/src/hooks/slider-state/use-slider-full-screen.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/slider-state/use-slider-navigation.d.ts +5 -0
- package/lib/typescript/module/src/hooks/slider-state/use-slider-navigation.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/use-image-aspect-ratio.d.ts +6 -0
- package/lib/typescript/module/src/hooks/use-image-aspect-ratio.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/use-registered-callback.d.ts +8 -0
- package/lib/typescript/module/src/hooks/use-registered-callback.d.ts.map +1 -0
- package/lib/typescript/module/src/hooks/use-slider-state.d.ts +4 -0
- package/lib/typescript/module/src/hooks/use-slider-state.d.ts.map +1 -0
- package/lib/typescript/module/src/icons/icon-x.d.ts +6 -0
- package/lib/typescript/module/src/icons/icon-x.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +4 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -0
- package/lib/typescript/module/src/internal/pinch-to-zoom.d.ts +51 -0
- package/lib/typescript/module/src/internal/pinch-to-zoom.d.ts.map +1 -0
- package/lib/typescript/module/src/primitives/index.d.ts +17 -0
- package/lib/typescript/module/src/primitives/index.d.ts.map +1 -0
- package/lib/typescript/module/src/primitives/slider-close-button.d.ts +12 -0
- package/lib/typescript/module/src/primitives/slider-close-button.d.ts.map +1 -0
- package/lib/typescript/module/src/primitives/slider-content.d.ts +15 -0
- package/lib/typescript/module/src/primitives/slider-content.d.ts.map +1 -0
- package/lib/typescript/module/src/primitives/slider-corner.d.ts +12 -0
- package/lib/typescript/module/src/primitives/slider-corner.d.ts.map +1 -0
- package/lib/typescript/module/src/primitives/slider-description.d.ts +10 -0
- package/lib/typescript/module/src/primitives/slider-description.d.ts.map +1 -0
- package/lib/typescript/module/src/primitives/slider-empty.d.ts +10 -0
- package/lib/typescript/module/src/primitives/slider-empty.d.ts.map +1 -0
- package/lib/typescript/module/src/primitives/slider-full-screen.d.ts +10 -0
- package/lib/typescript/module/src/primitives/slider-full-screen.d.ts.map +1 -0
- package/lib/typescript/module/src/primitives/slider-page-counter.d.ts +14 -0
- package/lib/typescript/module/src/primitives/slider-page-counter.d.ts.map +1 -0
- package/lib/typescript/module/src/primitives/slider.d.ts +30 -0
- package/lib/typescript/module/src/primitives/slider.d.ts.map +1 -0
- package/lib/typescript/module/src/types/common.d.ts +15 -0
- package/lib/typescript/module/src/types/common.d.ts.map +1 -0
- package/lib/typescript/module/src/types/context.d.ts +25 -0
- package/lib/typescript/module/src/types/context.d.ts.map +1 -0
- package/lib/typescript/module/src/types/icons.d.ts +8 -0
- package/lib/typescript/module/src/types/icons.d.ts.map +1 -0
- package/lib/typescript/module/src/types/index.d.ts +6 -0
- package/lib/typescript/module/src/types/index.d.ts.map +1 -0
- package/lib/typescript/module/src/types/pinch-to-zoom.d.ts +9 -0
- package/lib/typescript/module/src/types/pinch-to-zoom.d.ts.map +1 -0
- package/lib/typescript/module/src/types/slider-state.d.ts +39 -0
- package/lib/typescript/module/src/types/slider-state.d.ts.map +1 -0
- package/lib/typescript/module/src/utils/capitalize.d.ts +3 -0
- package/lib/typescript/module/src/utils/capitalize.d.ts.map +1 -0
- package/lib/typescript/module/src/utils/clamp.d.ts +3 -0
- package/lib/typescript/module/src/utils/clamp.d.ts.map +1 -0
- package/package.json +79 -91
- package/lib/commonjs/@types/pinch-to-zoom.js.map +0 -1
- package/lib/commonjs/AbsoluteComponentContainer.js.map +0 -1
- package/lib/commonjs/BaseSimpleImageSlider.js +0 -209
- package/lib/commonjs/BaseSimpleImageSlider.js.map +0 -1
- package/lib/commonjs/FullScreenImageSlider.js +0 -132
- package/lib/commonjs/FullScreenImageSlider.js.map +0 -1
- package/lib/commonjs/PageCounter.js.map +0 -1
- package/lib/commonjs/PinchToZoom.js +0 -174
- package/lib/commonjs/PinchToZoom.js.map +0 -1
- package/lib/commonjs/SimpleImageSlider.js +0 -79
- package/lib/commonjs/SimpleImageSlider.js.map +0 -1
- package/lib/commonjs/SimpleImageSliderThemeProvider.js +0 -40
- package/lib/commonjs/SimpleImageSliderThemeProvider.js.map +0 -1
- package/lib/commonjs/icons/IconX.js.map +0 -1
- package/lib/commonjs/utils/renderProp.js.map +0 -1
- package/lib/module/@types/pinch-to-zoom.js.map +0 -1
- package/lib/module/@types/slider.js +0 -4
- package/lib/module/@types/slider.js.map +0 -1
- package/lib/module/AbsoluteComponentContainer.js.map +0 -1
- package/lib/module/BaseSimpleImageSlider.js +0 -202
- package/lib/module/BaseSimpleImageSlider.js.map +0 -1
- package/lib/module/FullScreenImageSlider.js +0 -125
- package/lib/module/FullScreenImageSlider.js.map +0 -1
- package/lib/module/PageCounter.js +0 -39
- package/lib/module/PageCounter.js.map +0 -1
- package/lib/module/PinchToZoom.js +0 -168
- package/lib/module/PinchToZoom.js.map +0 -1
- package/lib/module/SimpleImageSlider.js +0 -72
- package/lib/module/SimpleImageSlider.js.map +0 -1
- package/lib/module/SimpleImageSliderThemeProvider.js +0 -33
- package/lib/module/SimpleImageSliderThemeProvider.js.map +0 -1
- package/lib/module/icons/IconX.js +0 -37
- package/lib/module/icons/IconX.js.map +0 -1
- package/lib/module/utils/renderProp.js +0 -12
- package/lib/module/utils/renderProp.js.map +0 -1
- package/lib/typescript/src/@types/common.d.ts +0 -1
- package/lib/typescript/src/@types/common.d.ts.map +0 -1
- package/lib/typescript/src/@types/icons.d.ts +0 -6
- package/lib/typescript/src/@types/icons.d.ts.map +0 -1
- package/lib/typescript/src/@types/pinch-to-zoom.d.ts +0 -8
- package/lib/typescript/src/@types/pinch-to-zoom.d.ts.map +0 -1
- package/lib/typescript/src/@types/slider.d.ts +0 -5
- package/lib/typescript/src/@types/slider.d.ts.map +0 -1
- package/lib/typescript/src/AbsoluteComponentContainer.d.ts +0 -7
- package/lib/typescript/src/AbsoluteComponentContainer.d.ts.map +0 -1
- package/lib/typescript/src/BaseSimpleImageSlider.d.ts +0 -126
- package/lib/typescript/src/BaseSimpleImageSlider.d.ts.map +0 -1
- package/lib/typescript/src/FullScreenImageSlider.d.ts +0 -58
- package/lib/typescript/src/FullScreenImageSlider.d.ts.map +0 -1
- package/lib/typescript/src/PageCounter.d.ts +0 -22
- package/lib/typescript/src/PageCounter.d.ts.map +0 -1
- package/lib/typescript/src/PinchToZoom.d.ts.map +0 -1
- package/lib/typescript/src/SimpleImageSlider.d.ts +0 -52
- package/lib/typescript/src/SimpleImageSlider.d.ts.map +0 -1
- package/lib/typescript/src/SimpleImageSliderThemeProvider.d.ts +0 -17
- package/lib/typescript/src/SimpleImageSliderThemeProvider.d.ts.map +0 -1
- package/lib/typescript/src/icons/IconX.d.ts +0 -5
- package/lib/typescript/src/icons/IconX.d.ts.map +0 -1
- package/lib/typescript/src/index.d.ts +0 -9
- package/lib/typescript/src/index.d.ts.map +0 -1
- package/lib/typescript/src/utils/clamp.d.ts +0 -2
- package/lib/typescript/src/utils/clamp.d.ts.map +0 -1
- package/lib/typescript/src/utils/renderProp.d.ts +0 -4
- package/lib/typescript/src/utils/renderProp.d.ts.map +0 -1
- package/src/@types/common.ts +0 -0
- package/src/@types/icons.ts +0 -6
- package/src/@types/pinch-to-zoom.ts +0 -7
- package/src/@types/slider.ts +0 -5
- package/src/AbsoluteComponentContainer.tsx +0 -30
- package/src/BaseSimpleImageSlider.tsx +0 -384
- package/src/FullScreenImageSlider.tsx +0 -203
- package/src/PageCounter.tsx +0 -67
- package/src/PinchToZoom.tsx +0 -345
- package/src/SimpleImageSlider.tsx +0 -110
- package/src/SimpleImageSliderThemeProvider.tsx +0 -49
- package/src/icons/IconX.tsx +0 -24
- package/src/index.tsx +0 -29
- package/src/utils/clamp.ts +0 -4
- package/src/utils/renderProp.tsx +0 -22
- /package/lib/commonjs/{@types → types}/common.js +0 -0
- /package/lib/commonjs/{@types → types}/icons.js +0 -0
- /package/lib/commonjs/{@types → types}/pinch-to-zoom.js +0 -0
- /package/lib/module/{@types → types}/common.js +0 -0
- /package/lib/module/{@types → types}/icons.js +0 -0
- /package/lib/module/{@types → types}/pinch-to-zoom.js +0 -0
|
@@ -0,0 +1,165 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useCallback, useEffect, useMemo, useRef, useState } from 'react';
|
|
4
|
+
import { Pressable, StyleSheet, useWindowDimensions } from 'react-native';
|
|
5
|
+
import { FlashList } from '@shopify/flash-list';
|
|
6
|
+
import { ScrollView } from 'react-native-gesture-handler';
|
|
7
|
+
import { Image } from 'expo-image';
|
|
8
|
+
import { useSliderContext } from "../context/slider-context.js";
|
|
9
|
+
import { PinchToZoom } from "../internal/pinch-to-zoom.js";
|
|
10
|
+
import { useIsFullScreenSlider } from "../context/slider-full-screen-context.js";
|
|
11
|
+
import { Z_INDEX_OVERLAY, VIEWABILITY_THRESHOLD } from "../constants/layout.js";
|
|
12
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
13
|
+
function SliderContent({
|
|
14
|
+
enablePinchToZoom = false,
|
|
15
|
+
imageStyle,
|
|
16
|
+
maxItems,
|
|
17
|
+
style,
|
|
18
|
+
imageAccessibilityLabel,
|
|
19
|
+
pressableAccessibilityHint = 'Double tap to open full screen'
|
|
20
|
+
}) {
|
|
21
|
+
const {
|
|
22
|
+
data,
|
|
23
|
+
totalItems,
|
|
24
|
+
currentIndex,
|
|
25
|
+
setCurrentIndex,
|
|
26
|
+
imageAspectRatio,
|
|
27
|
+
registerScrollFn,
|
|
28
|
+
onItemPress,
|
|
29
|
+
hasFullScreen,
|
|
30
|
+
openFullScreen,
|
|
31
|
+
onPinchStatusChange,
|
|
32
|
+
onPinchDismiss
|
|
33
|
+
} = useSliderContext();
|
|
34
|
+
const isFullScreenSlider = useIsFullScreenSlider();
|
|
35
|
+
const windowDimensions = useWindowDimensions();
|
|
36
|
+
const [scrollEnabled, setScrollEnabled] = useState(true);
|
|
37
|
+
const [itemWidth, setItemWidth] = useState(isFullScreenSlider ? windowDimensions.width : 0);
|
|
38
|
+
const localListRef = useRef(null);
|
|
39
|
+
const slicedData = useMemo(() => maxItems !== undefined ? data?.slice(0, maxItems) ?? [] : data ?? [], [data, maxItems]);
|
|
40
|
+
const styles = useMemo(() => StyleSheet.create({
|
|
41
|
+
image: {
|
|
42
|
+
width: isFullScreenSlider ? windowDimensions.width : itemWidth,
|
|
43
|
+
height: '100%'
|
|
44
|
+
},
|
|
45
|
+
pinchToZoom: {
|
|
46
|
+
zIndex: Z_INDEX_OVERLAY
|
|
47
|
+
},
|
|
48
|
+
list: {
|
|
49
|
+
width: '100%',
|
|
50
|
+
aspectRatio: imageAspectRatio
|
|
51
|
+
}
|
|
52
|
+
}), [imageAspectRatio, isFullScreenSlider, itemWidth, windowDimensions.width]);
|
|
53
|
+
const handleViewableItemsChanged = useCallback(({
|
|
54
|
+
viewableItems
|
|
55
|
+
}) => {
|
|
56
|
+
const newIndex = viewableItems[0]?.index;
|
|
57
|
+
if (newIndex !== undefined && newIndex !== null) {
|
|
58
|
+
setCurrentIndex(newIndex);
|
|
59
|
+
}
|
|
60
|
+
}, [setCurrentIndex]);
|
|
61
|
+
const handleItemPress = useCallback((item, index) => {
|
|
62
|
+
localListRef.current?.recordInteraction();
|
|
63
|
+
onItemPress?.(item, index);
|
|
64
|
+
if (hasFullScreen) {
|
|
65
|
+
openFullScreen();
|
|
66
|
+
}
|
|
67
|
+
}, [onItemPress, hasFullScreen, openFullScreen]);
|
|
68
|
+
const renderItem = useCallback(({
|
|
69
|
+
item,
|
|
70
|
+
index
|
|
71
|
+
}) => {
|
|
72
|
+
const imageNumber = index + 1;
|
|
73
|
+
const label = typeof imageAccessibilityLabel === 'function' ? imageAccessibilityLabel(imageNumber, totalItems) : imageAccessibilityLabel ?? `Image ${imageNumber} of ${totalItems}`;
|
|
74
|
+
const content = /*#__PURE__*/_jsx(Image, {
|
|
75
|
+
placeholder: item.placeholder,
|
|
76
|
+
placeholderContentFit: 'cover',
|
|
77
|
+
recyclingKey: item.key,
|
|
78
|
+
source: item.source,
|
|
79
|
+
contentFit: 'cover',
|
|
80
|
+
contentPosition: 'center',
|
|
81
|
+
style: [styles.image, imageStyle],
|
|
82
|
+
accessible: true,
|
|
83
|
+
accessibilityRole: "image",
|
|
84
|
+
accessibilityLabel: label
|
|
85
|
+
});
|
|
86
|
+
if (isFullScreenSlider) {
|
|
87
|
+
return content;
|
|
88
|
+
}
|
|
89
|
+
const handlePress = () => handleItemPress(item, index);
|
|
90
|
+
return /*#__PURE__*/_jsx(Pressable
|
|
91
|
+
// eslint-disable-next-line react/jsx-no-bind
|
|
92
|
+
, {
|
|
93
|
+
onPress: handlePress,
|
|
94
|
+
accessibilityRole: "imagebutton",
|
|
95
|
+
accessibilityLabel: label,
|
|
96
|
+
accessibilityHint: pressableAccessibilityHint,
|
|
97
|
+
children: content
|
|
98
|
+
});
|
|
99
|
+
}, [handleItemPress, imageStyle, isFullScreenSlider, styles.image, totalItems, imageAccessibilityLabel, pressableAccessibilityHint]);
|
|
100
|
+
const keyExtractor = useCallback(item => item.key, []);
|
|
101
|
+
const handleScaleChange = useCallback(() => {
|
|
102
|
+
setScrollEnabled(false);
|
|
103
|
+
}, []);
|
|
104
|
+
const handleScaleReset = useCallback(() => {
|
|
105
|
+
setScrollEnabled(true);
|
|
106
|
+
}, []);
|
|
107
|
+
const measureWindowSize = useCallback(() => {
|
|
108
|
+
if (!isFullScreenSlider) {
|
|
109
|
+
const windowSize = localListRef.current?.getWindowSize();
|
|
110
|
+
setItemWidth(windowSize?.width ?? 0);
|
|
111
|
+
}
|
|
112
|
+
}, [isFullScreenSlider]);
|
|
113
|
+
const renderScrollComponent = useCallback(props => /*#__PURE__*/_jsx(ScrollView, {
|
|
114
|
+
...props
|
|
115
|
+
}), []);
|
|
116
|
+
useEffect(() => {
|
|
117
|
+
if (isFullScreenSlider) return;
|
|
118
|
+
return registerScrollFn((index, animated = true) => {
|
|
119
|
+
localListRef.current?.scrollToIndex({
|
|
120
|
+
index,
|
|
121
|
+
animated
|
|
122
|
+
});
|
|
123
|
+
});
|
|
124
|
+
}, [registerScrollFn, isFullScreenSlider]);
|
|
125
|
+
if (totalItems === 0) {
|
|
126
|
+
return null;
|
|
127
|
+
}
|
|
128
|
+
const list = /*#__PURE__*/_jsx(FlashList, {
|
|
129
|
+
renderScrollComponent: renderScrollComponent,
|
|
130
|
+
scrollEnabled: scrollEnabled,
|
|
131
|
+
disableScrollViewPanResponder: enablePinchToZoom ? !scrollEnabled : false,
|
|
132
|
+
ref: localListRef,
|
|
133
|
+
initialScrollIndex: currentIndex,
|
|
134
|
+
onViewableItemsChanged: handleViewableItemsChanged,
|
|
135
|
+
viewabilityConfig: {
|
|
136
|
+
itemVisiblePercentThreshold: VIEWABILITY_THRESHOLD
|
|
137
|
+
},
|
|
138
|
+
onCommitLayoutEffect: measureWindowSize,
|
|
139
|
+
pagingEnabled: true,
|
|
140
|
+
decelerationRate: 'fast',
|
|
141
|
+
showsHorizontalScrollIndicator: false,
|
|
142
|
+
showsVerticalScrollIndicator: false,
|
|
143
|
+
horizontal: true,
|
|
144
|
+
keyExtractor: keyExtractor,
|
|
145
|
+
renderItem: renderItem,
|
|
146
|
+
data: slicedData,
|
|
147
|
+
contentContainerStyle: style,
|
|
148
|
+
style: styles.list
|
|
149
|
+
});
|
|
150
|
+
if (enablePinchToZoom) {
|
|
151
|
+
return /*#__PURE__*/_jsx(PinchToZoom, {
|
|
152
|
+
style: styles.pinchToZoom,
|
|
153
|
+
onScaleChange: handleScaleChange,
|
|
154
|
+
onScaleReset: handleScaleReset,
|
|
155
|
+
onStatusChange: onPinchStatusChange,
|
|
156
|
+
onDismiss: onPinchDismiss,
|
|
157
|
+
maximumZoomScale: 5,
|
|
158
|
+
minimumZoomScale: 1,
|
|
159
|
+
children: list
|
|
160
|
+
});
|
|
161
|
+
}
|
|
162
|
+
return list;
|
|
163
|
+
}
|
|
164
|
+
export { SliderContent };
|
|
165
|
+
//# sourceMappingURL=slider-content.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","useRef","useState","Pressable","StyleSheet","useWindowDimensions","FlashList","ScrollView","Image","useSliderContext","PinchToZoom","useIsFullScreenSlider","Z_INDEX_OVERLAY","VIEWABILITY_THRESHOLD","jsx","_jsx","SliderContent","enablePinchToZoom","imageStyle","maxItems","style","imageAccessibilityLabel","pressableAccessibilityHint","data","totalItems","currentIndex","setCurrentIndex","imageAspectRatio","registerScrollFn","onItemPress","hasFullScreen","openFullScreen","onPinchStatusChange","onPinchDismiss","isFullScreenSlider","windowDimensions","scrollEnabled","setScrollEnabled","itemWidth","setItemWidth","width","localListRef","slicedData","undefined","slice","styles","create","image","height","pinchToZoom","zIndex","list","aspectRatio","handleViewableItemsChanged","viewableItems","newIndex","index","handleItemPress","item","current","recordInteraction","renderItem","imageNumber","label","content","placeholder","placeholderContentFit","recyclingKey","key","source","contentFit","contentPosition","accessible","accessibilityRole","accessibilityLabel","handlePress","onPress","accessibilityHint","children","keyExtractor","handleScaleChange","handleScaleReset","measureWindowSize","windowSize","getWindowSize","renderScrollComponent","props","animated","scrollToIndex","disableScrollViewPanResponder","ref","initialScrollIndex","onViewableItemsChanged","viewabilityConfig","itemVisiblePercentThreshold","onCommitLayoutEffect","pagingEnabled","decelerationRate","showsHorizontalScrollIndicator","showsVerticalScrollIndicator","horizontal","contentContainerStyle","onScaleChange","onScaleReset","onStatusChange","onDismiss","maximumZoomScale","minimumZoomScale"],"sourceRoot":"../../../src","sources":["primitives/slider-content.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -2,27 +2,28 @@
|
|
|
2
2
|
|
|
3
3
|
import React, { useMemo } from 'react';
|
|
4
4
|
import { StyleSheet, View } from 'react-native';
|
|
5
|
+
import { Z_INDEX_OVERLAY } from "../constants/layout.js";
|
|
5
6
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
6
|
-
|
|
7
|
+
const SliderCorner = /*#__PURE__*/React.memo(function SliderCorner({
|
|
7
8
|
position,
|
|
8
|
-
children
|
|
9
|
+
children,
|
|
10
|
+
style,
|
|
11
|
+
offset = 16
|
|
9
12
|
}) {
|
|
10
|
-
const
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
children: children
|
|
14
|
-
});
|
|
15
|
-
}
|
|
16
|
-
const makeStyles = position => {
|
|
17
|
-
return StyleSheet.create({
|
|
18
|
-
container: {
|
|
19
|
-
zIndex: 1000,
|
|
13
|
+
const positionStyles = useMemo(() => StyleSheet.create({
|
|
14
|
+
absolute: {
|
|
15
|
+
zIndex: Z_INDEX_OVERLAY,
|
|
20
16
|
position: 'absolute',
|
|
21
|
-
bottom: position === 'bottom-left' || position === 'bottom-right' ?
|
|
22
|
-
top: position === 'top-left' || position === 'top-right' ?
|
|
23
|
-
left: position === 'top-left' || position === 'bottom-left' ?
|
|
24
|
-
right: position === 'top-right' || position === 'bottom-right' ?
|
|
17
|
+
bottom: position === 'bottom-left' || position === 'bottom-right' ? offset : 'auto',
|
|
18
|
+
top: position === 'top-left' || position === 'top-right' ? offset : 'auto',
|
|
19
|
+
left: position === 'top-left' || position === 'bottom-left' ? offset : 'auto',
|
|
20
|
+
right: position === 'top-right' || position === 'bottom-right' ? offset : 'auto'
|
|
25
21
|
}
|
|
22
|
+
}), [offset, position]);
|
|
23
|
+
return /*#__PURE__*/_jsx(View, {
|
|
24
|
+
style: [positionStyles.absolute, style],
|
|
25
|
+
children: children
|
|
26
26
|
});
|
|
27
|
-
};
|
|
28
|
-
|
|
27
|
+
});
|
|
28
|
+
export { SliderCorner };
|
|
29
|
+
//# sourceMappingURL=slider-corner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMemo","StyleSheet","View","Z_INDEX_OVERLAY","jsx","_jsx","SliderCorner","memo","position","children","style","offset","positionStyles","create","absolute","zIndex","bottom","top","left","right"],"sourceRoot":"../../../src","sources":["primitives/slider-corner.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,SAASC,eAAe,QAAQ,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAStD,MAAMC,YAAY,gBAAGP,KAAK,CAACQ,IAAI,CAAoB,SAASD,YAAYA,CAAC;EACrEE,QAAQ;EACRC,QAAQ;EACRC,KAAK;EACLC,MAAM,GAAG;AACb,CAAC,EAAE;EACC,MAAMC,cAAc,GAAGZ,OAAO,CAC1B,MACIC,UAAU,CAACY,MAAM,CAAC;IACdC,QAAQ,EAAE;MACNC,MAAM,EAAEZ,eAAe;MACvBK,QAAQ,EAAE,UAAU;MACpBQ,MAAM,EACFR,QAAQ,KAAK,aAAa,IAAIA,QAAQ,KAAK,cAAc,GAAGG,MAAM,GAAG,MAAM;MAC/EM,GAAG,EAAET,QAAQ,KAAK,UAAU,IAAIA,QAAQ,KAAK,WAAW,GAAGG,MAAM,GAAG,MAAM;MAC1EO,IAAI,EAAEV,QAAQ,KAAK,UAAU,IAAIA,QAAQ,KAAK,aAAa,GAAGG,MAAM,GAAG,MAAM;MAC7EQ,KAAK,EACDX,QAAQ,KAAK,WAAW,IAAIA,QAAQ,KAAK,cAAc,GAAGG,MAAM,GAAG;IAC3E;EACJ,CAAC,CAAC,EACN,CAACA,MAAM,EAAEH,QAAQ,CACrB,CAAC;EAED,oBAAOH,IAAA,CAACH,IAAI;IAACQ,KAAK,EAAE,CAACE,cAAc,CAACE,QAAQ,EAAEJ,KAAK,CAAE;IAAAD,QAAA,EAAEA;EAAQ,CAAO,CAAC;AAC3E,CAAC,CAAC;AAGF,SAASH,YAAY","ignoreList":[]}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useMemo } from 'react';
|
|
4
|
+
import { StyleSheet, View } from 'react-native';
|
|
5
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
6
|
+
import { DESCRIPTION_OFFSET, SAFE_AREA_OFFSET } from "../constants/layout.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
function SliderDescription({
|
|
9
|
+
children,
|
|
10
|
+
style
|
|
11
|
+
}) {
|
|
12
|
+
const safeAreaInsets = useSafeAreaInsets();
|
|
13
|
+
const positionStyles = useMemo(() => StyleSheet.create({
|
|
14
|
+
descriptionContainer: {
|
|
15
|
+
position: 'absolute',
|
|
16
|
+
borderTopWidth: 1,
|
|
17
|
+
borderTopColor: '#FFFFFF',
|
|
18
|
+
width: '100%',
|
|
19
|
+
paddingTop: SAFE_AREA_OFFSET,
|
|
20
|
+
bottom: safeAreaInsets.bottom + DESCRIPTION_OFFSET,
|
|
21
|
+
paddingLeft: safeAreaInsets.left + SAFE_AREA_OFFSET,
|
|
22
|
+
paddingRight: safeAreaInsets.right + SAFE_AREA_OFFSET
|
|
23
|
+
}
|
|
24
|
+
}), [safeAreaInsets.bottom, safeAreaInsets.left, safeAreaInsets.right]);
|
|
25
|
+
return /*#__PURE__*/_jsx(View, {
|
|
26
|
+
style: [positionStyles.descriptionContainer, style],
|
|
27
|
+
children: children
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
export { SliderDescription };
|
|
31
|
+
//# sourceMappingURL=slider-description.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMemo","StyleSheet","View","useSafeAreaInsets","DESCRIPTION_OFFSET","SAFE_AREA_OFFSET","jsx","_jsx","SliderDescription","children","style","safeAreaInsets","positionStyles","create","descriptionContainer","position","borderTopWidth","borderTopColor","width","paddingTop","bottom","paddingLeft","left","paddingRight","right"],"sourceRoot":"../../../src","sources":["primitives/slider-description.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,kBAAkB,EAAEC,gBAAgB,QAAQ,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO3E,SAASC,iBAAiBA,CAAC;EAAEC,QAAQ;EAAEC;AAA8B,CAAC,EAAE;EACpE,MAAMC,cAAc,GAAGR,iBAAiB,CAAC,CAAC;EAE1C,MAAMS,cAAc,GAAGZ,OAAO,CAC1B,MACIC,UAAU,CAACY,MAAM,CAAC;IACdC,oBAAoB,EAAE;MAClBC,QAAQ,EAAE,UAAU;MACpBC,cAAc,EAAE,CAAC;MACjBC,cAAc,EAAE,SAAS;MACzBC,KAAK,EAAE,MAAM;MACbC,UAAU,EAAEd,gBAAgB;MAC5Be,MAAM,EAAET,cAAc,CAACS,MAAM,GAAGhB,kBAAkB;MAClDiB,WAAW,EAAEV,cAAc,CAACW,IAAI,GAAGjB,gBAAgB;MACnDkB,YAAY,EAAEZ,cAAc,CAACa,KAAK,GAAGnB;IACzC;EACJ,CAAC,CAAC,EACN,CAACM,cAAc,CAACS,MAAM,EAAET,cAAc,CAACW,IAAI,EAAEX,cAAc,CAACa,KAAK,CACrE,CAAC;EAED,oBAAOjB,IAAA,CAACL,IAAI;IAACQ,KAAK,EAAE,CAACE,cAAc,CAACE,oBAAoB,EAAEJ,KAAK,CAAE;IAAAD,QAAA,EAAEA;EAAQ,CAAO,CAAC;AACvF;AAGA,SAASD,iBAAiB","ignoreList":[]}
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { StyleSheet, View } from 'react-native';
|
|
5
|
+
import { useSliderContext } from "../context/slider-context.js";
|
|
6
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const SliderEmpty = /*#__PURE__*/React.memo(function SliderEmpty({
|
|
8
|
+
children,
|
|
9
|
+
style
|
|
10
|
+
}) {
|
|
11
|
+
const {
|
|
12
|
+
totalItems,
|
|
13
|
+
imageAspectRatio
|
|
14
|
+
} = useSliderContext();
|
|
15
|
+
return totalItems === 0 ? /*#__PURE__*/_jsx(View, {
|
|
16
|
+
style: [styles.container, {
|
|
17
|
+
aspectRatio: imageAspectRatio
|
|
18
|
+
}, style],
|
|
19
|
+
children: children
|
|
20
|
+
}) : null;
|
|
21
|
+
});
|
|
22
|
+
const styles = StyleSheet.create({
|
|
23
|
+
container: {
|
|
24
|
+
width: '100%'
|
|
25
|
+
}
|
|
26
|
+
});
|
|
27
|
+
export { SliderEmpty };
|
|
28
|
+
//# sourceMappingURL=slider-empty.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","View","useSliderContext","jsx","_jsx","SliderEmpty","memo","children","style","totalItems","imageAspectRatio","styles","container","aspectRatio","create","width"],"sourceRoot":"../../../src","sources":["primitives/slider-empty.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,QAAQ,cAAc;AAE/C,SAASC,gBAAgB,QAAQ,8BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AAO7D,MAAMC,WAAW,gBAAGN,KAAK,CAACO,IAAI,CAAmB,SAASD,WAAWA,CAAC;EAAEE,QAAQ;EAAEC;AAAM,CAAC,EAAE;EACvF,MAAM;IAAEC,UAAU;IAAEC;EAAiB,CAAC,GAAGR,gBAAgB,CAAC,CAAC;EAE3D,OAAOO,UAAU,KAAK,CAAC,gBACnBL,IAAA,CAACH,IAAI;IAACO,KAAK,EAAE,CAACG,MAAM,CAACC,SAAS,EAAE;MAAEC,WAAW,EAAEH;IAAiB,CAAC,EAAEF,KAAK,CAAE;IAAAD,QAAA,EAAEA;EAAQ,CAAO,CAAC,GAC5F,IAAI;AACZ,CAAC,CAAC;AAEF,MAAMI,MAAM,GAAGX,UAAU,CAACc,MAAM,CAAC;EAC7BF,SAAS,EAAE;IACPG,KAAK,EAAE;EACX;AACJ,CAAC,CAAC;AAGF,SAASV,WAAW","ignoreList":[]}
|
|
@@ -0,0 +1,109 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useCallback, useEffect, useMemo } from 'react';
|
|
4
|
+
import { Modal, StyleSheet, useColorScheme, useWindowDimensions } from 'react-native';
|
|
5
|
+
import Animated, { useAnimatedStyle, useSharedValue } from 'react-native-reanimated';
|
|
6
|
+
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
7
|
+
import { setStatusBarStyle } from 'expo-status-bar';
|
|
8
|
+
import { useSliderContext } from "../context/slider-context.js";
|
|
9
|
+
import { SliderFullScreenProvider } from "../context/slider-full-screen-context.js";
|
|
10
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
+
function SliderFullScreen({
|
|
12
|
+
children,
|
|
13
|
+
style
|
|
14
|
+
}) {
|
|
15
|
+
const {
|
|
16
|
+
isFullScreenOpen,
|
|
17
|
+
registerFullScreen,
|
|
18
|
+
closeFullScreen,
|
|
19
|
+
scrollToIndex,
|
|
20
|
+
registerOnIndexChange,
|
|
21
|
+
registerOnPinchStatusChange,
|
|
22
|
+
registerOnPinchDismiss,
|
|
23
|
+
registerOnFullScreenChange,
|
|
24
|
+
statusBarStyle
|
|
25
|
+
} = useSliderContext();
|
|
26
|
+
const windowDimensions = useWindowDimensions();
|
|
27
|
+
const colorScheme = useColorScheme();
|
|
28
|
+
const styles = useMemo(() => StyleSheet.create({
|
|
29
|
+
modalContent: {
|
|
30
|
+
alignItems: 'center',
|
|
31
|
+
justifyContent: 'center',
|
|
32
|
+
gap: 16,
|
|
33
|
+
height: windowDimensions.height,
|
|
34
|
+
width: windowDimensions.width
|
|
35
|
+
},
|
|
36
|
+
contentContainer: {
|
|
37
|
+
width: '100%',
|
|
38
|
+
height: '100%',
|
|
39
|
+
display: 'flex',
|
|
40
|
+
flexDirection: 'column',
|
|
41
|
+
alignItems: 'center',
|
|
42
|
+
justifyContent: 'center'
|
|
43
|
+
}
|
|
44
|
+
}), [windowDimensions]);
|
|
45
|
+
const backgroundOpacity = useSharedValue(1);
|
|
46
|
+
const modalContentStyle = useAnimatedStyle(() => {
|
|
47
|
+
return {
|
|
48
|
+
backgroundColor: `rgba(0, 0, 0, ${backgroundOpacity.value})`
|
|
49
|
+
};
|
|
50
|
+
}, []);
|
|
51
|
+
const handleClose = useCallback(() => {
|
|
52
|
+
closeFullScreen();
|
|
53
|
+
}, [closeFullScreen]);
|
|
54
|
+
const handlePinchStatusChange = useCallback(status => {
|
|
55
|
+
if (status.scale <= 1) {
|
|
56
|
+
const maxTranslationY = windowDimensions.height / 2;
|
|
57
|
+
const progress = Math.min(Math.abs(status.translation.y) / maxTranslationY, 1);
|
|
58
|
+
backgroundOpacity.value = 1 - progress * 0.8;
|
|
59
|
+
} else {
|
|
60
|
+
backgroundOpacity.value = 1;
|
|
61
|
+
}
|
|
62
|
+
}, [windowDimensions.height, backgroundOpacity]);
|
|
63
|
+
const handleFullScreenChange = useCallback(isFullScreen => {
|
|
64
|
+
if (isFullScreen) {
|
|
65
|
+
setStatusBarStyle('light');
|
|
66
|
+
} else {
|
|
67
|
+
if (statusBarStyle === 'auto') {
|
|
68
|
+
setStatusBarStyle(colorScheme === 'dark' ? 'light' : 'dark');
|
|
69
|
+
} else {
|
|
70
|
+
setStatusBarStyle(statusBarStyle);
|
|
71
|
+
}
|
|
72
|
+
}
|
|
73
|
+
}, [colorScheme, statusBarStyle]);
|
|
74
|
+
const handleIndexChange = useCallback(index => {
|
|
75
|
+
scrollToIndex(index, false);
|
|
76
|
+
}, [scrollToIndex]);
|
|
77
|
+
useEffect(() => {
|
|
78
|
+
return registerOnIndexChange(handleIndexChange);
|
|
79
|
+
}, [handleIndexChange, registerOnIndexChange]);
|
|
80
|
+
useEffect(() => {
|
|
81
|
+
return registerOnFullScreenChange(handleFullScreenChange);
|
|
82
|
+
}, [handleFullScreenChange, registerOnFullScreenChange]);
|
|
83
|
+
useEffect(() => {
|
|
84
|
+
return registerOnPinchStatusChange(handlePinchStatusChange);
|
|
85
|
+
}, [handlePinchStatusChange, registerOnPinchStatusChange]);
|
|
86
|
+
useEffect(() => {
|
|
87
|
+
return registerOnPinchDismiss(handleClose);
|
|
88
|
+
}, [handleClose, registerOnPinchDismiss]);
|
|
89
|
+
useEffect(() => {
|
|
90
|
+
return registerFullScreen();
|
|
91
|
+
}, [registerFullScreen]);
|
|
92
|
+
return /*#__PURE__*/_jsx(Modal, {
|
|
93
|
+
animationType: "fade",
|
|
94
|
+
onRequestClose: handleClose,
|
|
95
|
+
transparent: true,
|
|
96
|
+
visible: isFullScreenOpen,
|
|
97
|
+
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
98
|
+
style: [styles.modalContent, modalContentStyle, style],
|
|
99
|
+
children: /*#__PURE__*/_jsx(GestureHandlerRootView, {
|
|
100
|
+
style: styles.contentContainer,
|
|
101
|
+
children: /*#__PURE__*/_jsx(SliderFullScreenProvider, {
|
|
102
|
+
children: children
|
|
103
|
+
})
|
|
104
|
+
})
|
|
105
|
+
})
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
export { SliderFullScreen };
|
|
109
|
+
//# sourceMappingURL=slider-full-screen.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useEffect","useMemo","Modal","StyleSheet","useColorScheme","useWindowDimensions","Animated","useAnimatedStyle","useSharedValue","GestureHandlerRootView","setStatusBarStyle","useSliderContext","SliderFullScreenProvider","jsx","_jsx","SliderFullScreen","children","style","isFullScreenOpen","registerFullScreen","closeFullScreen","scrollToIndex","registerOnIndexChange","registerOnPinchStatusChange","registerOnPinchDismiss","registerOnFullScreenChange","statusBarStyle","windowDimensions","colorScheme","styles","create","modalContent","alignItems","justifyContent","gap","height","width","contentContainer","display","flexDirection","backgroundOpacity","modalContentStyle","backgroundColor","value","handleClose","handlePinchStatusChange","status","scale","maxTranslationY","progress","Math","min","abs","translation","y","handleFullScreenChange","isFullScreen","handleIndexChange","index","animationType","onRequestClose","transparent","visible","View"],"sourceRoot":"../../../src","sources":["primitives/slider-full-screen.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { StyleSheet, Text, View } from 'react-native';
|
|
5
|
+
import { useSliderContext } from "../context/slider-context.js";
|
|
6
|
+
import { jsxs as _jsxs, jsx as _jsx } from "react/jsx-runtime";
|
|
7
|
+
const SliderPageCounter = /*#__PURE__*/React.memo(function SliderPageCounter({
|
|
8
|
+
style,
|
|
9
|
+
textStyle,
|
|
10
|
+
accessibilityLabel,
|
|
11
|
+
backgroundColor = '#D3D3D3',
|
|
12
|
+
borderColor = '#000000',
|
|
13
|
+
textColor = '#000000'
|
|
14
|
+
}) {
|
|
15
|
+
const {
|
|
16
|
+
currentIndex,
|
|
17
|
+
totalItems
|
|
18
|
+
} = useSliderContext();
|
|
19
|
+
if (totalItems === 0) {
|
|
20
|
+
return null;
|
|
21
|
+
}
|
|
22
|
+
const currentPage = currentIndex + 1;
|
|
23
|
+
const label = typeof accessibilityLabel === 'function' ? accessibilityLabel(currentPage, totalItems) : accessibilityLabel ?? `Image ${currentPage} of ${totalItems}`;
|
|
24
|
+
return /*#__PURE__*/_jsx(View, {
|
|
25
|
+
style: [styles.container, {
|
|
26
|
+
backgroundColor,
|
|
27
|
+
borderColor
|
|
28
|
+
}, style],
|
|
29
|
+
accessible: true,
|
|
30
|
+
accessibilityRole: "text",
|
|
31
|
+
accessibilityLabel: label,
|
|
32
|
+
accessibilityLiveRegion: "polite",
|
|
33
|
+
children: /*#__PURE__*/_jsxs(Text, {
|
|
34
|
+
style: [styles.text, {
|
|
35
|
+
color: textColor
|
|
36
|
+
}, textStyle],
|
|
37
|
+
children: [currentPage, " / ", totalItems]
|
|
38
|
+
})
|
|
39
|
+
});
|
|
40
|
+
});
|
|
41
|
+
const styles = StyleSheet.create({
|
|
42
|
+
container: {
|
|
43
|
+
backgroundColor: '#D3D3D3',
|
|
44
|
+
borderWidth: 1,
|
|
45
|
+
borderColor: '#000000',
|
|
46
|
+
borderRadius: 8,
|
|
47
|
+
paddingVertical: 6,
|
|
48
|
+
paddingHorizontal: 5,
|
|
49
|
+
width: 75,
|
|
50
|
+
flexDirection: 'row',
|
|
51
|
+
alignItems: 'center',
|
|
52
|
+
justifyContent: 'center'
|
|
53
|
+
},
|
|
54
|
+
text: {
|
|
55
|
+
color: '#000000'
|
|
56
|
+
}
|
|
57
|
+
});
|
|
58
|
+
export { SliderPageCounter };
|
|
59
|
+
//# sourceMappingURL=slider-page-counter.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","Text","View","useSliderContext","jsxs","_jsxs","jsx","_jsx","SliderPageCounter","memo","style","textStyle","accessibilityLabel","backgroundColor","borderColor","textColor","currentIndex","totalItems","currentPage","label","styles","container","accessible","accessibilityRole","accessibilityLiveRegion","children","text","color","create","borderWidth","borderRadius","paddingVertical","paddingHorizontal","width","flexDirection","alignItems","justifyContent"],"sourceRoot":"../../../src","sources":["primitives/slider-page-counter.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,EAAEC,IAAI,EAAEC,IAAI,QAAQ,cAAc;AAErD,SAASC,gBAAgB,QAAQ,8BAA2B;AAAC,SAAAC,IAAA,IAAAC,KAAA,EAAAC,GAAA,IAAAC,IAAA;AAW7D,MAAMC,iBAAiB,gBAAGT,KAAK,CAACU,IAAI,CAAyB,SAASD,iBAAiBA,CAAC;EACpFE,KAAK;EACLC,SAAS;EACTC,kBAAkB;EAClBC,eAAe,GAAG,SAAS;EAC3BC,WAAW,GAAG,SAAS;EACvBC,SAAS,GAAG;AAChB,CAAC,EAAE;EACC,MAAM;IAAEC,YAAY;IAAEC;EAAW,CAAC,GAAGd,gBAAgB,CAAC,CAAC;EAEvD,IAAIc,UAAU,KAAK,CAAC,EAAE;IAClB,OAAO,IAAI;EACf;EAEA,MAAMC,WAAW,GAAGF,YAAY,GAAG,CAAC;EAEpC,MAAMG,KAAK,GACP,OAAOP,kBAAkB,KAAK,UAAU,GAClCA,kBAAkB,CAACM,WAAW,EAAED,UAAU,CAAC,GAC1CL,kBAAkB,IAAI,SAASM,WAAW,OAAOD,UAAU,EAAG;EAEzE,oBACIV,IAAA,CAACL,IAAI;IACDQ,KAAK,EAAE,CAACU,MAAM,CAACC,SAAS,EAAE;MAAER,eAAe;MAAEC;IAAY,CAAC,EAAEJ,KAAK,CAAE;IACnEY,UAAU,EAAE,IAAK;IACjBC,iBAAiB,EAAC,MAAM;IACxBX,kBAAkB,EAAEO,KAAM;IAC1BK,uBAAuB,EAAC,QAAQ;IAAAC,QAAA,eAEhCpB,KAAA,CAACJ,IAAI;MAACS,KAAK,EAAE,CAACU,MAAM,CAACM,IAAI,EAAE;QAAEC,KAAK,EAAEZ;MAAU,CAAC,EAAEJ,SAAS,CAAE;MAAAc,QAAA,GACvDP,WAAW,EAAC,KAAG,EAACD,UAAU;IAAA,CACzB;EAAC,CACL,CAAC;AAEf,CAAC,CAAC;AAEF,MAAMG,MAAM,GAAGpB,UAAU,CAAC4B,MAAM,CAAC;EAC7BP,SAAS,EAAE;IACPR,eAAe,EAAE,SAAS;IAC1BgB,WAAW,EAAE,CAAC;IACdf,WAAW,EAAE,SAAS;IACtBgB,YAAY,EAAE,CAAC;IACfC,eAAe,EAAE,CAAC;IAClBC,iBAAiB,EAAE,CAAC;IACpBC,KAAK,EAAE,EAAE;IACTC,aAAa,EAAE,KAAK;IACpBC,UAAU,EAAE,QAAQ;IACpBC,cAAc,EAAE;EACpB,CAAC;EACDV,IAAI,EAAE;IACFC,KAAK,EAAE;EACX;AACJ,CAAC,CAAC;AAGF,SAASnB,iBAAiB","ignoreList":[]}
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import { StyleSheet } from 'react-native';
|
|
5
|
+
import { GestureHandlerRootView } from 'react-native-gesture-handler';
|
|
6
|
+
import { SliderProvider } from "../context/slider-context.js";
|
|
7
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
8
|
+
function Slider({
|
|
9
|
+
style,
|
|
10
|
+
children,
|
|
11
|
+
...props
|
|
12
|
+
}) {
|
|
13
|
+
return /*#__PURE__*/_jsx(SliderProvider, {
|
|
14
|
+
...props,
|
|
15
|
+
children: /*#__PURE__*/_jsx(GestureHandlerRootView, {
|
|
16
|
+
style: [styles.container, style],
|
|
17
|
+
children: children
|
|
18
|
+
})
|
|
19
|
+
});
|
|
20
|
+
}
|
|
21
|
+
const styles = StyleSheet.create({
|
|
22
|
+
container: {
|
|
23
|
+
width: '100%'
|
|
24
|
+
}
|
|
25
|
+
});
|
|
26
|
+
export { Slider };
|
|
27
|
+
//# sourceMappingURL=slider.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","StyleSheet","GestureHandlerRootView","SliderProvider","jsx","_jsx","Slider","style","children","props","styles","container","create","width"],"sourceRoot":"../../../src","sources":["primitives/slider.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,SAASC,UAAU,QAAQ,cAAc;AAEzC,SAASC,sBAAsB,QAAQ,8BAA8B;AACrE,SAASC,cAAc,QAAQ,8BAA2B;AAAC,SAAAC,GAAA,IAAAC,IAAA;AA2B3D,SAASC,MAAMA,CAAC;EAAEC,KAAK;EAAEC,QAAQ;EAAE,GAAGC;AAAmB,CAAC,EAAE;EACxD,oBACIJ,IAAA,CAACF,cAAc;IAAA,GAAKM,KAAK;IAAAD,QAAA,eACrBH,IAAA,CAACH,sBAAsB;MAACK,KAAK,EAAE,CAACG,MAAM,CAACC,SAAS,EAAEJ,KAAK,CAAE;MAAAC,QAAA,EACpDA;IAAQ,CACW;EAAC,CACb,CAAC;AAEzB;AAEA,MAAME,MAAM,GAAGT,UAAU,CAACW,MAAM,CAAC;EAC7BD,SAAS,EAAE;IACPE,KAAK,EAAE;EACX;AACJ,CAAC,CAAC;AAGF,SAASP,MAAM","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/common.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/context.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/icons.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/index.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/pinch-to-zoom.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"../../../src","sources":["types/slider-state.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["capitalize","s","charAt","toUpperCase","slice"],"sourceRoot":"../../../src","sources":["utils/capitalize.ts"],"mappings":";;AAAA,SAASA,UAAUA,CAAmBC,CAAI,EAAiB;EACvD,OAAQA,CAAC,CAACC,MAAM,CAAC,CAAC,CAAC,CAACC,WAAW,CAAC,CAAC,GAAGF,CAAC,CAACG,KAAK,CAAC,CAAC,CAAC;AAClD;AAEA,SAASJ,UAAU","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["clamp","value","min","max","Math"],"sourceRoot":"../../../src","sources":["utils/clamp.ts"],"mappings":";;AAAA,
|
|
1
|
+
{"version":3,"names":["clamp","value","min","max","Math"],"sourceRoot":"../../../src","sources":["utils/clamp.ts"],"mappings":";;AAAA,MAAMA,KAAK,GAAGA,CAACC,KAAa,EAAEC,GAAW,EAAEC,GAAW,KAAK;EACvD,SAAS;;EACT,OAAOC,IAAI,CAACF,GAAG,CAACE,IAAI,CAACD,GAAG,CAACF,KAAK,EAAEC,GAAG,CAAC,EAAEC,GAAG,CAAC;AAC9C,CAAC;AAED,SAASH,KAAK","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
//# sourceMappingURL=index.test.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../../../src/__tests__/index.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../../src/constants/layout.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,eAAe,OAAO,CAAC;AAEpC,eAAO,MAAM,qBAAqB,KAAK,CAAC;AAExC,eAAO,MAAM,gBAAgB,KAAK,CAAC;AAEnC,eAAO,MAAM,kBAAkB,MAAM,CAAC"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { SliderContextValue, SliderProviderProps } from '../types/context';
|
|
3
|
+
import type { SliderPublicState } from '../types/slider-state';
|
|
4
|
+
declare function SliderProvider({ children, ...props }: SliderProviderProps): React.JSX.Element;
|
|
5
|
+
declare function useSliderContext(): SliderContextValue;
|
|
6
|
+
declare function useSlider(): SliderPublicState;
|
|
7
|
+
export { SliderProvider, useSliderContext, useSlider };
|
|
8
|
+
//# sourceMappingURL=slider-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"slider-context.d.ts","sourceRoot":"","sources":["../../../../../src/context/slider-context.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoC,MAAM,OAAO,CAAC;AACzD,OAAO,KAAK,EAAE,kBAAkB,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAChF,OAAO,KAAK,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAK/D,iBAAS,cAAc,CAAC,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,mBAAmB,qBAIlE;AAED,iBAAS,gBAAgB,IAAI,kBAAkB,CAQ9C;AAED,iBAAS,SAAS,IAAI,iBAAiB,CAetC;AAED,OAAO,EAAE,cAAc,EAAE,gBAAgB,EAAE,SAAS,EAAE,CAAC"}
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
import type { PropsWithChildren } from 'react';
|
|
3
|
+
declare function SliderFullScreenProvider({ children }: PropsWithChildren): React.JSX.Element;
|
|
4
|
+
declare function useIsFullScreenSlider(): boolean;
|
|
5
|
+
export { SliderFullScreenProvider, useIsFullScreenSlider };
|
|
6
|
+
//# sourceMappingURL=slider-full-screen-context.d.ts.map
|