@one-am/react-native-simple-image-slider 0.16.0 → 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 -212
- 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 -205
- 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 -390
- 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,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useRef, useState } from 'react';
|
|
4
|
+
export function useSliderNavigation({
|
|
5
|
+
initialIndex = 0
|
|
6
|
+
}) {
|
|
7
|
+
const [currentIndex, setCurrentIndex] = useState(initialIndex);
|
|
8
|
+
const scrollFnRef = useRef(null);
|
|
9
|
+
const registerScrollFn = useCallback(fn => {
|
|
10
|
+
scrollFnRef.current = fn;
|
|
11
|
+
return () => {
|
|
12
|
+
scrollFnRef.current = null;
|
|
13
|
+
};
|
|
14
|
+
}, []);
|
|
15
|
+
const scrollToIndex = useCallback((index, animated = true) => {
|
|
16
|
+
scrollFnRef.current?.(index, animated);
|
|
17
|
+
}, []);
|
|
18
|
+
return {
|
|
19
|
+
currentIndex,
|
|
20
|
+
setCurrentIndex,
|
|
21
|
+
registerScrollFn,
|
|
22
|
+
scrollToIndex
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
//# sourceMappingURL=use-slider-navigation.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useRef","useState","useSliderNavigation","initialIndex","currentIndex","setCurrentIndex","scrollFnRef","registerScrollFn","fn","current","scrollToIndex","index","animated"],"sourceRoot":"../../../../src","sources":["hooks/slider-state/use-slider-navigation.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAKrD,OAAO,SAASC,mBAAmBA,CAAC;EAChCC,YAAY,GAAG;AAGnB,CAAC,EAAyB;EACtB,MAAM,CAACC,YAAY,EAAEC,eAAe,CAAC,GAAGJ,QAAQ,CAACE,YAAY,CAAC;EAC9D,MAAMG,WAAW,GAAGN,MAAM,CAAyB,IAAI,CAAC;EAExD,MAAMO,gBAAgB,GAAGR,WAAW,CAAES,EAAmB,IAAK;IAC1DF,WAAW,CAACG,OAAO,GAAGD,EAAE;IAExB,OAAO,MAAM;MACTF,WAAW,CAACG,OAAO,GAAG,IAAI;IAC9B,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,aAAa,GAAGX,WAAW,CAAC,CAACY,KAAa,EAAEC,QAAiB,GAAG,IAAI,KAAK;IAC3EN,WAAW,CAACG,OAAO,GAAGE,KAAK,EAAEC,QAAQ,CAAC;EAC1C,CAAC,EAAE,EAAE,CAAC;EAEN,OAAO;IACHR,YAAY;IACZC,eAAe;IACfE,gBAAgB;IAChBG;EACJ,CAAC;AACL","ignoreList":[]}
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useMemo } from 'react';
|
|
4
|
+
import { useImage } from 'expo-image';
|
|
5
|
+
const DEFAULT_ASPECT_RATIO = 4 / 3;
|
|
6
|
+
|
|
7
|
+
// 1x1 transparent PNG data URI used as placeholder when aspect ratio detection is not needed
|
|
8
|
+
const PLACEHOLDER_SOURCE = {
|
|
9
|
+
uri: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAABCAQAAAC1HAwCAAAAC0lEQVR42mNkYAAAAAYAAjCB0C8AAAAASUVORK5CYII='
|
|
10
|
+
};
|
|
11
|
+
function useImageAspectRatio(source, overrideAspectRatio) {
|
|
12
|
+
// If override is provided or source is undefined, don't attempt to load
|
|
13
|
+
const shouldDetect = overrideAspectRatio === undefined && source !== undefined;
|
|
14
|
+
|
|
15
|
+
// useImage returns null while loading, then ImageRef with width/height
|
|
16
|
+
// Use a valid placeholder image when detection is not needed to satisfy the hook signature
|
|
17
|
+
const imageRef = useImage(shouldDetect ? source : PLACEHOLDER_SOURCE);
|
|
18
|
+
const result = useMemo(() => {
|
|
19
|
+
// If override provided, use it immediately
|
|
20
|
+
if (overrideAspectRatio !== undefined) {
|
|
21
|
+
return {
|
|
22
|
+
imageAspectRatio: overrideAspectRatio,
|
|
23
|
+
isAspectRatioLoading: false
|
|
24
|
+
};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
// If no source, use default
|
|
28
|
+
if (!source) {
|
|
29
|
+
return {
|
|
30
|
+
imageAspectRatio: DEFAULT_ASPECT_RATIO,
|
|
31
|
+
isAspectRatioLoading: false
|
|
32
|
+
};
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
// If still loading
|
|
36
|
+
if (!imageRef) {
|
|
37
|
+
return {
|
|
38
|
+
imageAspectRatio: DEFAULT_ASPECT_RATIO,
|
|
39
|
+
isAspectRatioLoading: true
|
|
40
|
+
};
|
|
41
|
+
}
|
|
42
|
+
|
|
43
|
+
// Compute aspect ratio from detected dimensions
|
|
44
|
+
const {
|
|
45
|
+
width,
|
|
46
|
+
height
|
|
47
|
+
} = imageRef;
|
|
48
|
+
if (width > 0 && height > 0) {
|
|
49
|
+
return {
|
|
50
|
+
imageAspectRatio: width / height,
|
|
51
|
+
isAspectRatioLoading: false
|
|
52
|
+
};
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
// Fallback if dimensions are invalid
|
|
56
|
+
return {
|
|
57
|
+
imageAspectRatio: DEFAULT_ASPECT_RATIO,
|
|
58
|
+
isAspectRatioLoading: false
|
|
59
|
+
};
|
|
60
|
+
}, [overrideAspectRatio, source, imageRef]);
|
|
61
|
+
return result;
|
|
62
|
+
}
|
|
63
|
+
export { useImageAspectRatio, DEFAULT_ASPECT_RATIO };
|
|
64
|
+
//# sourceMappingURL=use-image-aspect-ratio.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useMemo","useImage","DEFAULT_ASPECT_RATIO","PLACEHOLDER_SOURCE","uri","useImageAspectRatio","source","overrideAspectRatio","shouldDetect","undefined","imageRef","result","imageAspectRatio","isAspectRatioLoading","width","height"],"sourceRoot":"../../../src","sources":["hooks/use-image-aspect-ratio.ts"],"mappings":";;AAAA,SAASA,OAAO,QAAQ,OAAO;AAC/B,SAASC,QAAQ,QAAQ,YAAY;AAIrC,MAAMC,oBAAoB,GAAG,CAAC,GAAG,CAAC;;AAElC;AACA,MAAMC,kBAAkB,GAAG;EACvBC,GAAG,EAAE;AACT,CAAU;AAEV,SAASC,mBAAmBA,CACxBC,MAA+B,EAC/BC,mBAA4B,EACN;EACtB;EACA,MAAMC,YAAY,GAAGD,mBAAmB,KAAKE,SAAS,IAAIH,MAAM,KAAKG,SAAS;;EAE9E;EACA;EACA,MAAMC,QAAQ,GAAGT,QAAQ,CAACO,YAAY,GAAGF,MAAM,GAAGH,kBAAkB,CAAC;EAErE,MAAMQ,MAAM,GAAGX,OAAO,CAAC,MAAM;IACzB;IACA,IAAIO,mBAAmB,KAAKE,SAAS,EAAE;MACnC,OAAO;QAAEG,gBAAgB,EAAEL,mBAAmB;QAAEM,oBAAoB,EAAE;MAAM,CAAC;IACjF;;IAEA;IACA,IAAI,CAACP,MAAM,EAAE;MACT,OAAO;QAAEM,gBAAgB,EAAEV,oBAAoB;QAAEW,oBAAoB,EAAE;MAAM,CAAC;IAClF;;IAEA;IACA,IAAI,CAACH,QAAQ,EAAE;MACX,OAAO;QAAEE,gBAAgB,EAAEV,oBAAoB;QAAEW,oBAAoB,EAAE;MAAK,CAAC;IACjF;;IAEA;IACA,MAAM;MAAEC,KAAK;MAAEC;IAAO,CAAC,GAAGL,QAAQ;IAClC,IAAII,KAAK,GAAG,CAAC,IAAIC,MAAM,GAAG,CAAC,EAAE;MACzB,OAAO;QAAEH,gBAAgB,EAAEE,KAAK,GAAGC,MAAM;QAAEF,oBAAoB,EAAE;MAAM,CAAC;IAC5E;;IAEA;IACA,OAAO;MAAED,gBAAgB,EAAEV,oBAAoB;MAAEW,oBAAoB,EAAE;IAAM,CAAC;EAClF,CAAC,EAAE,CAACN,mBAAmB,EAAED,MAAM,EAAEI,QAAQ,CAAC,CAAC;EAE3C,OAAOC,MAAM;AACjB;AAEA,SAASN,mBAAmB,EAAEH,oBAAoB","ignoreList":[]}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useRef } from 'react';
|
|
4
|
+
import { capitalize } from "../utils/capitalize.js";
|
|
5
|
+
function useRegisteredCallback({
|
|
6
|
+
handler: handlerProp,
|
|
7
|
+
name
|
|
8
|
+
}) {
|
|
9
|
+
const handlersRef = useRef(new Set());
|
|
10
|
+
const register = useCallback(handler => {
|
|
11
|
+
handlersRef.current.add(handler);
|
|
12
|
+
return () => {
|
|
13
|
+
handlersRef.current.delete(handler);
|
|
14
|
+
};
|
|
15
|
+
}, []);
|
|
16
|
+
const on = useCallback((...args) => {
|
|
17
|
+
handlerProp?.(...args);
|
|
18
|
+
handlersRef.current.forEach(handler => handler(...args));
|
|
19
|
+
}, [handlerProp]);
|
|
20
|
+
return {
|
|
21
|
+
[`on${capitalize(name)}`]: on,
|
|
22
|
+
[`registerOn${capitalize(name)}`]: register
|
|
23
|
+
};
|
|
24
|
+
}
|
|
25
|
+
export { useRegisteredCallback };
|
|
26
|
+
//# sourceMappingURL=use-registered-callback.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useRef","capitalize","useRegisteredCallback","handler","handlerProp","name","handlersRef","Set","register","current","add","delete","on","args","forEach"],"sourceRoot":"../../../src","sources":["hooks/use-registered-callback.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,MAAM,QAAQ,OAAO;AAE3C,SAASC,UAAU,QAAQ,wBAAqB;AAOhD,SAASC,qBAAqBA,CAA+D;EACzFC,OAAO,EAAEC,WAAW;EACpBC;AAC8B,CAAC,EAAyC;EACxE,MAAMC,WAAW,GAAGN,MAAM,CAAsB,IAAIO,GAAG,CAAC,CAAC,CAAC;EAE1D,MAAMC,QAAQ,GAAGT,WAAW,CAAEI,OAAuB,IAAK;IACtDG,WAAW,CAACG,OAAO,CAACC,GAAG,CAACP,OAAO,CAAC;IAEhC,OAAO,MAAM;MACTG,WAAW,CAACG,OAAO,CAACE,MAAM,CAACR,OAAO,CAAC;IACvC,CAAC;EACL,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMS,EAAE,GAAGb,WAAW,CAClB,CAAC,GAAGc,IAAgC,KAAK;IACrCT,WAAW,GAAG,GAAGS,IAAI,CAAC;IACtBP,WAAW,CAACG,OAAO,CAACK,OAAO,CAAEX,OAAO,IAAKA,OAAO,CAAC,GAAGU,IAAI,CAAC,CAAC;EAC9D,CAAC,EACD,CAACT,WAAW,CAChB,CAAC;EAED,OAAO;IACH,CAAC,KAAKH,UAAU,CAACI,IAAI,CAAC,EAAE,GAAGO,EAAE;IAC7B,CAAC,aAAaX,UAAU,CAACI,IAAI,CAAC,EAAE,GAAGG;EACvC,CAAC;AACL;AAEA,SAASN,qBAAqB","ignoreList":[]}
|
|
@@ -0,0 +1,68 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { useCallback, useMemo } from 'react';
|
|
4
|
+
import { useImageAspectRatio, useSliderNavigation, useSliderFullScreen, useSliderCallbacks } from "./slider-state/index.js";
|
|
5
|
+
export function useSliderState({
|
|
6
|
+
data,
|
|
7
|
+
initialIndex,
|
|
8
|
+
imageAspectRatio: aspectRatioOverride,
|
|
9
|
+
statusBarStyle = 'auto',
|
|
10
|
+
...propCallbacks
|
|
11
|
+
}) {
|
|
12
|
+
// Get first image source for aspect ratio detection
|
|
13
|
+
const firstImageSource = data?.[0]?.source;
|
|
14
|
+
|
|
15
|
+
// Compose specialized hooks (callbacks first since it has no dependencies)
|
|
16
|
+
const callbacks = useSliderCallbacks(propCallbacks);
|
|
17
|
+
const aspectRatio = useImageAspectRatio(firstImageSource, aspectRatioOverride);
|
|
18
|
+
const navigation = useSliderNavigation({
|
|
19
|
+
initialIndex
|
|
20
|
+
});
|
|
21
|
+
const fullScreen = useSliderFullScreen();
|
|
22
|
+
|
|
23
|
+
// Destructure stable setState functions and callback dispatchers
|
|
24
|
+
const {
|
|
25
|
+
setCurrentIndex: setCurrentIndexRaw
|
|
26
|
+
} = navigation;
|
|
27
|
+
const {
|
|
28
|
+
setIsFullScreenOpen
|
|
29
|
+
} = fullScreen;
|
|
30
|
+
const {
|
|
31
|
+
onIndexChange: onIndexChangeDispatcher,
|
|
32
|
+
onFullScreenChange: onFullScreenChangeDispatcher
|
|
33
|
+
} = callbacks;
|
|
34
|
+
const totalItems = data?.length ?? 0;
|
|
35
|
+
|
|
36
|
+
// Create wrappers that update state AND dispatch callbacks
|
|
37
|
+
const setCurrentIndex = useCallback(index => {
|
|
38
|
+
if (totalItems === 0) return;
|
|
39
|
+
const clampedIndex = Math.max(0, Math.min(index, totalItems - 1));
|
|
40
|
+
setCurrentIndexRaw(clampedIndex);
|
|
41
|
+
onIndexChangeDispatcher(clampedIndex);
|
|
42
|
+
}, [setCurrentIndexRaw, onIndexChangeDispatcher, totalItems]);
|
|
43
|
+
const openFullScreen = useCallback(() => {
|
|
44
|
+
setIsFullScreenOpen(true);
|
|
45
|
+
onFullScreenChangeDispatcher(true);
|
|
46
|
+
}, [setIsFullScreenOpen, onFullScreenChangeDispatcher]);
|
|
47
|
+
const closeFullScreen = useCallback(() => {
|
|
48
|
+
setIsFullScreenOpen(false);
|
|
49
|
+
onFullScreenChangeDispatcher(false);
|
|
50
|
+
}, [setIsFullScreenOpen, onFullScreenChangeDispatcher]);
|
|
51
|
+
return useMemo(() => ({
|
|
52
|
+
data,
|
|
53
|
+
totalItems,
|
|
54
|
+
...aspectRatio,
|
|
55
|
+
currentIndex: navigation.currentIndex,
|
|
56
|
+
registerScrollFn: navigation.registerScrollFn,
|
|
57
|
+
scrollToIndex: navigation.scrollToIndex,
|
|
58
|
+
setCurrentIndex,
|
|
59
|
+
isFullScreenOpen: fullScreen.isFullScreenOpen,
|
|
60
|
+
hasFullScreen: fullScreen.hasFullScreen,
|
|
61
|
+
registerFullScreen: fullScreen.registerFullScreen,
|
|
62
|
+
openFullScreen,
|
|
63
|
+
closeFullScreen,
|
|
64
|
+
statusBarStyle,
|
|
65
|
+
...callbacks
|
|
66
|
+
}), [data, totalItems, aspectRatio, navigation.currentIndex, navigation.registerScrollFn, navigation.scrollToIndex, setCurrentIndex, fullScreen.isFullScreenOpen, fullScreen.hasFullScreen, fullScreen.registerFullScreen, openFullScreen, closeFullScreen, statusBarStyle, callbacks]);
|
|
67
|
+
}
|
|
68
|
+
//# sourceMappingURL=use-slider-state.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useCallback","useMemo","useImageAspectRatio","useSliderNavigation","useSliderFullScreen","useSliderCallbacks","useSliderState","data","initialIndex","imageAspectRatio","aspectRatioOverride","statusBarStyle","propCallbacks","firstImageSource","source","callbacks","aspectRatio","navigation","fullScreen","setCurrentIndex","setCurrentIndexRaw","setIsFullScreenOpen","onIndexChange","onIndexChangeDispatcher","onFullScreenChange","onFullScreenChangeDispatcher","totalItems","length","index","clampedIndex","Math","max","min","openFullScreen","closeFullScreen","currentIndex","registerScrollFn","scrollToIndex","isFullScreenOpen","hasFullScreen","registerFullScreen"],"sourceRoot":"../../../src","sources":["hooks/use-slider-state.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,OAAO,QAAQ,OAAO;AAG5C,SACIC,mBAAmB,EACnBC,mBAAmB,EACnBC,mBAAmB,EACnBC,kBAAkB,QACf,yBAAgB;AAEvB,OAAO,SAASC,cAAcA,CAAC;EAC3BC,IAAI;EACJC,YAAY;EACZC,gBAAgB,EAAEC,mBAAmB;EACrCC,cAAc,GAAG,MAAM;EACvB,GAAGC;AACgC,CAAC,EAAe;EACnD;EACA,MAAMC,gBAAgB,GAAGN,IAAI,GAAG,CAAC,CAAC,EAAEO,MAAM;;EAE1C;EACA,MAAMC,SAAS,GAAGV,kBAAkB,CAACO,aAAa,CAAC;EACnD,MAAMI,WAAW,GAAGd,mBAAmB,CAACW,gBAAgB,EAAEH,mBAAmB,CAAC;EAC9E,MAAMO,UAAU,GAAGd,mBAAmB,CAAC;IAAEK;EAAa,CAAC,CAAC;EACxD,MAAMU,UAAU,GAAGd,mBAAmB,CAAC,CAAC;;EAExC;EACA,MAAM;IAAEe,eAAe,EAAEC;EAAmB,CAAC,GAAGH,UAAU;EAC1D,MAAM;IAAEI;EAAoB,CAAC,GAAGH,UAAU;EAC1C,MAAM;IACFI,aAAa,EAAEC,uBAAuB;IACtCC,kBAAkB,EAAEC;EACxB,CAAC,GAAGV,SAAS;EAEb,MAAMW,UAAU,GAAGnB,IAAI,EAAEoB,MAAM,IAAI,CAAC;;EAEpC;EACA,MAAMR,eAAe,GAAGnB,WAAW,CAC9B4B,KAAa,IAAK;IACf,IAAIF,UAAU,KAAK,CAAC,EAAE;IACtB,MAAMG,YAAY,GAAGC,IAAI,CAACC,GAAG,CAAC,CAAC,EAAED,IAAI,CAACE,GAAG,CAACJ,KAAK,EAAEF,UAAU,GAAG,CAAC,CAAC,CAAC;IACjEN,kBAAkB,CAACS,YAAY,CAAC;IAChCN,uBAAuB,CAACM,YAAY,CAAC;EACzC,CAAC,EACD,CAACT,kBAAkB,EAAEG,uBAAuB,EAAEG,UAAU,CAC5D,CAAC;EAED,MAAMO,cAAc,GAAGjC,WAAW,CAAC,MAAM;IACrCqB,mBAAmB,CAAC,IAAI,CAAC;IACzBI,4BAA4B,CAAC,IAAI,CAAC;EACtC,CAAC,EAAE,CAACJ,mBAAmB,EAAEI,4BAA4B,CAAC,CAAC;EAEvD,MAAMS,eAAe,GAAGlC,WAAW,CAAC,MAAM;IACtCqB,mBAAmB,CAAC,KAAK,CAAC;IAC1BI,4BAA4B,CAAC,KAAK,CAAC;EACvC,CAAC,EAAE,CAACJ,mBAAmB,EAAEI,4BAA4B,CAAC,CAAC;EAEvD,OAAOxB,OAAO,CACV,OAAO;IACHM,IAAI;IACJmB,UAAU;IACV,GAAGV,WAAW;IACdmB,YAAY,EAAElB,UAAU,CAACkB,YAAY;IACrCC,gBAAgB,EAAEnB,UAAU,CAACmB,gBAAgB;IAC7CC,aAAa,EAAEpB,UAAU,CAACoB,aAAa;IACvClB,eAAe;IACfmB,gBAAgB,EAAEpB,UAAU,CAACoB,gBAAgB;IAC7CC,aAAa,EAAErB,UAAU,CAACqB,aAAa;IACvCC,kBAAkB,EAAEtB,UAAU,CAACsB,kBAAkB;IACjDP,cAAc;IACdC,eAAe;IACfvB,cAAc;IACd,GAAGI;EACP,CAAC,CAAC,EACF,CACIR,IAAI,EACJmB,UAAU,EACVV,WAAW,EACXC,UAAU,CAACkB,YAAY,EACvBlB,UAAU,CAACmB,gBAAgB,EAC3BnB,UAAU,CAACoB,aAAa,EACxBlB,eAAe,EACfD,UAAU,CAACoB,gBAAgB,EAC3BpB,UAAU,CAACqB,aAAa,EACxBrB,UAAU,CAACsB,kBAAkB,EAC7BP,cAAc,EACdC,eAAe,EACfvB,cAAc,EACdI,SAAS,CAEjB,CAAC;AACL","ignoreList":[]}
|
|
@@ -0,0 +1,32 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React from 'react';
|
|
4
|
+
import Svg, { Path } from 'react-native-svg';
|
|
5
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
6
|
+
function IconX({
|
|
7
|
+
size = 24,
|
|
8
|
+
color = '#1f2937',
|
|
9
|
+
stroke = 2,
|
|
10
|
+
...props
|
|
11
|
+
}) {
|
|
12
|
+
return /*#__PURE__*/_jsxs(Svg, {
|
|
13
|
+
width: size,
|
|
14
|
+
height: size,
|
|
15
|
+
viewBox: "0 0 24 24",
|
|
16
|
+
strokeWidth: stroke,
|
|
17
|
+
stroke: color,
|
|
18
|
+
fill: "none",
|
|
19
|
+
...props,
|
|
20
|
+
children: [/*#__PURE__*/_jsx(Path, {
|
|
21
|
+
stroke: "none",
|
|
22
|
+
d: "M0 0h24v24H0z",
|
|
23
|
+
fill: "none"
|
|
24
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
25
|
+
d: "M18 6l-12 12"
|
|
26
|
+
}), /*#__PURE__*/_jsx(Path, {
|
|
27
|
+
d: "M6 6l12 12"
|
|
28
|
+
})]
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
export { IconX };
|
|
32
|
+
//# sourceMappingURL=icon-x.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","Svg","Path","jsx","_jsx","jsxs","_jsxs","IconX","size","color","stroke","props","width","height","viewBox","strokeWidth","fill","children","d"],"sourceRoot":"../../../src","sources":["icons/icon-x.tsx"],"mappings":";;AAAA,OAAOA,KAAK,MAAM,OAAO;AACzB,OAAOC,GAAG,IAAIC,IAAI,QAAQ,kBAAkB;AAAC,SAAAC,GAAA,IAAAC,IAAA,EAAAC,IAAA,IAAAC,KAAA;AAG7C,SAASC,KAAKA,CAAC;EAAEC,IAAI,GAAG,EAAE;EAAEC,KAAK,GAAG,SAAS;EAAEC,MAAM,GAAG,CAAC;EAAE,GAAGC;AAAkB,CAAC,EAAE;EAC/E,oBACIL,KAAA,CAACL,GAAG;IACAW,KAAK,EAAEJ,IAAK;IACZK,MAAM,EAAEL,IAAK;IACbM,OAAO,EAAC,WAAW;IACnBC,WAAW,EAAEL,MAAO;IACpBA,MAAM,EAAED,KAAM;IACdO,IAAI,EAAC,MAAM;IAAA,GACPL,KAAK;IAAAM,QAAA,gBAETb,IAAA,CAACF,IAAI;MAACQ,MAAM,EAAC,MAAM;MAACQ,CAAC,EAAC,eAAe;MAACF,IAAI,EAAC;IAAM,CAAE,CAAC,eACpDZ,IAAA,CAACF,IAAI;MAACgB,CAAC,EAAC;IAAc,CAAE,CAAC,eACzBd,IAAA,CAACF,IAAI;MAACgB,CAAC,EAAC;IAAY,CAAE,CAAC;EAAA,CACtB,CAAC;AAEd;AAGA,SAASX,KAAK","ignoreList":[]}
|
package/lib/module/index.js
CHANGED
|
@@ -1,10 +1,5 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
import SimpleImageSlider from './SimpleImageSlider';
|
|
6
|
-
import FullScreenImageSlider from './FullScreenImageSlider';
|
|
7
|
-
import PinchToZoom from './PinchToZoom';
|
|
8
|
-
import PageCounter from './PageCounter';
|
|
9
|
-
export { SimpleImageSliderThemeProvider, useSimpleImageSliderTheme, BaseListImageSlider, SimpleImageSlider, FullScreenImageSlider, PinchToZoom, PageCounter };
|
|
3
|
+
export * from "./primitives/index.js";
|
|
4
|
+
export { useSlider } from "./context/slider-context.js";
|
|
10
5
|
//# sourceMappingURL=index.js.map
|
package/lib/module/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["useSlider"],"sourceRoot":"../../src","sources":["index.ts"],"mappings":";;AAAA,cAAc,uBAAc;AAE5B,SAASA,SAAS,QAAQ,6BAA0B","ignoreList":[]}
|
|
@@ -0,0 +1,202 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useCallback, useMemo } from 'react';
|
|
4
|
+
import { useWindowDimensions } from 'react-native';
|
|
5
|
+
import Animated, { cancelAnimation, useAnimatedReaction, useAnimatedStyle, useSharedValue, withTiming } from 'react-native-reanimated';
|
|
6
|
+
import { scheduleOnRN } from 'react-native-worklets';
|
|
7
|
+
import { Gesture, GestureDetector } from 'react-native-gesture-handler';
|
|
8
|
+
import * as Haptics from 'expo-haptics';
|
|
9
|
+
import { clamp } from "../utils/clamp.js";
|
|
10
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
11
|
+
const THROTTLE_MS = 50; // ~3 frames at 60fps
|
|
12
|
+
|
|
13
|
+
function PinchToZoom({
|
|
14
|
+
minimumZoomScale = 1,
|
|
15
|
+
maximumZoomScale = 8,
|
|
16
|
+
style: propStyle,
|
|
17
|
+
disabled,
|
|
18
|
+
onLayout,
|
|
19
|
+
onStatusChange,
|
|
20
|
+
onScaleChange,
|
|
21
|
+
onScaleReset,
|
|
22
|
+
children,
|
|
23
|
+
onDismiss
|
|
24
|
+
}) {
|
|
25
|
+
const {
|
|
26
|
+
height: windowHeight
|
|
27
|
+
} = useWindowDimensions();
|
|
28
|
+
const translationX = useSharedValue(0);
|
|
29
|
+
const translationY = useSharedValue(0);
|
|
30
|
+
const originX = useSharedValue(0);
|
|
31
|
+
const originY = useSharedValue(0);
|
|
32
|
+
const scale = useSharedValue(1);
|
|
33
|
+
const isPinching = useSharedValue(false);
|
|
34
|
+
const viewHeight = useSharedValue(0);
|
|
35
|
+
const viewWidth = useSharedValue(0);
|
|
36
|
+
const prevScale = useSharedValue(0);
|
|
37
|
+
const offsetScale = useSharedValue(0);
|
|
38
|
+
const prevTranslationX = useSharedValue(0);
|
|
39
|
+
const prevTranslationY = useSharedValue(0);
|
|
40
|
+
const isZoomedValue = useSharedValue(false);
|
|
41
|
+
const lastStatusUpdateTime = useSharedValue(0);
|
|
42
|
+
const pinchGesture = useMemo(() => {
|
|
43
|
+
let gesture = Gesture.Pinch().enabled(!disabled).onStart(() => {
|
|
44
|
+
'worklet';
|
|
45
|
+
|
|
46
|
+
cancelAnimation(translationX);
|
|
47
|
+
cancelAnimation(translationY);
|
|
48
|
+
cancelAnimation(scale);
|
|
49
|
+
prevScale.value = scale.value;
|
|
50
|
+
offsetScale.value = scale.value;
|
|
51
|
+
isZoomedValue.value = true;
|
|
52
|
+
if (onScaleChange) scheduleOnRN(onScaleChange);
|
|
53
|
+
}).onUpdate(e => {
|
|
54
|
+
'worklet';
|
|
55
|
+
|
|
56
|
+
if (e.numberOfPointers === 2) {
|
|
57
|
+
scale.value = Math.min(prevScale.value * e.scale, maximumZoomScale);
|
|
58
|
+
|
|
59
|
+
// reset the origin
|
|
60
|
+
if (!isPinching.value) {
|
|
61
|
+
isPinching.value = true;
|
|
62
|
+
originX.value = e.focalX;
|
|
63
|
+
originY.value = e.focalY;
|
|
64
|
+
prevTranslationX.value = translationX.value;
|
|
65
|
+
prevTranslationY.value = translationY.value;
|
|
66
|
+
offsetScale.value = scale.value;
|
|
67
|
+
}
|
|
68
|
+
if (isPinching.value) {
|
|
69
|
+
// translate the image to the focal point as we're zooming
|
|
70
|
+
translationX.value = clamp(prevTranslationX.value + -1 * ((scale.value - offsetScale.value) * (originX.value - viewWidth.value / 2)), -viewWidth.value * (scale.value - minimumZoomScale) / 2, viewWidth.value * (scale.value - minimumZoomScale) / 2);
|
|
71
|
+
translationY.value = clamp(prevTranslationY.value + -1 * ((scale.value - offsetScale.value) * (originY.value - viewHeight.value / 2)), -viewHeight.value * (scale.value - minimumZoomScale) / 2, viewHeight.value * (scale.value - minimumZoomScale) / 2);
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
}).onEnd(() => {
|
|
75
|
+
'worklet';
|
|
76
|
+
|
|
77
|
+
isPinching.value = false;
|
|
78
|
+
if (scale.value < minimumZoomScale / 2 && prevScale.value <= minimumZoomScale) {
|
|
79
|
+
if (onDismiss) {
|
|
80
|
+
scheduleOnRN(onDismiss);
|
|
81
|
+
}
|
|
82
|
+
} else if (scale.value < minimumZoomScale) {
|
|
83
|
+
scheduleOnRN(Haptics.impactAsync, Haptics.ImpactFeedbackStyle.Light);
|
|
84
|
+
translationX.value = withTiming(0);
|
|
85
|
+
translationY.value = withTiming(0);
|
|
86
|
+
scale.value = withTiming(minimumZoomScale);
|
|
87
|
+
isZoomedValue.value = false;
|
|
88
|
+
if (onScaleReset) {
|
|
89
|
+
scheduleOnRN(onScaleReset);
|
|
90
|
+
}
|
|
91
|
+
}
|
|
92
|
+
prevScale.value = scale.value;
|
|
93
|
+
prevTranslationX.value = translationX.value;
|
|
94
|
+
prevTranslationY.value = translationY.value;
|
|
95
|
+
});
|
|
96
|
+
return gesture;
|
|
97
|
+
}, [disabled, translationX, translationY, scale, prevScale, offsetScale, onScaleChange, maximumZoomScale, isPinching, originX, originY, prevTranslationX, prevTranslationY, viewWidth, viewHeight, minimumZoomScale, onDismiss, onScaleReset, isZoomedValue]);
|
|
98
|
+
const panGesture = useMemo(() => {
|
|
99
|
+
return Gesture.Pan().enabled(!disabled).onStart(() => {
|
|
100
|
+
'worklet';
|
|
101
|
+
|
|
102
|
+
cancelAnimation(translationX);
|
|
103
|
+
cancelAnimation(translationY);
|
|
104
|
+
prevTranslationX.value = translationX.value;
|
|
105
|
+
prevTranslationY.value = translationY.value;
|
|
106
|
+
}).onUpdate(e => {
|
|
107
|
+
'worklet';
|
|
108
|
+
|
|
109
|
+
if (prevScale.value <= minimumZoomScale) {
|
|
110
|
+
translationX.value = prevTranslationX.value + e.translationX;
|
|
111
|
+
translationY.value = prevTranslationY.value + e.translationY;
|
|
112
|
+
} else {
|
|
113
|
+
translationX.value = clamp(prevTranslationX.value + e.translationX, -viewWidth.value * (scale.value - minimumZoomScale) / 2, viewWidth.value * (scale.value - minimumZoomScale) / 2);
|
|
114
|
+
translationY.value = clamp(prevTranslationY.value + e.translationY, -viewHeight.value * (scale.value - minimumZoomScale) / 2, viewHeight.value * (scale.value - minimumZoomScale) / 2);
|
|
115
|
+
}
|
|
116
|
+
}).onEnd(() => {
|
|
117
|
+
'worklet';
|
|
118
|
+
|
|
119
|
+
if (scale.value <= minimumZoomScale && prevScale.value <= minimumZoomScale) {
|
|
120
|
+
if (Math.abs(translationX.value) > viewWidth.value / 2 || Math.abs(translationY.value) > viewHeight.value / 2) {
|
|
121
|
+
if (onDismiss) {
|
|
122
|
+
scheduleOnRN(onDismiss);
|
|
123
|
+
}
|
|
124
|
+
} else {
|
|
125
|
+
scheduleOnRN(Haptics.impactAsync, Haptics.ImpactFeedbackStyle.Light);
|
|
126
|
+
translationX.value = withTiming(0);
|
|
127
|
+
translationY.value = withTiming(0);
|
|
128
|
+
}
|
|
129
|
+
} else if (viewHeight.value * (scale.value - minimumZoomScale) <= windowHeight) {
|
|
130
|
+
translationX.value = withTiming(clamp(translationX.value, -viewWidth.value * (scale.value - minimumZoomScale) / 2, viewWidth.value * (scale.value - minimumZoomScale) / 2));
|
|
131
|
+
translationY.value = withTiming(clamp(translationY.value, -viewHeight.value * (scale.value - minimumZoomScale) / 2, viewHeight.value * (scale.value - minimumZoomScale) / 2));
|
|
132
|
+
}
|
|
133
|
+
});
|
|
134
|
+
}, [disabled, minimumZoomScale, onDismiss, prevScale, prevTranslationX, prevTranslationY, scale, windowHeight, translationX, translationY, viewHeight, viewWidth]);
|
|
135
|
+
const tapGesture = useMemo(() => Gesture.Tap().enabled(!disabled).numberOfTaps(2).onStart(() => {
|
|
136
|
+
'worklet';
|
|
137
|
+
|
|
138
|
+
if (scale.value > minimumZoomScale) {
|
|
139
|
+
translationX.value = withTiming(0);
|
|
140
|
+
translationY.value = withTiming(0);
|
|
141
|
+
scale.value = withTiming(minimumZoomScale);
|
|
142
|
+
isZoomedValue.value = false;
|
|
143
|
+
if (onScaleReset) {
|
|
144
|
+
scheduleOnRN(onScaleReset);
|
|
145
|
+
}
|
|
146
|
+
} else {
|
|
147
|
+
scale.value = withTiming(maximumZoomScale / 2);
|
|
148
|
+
isZoomedValue.value = true;
|
|
149
|
+
if (onScaleChange) {
|
|
150
|
+
scheduleOnRN(onScaleChange);
|
|
151
|
+
}
|
|
152
|
+
}
|
|
153
|
+
}), [disabled, maximumZoomScale, minimumZoomScale, onScaleChange, onScaleReset, scale, translationX, translationY, isZoomedValue]);
|
|
154
|
+
const compositeGesture = useMemo(() => {
|
|
155
|
+
return Gesture.Exclusive(Gesture.Simultaneous(pinchGesture, panGesture), tapGesture);
|
|
156
|
+
}, [panGesture, pinchGesture, tapGesture]);
|
|
157
|
+
useAnimatedReaction(() => ({
|
|
158
|
+
scale: scale.value,
|
|
159
|
+
translationX: translationX.value,
|
|
160
|
+
translationY: translationY.value
|
|
161
|
+
}), current => {
|
|
162
|
+
'worklet';
|
|
163
|
+
|
|
164
|
+
const now = Date.now();
|
|
165
|
+
if (onStatusChange && now - lastStatusUpdateTime.value >= THROTTLE_MS) {
|
|
166
|
+
lastStatusUpdateTime.value = now;
|
|
167
|
+
scheduleOnRN(onStatusChange, {
|
|
168
|
+
scale: current.scale,
|
|
169
|
+
translation: {
|
|
170
|
+
x: current.translationX,
|
|
171
|
+
y: current.translationY
|
|
172
|
+
}
|
|
173
|
+
});
|
|
174
|
+
}
|
|
175
|
+
}, [onStatusChange]);
|
|
176
|
+
const style = useAnimatedStyle(() => {
|
|
177
|
+
return {
|
|
178
|
+
transform: [{
|
|
179
|
+
translateX: translationX.value
|
|
180
|
+
}, {
|
|
181
|
+
translateY: translationY.value
|
|
182
|
+
}, {
|
|
183
|
+
scale: scale.value
|
|
184
|
+
}]
|
|
185
|
+
};
|
|
186
|
+
}, []);
|
|
187
|
+
const internalOnLayout = useCallback(e => {
|
|
188
|
+
viewHeight.value = e.nativeEvent.layout.height;
|
|
189
|
+
viewWidth.value = e.nativeEvent.layout.width;
|
|
190
|
+
onLayout?.(e);
|
|
191
|
+
}, [viewHeight, viewWidth, onLayout]);
|
|
192
|
+
return /*#__PURE__*/_jsx(GestureDetector, {
|
|
193
|
+
gesture: compositeGesture,
|
|
194
|
+
children: /*#__PURE__*/_jsx(Animated.View, {
|
|
195
|
+
onLayout: internalOnLayout,
|
|
196
|
+
style: [style, propStyle],
|
|
197
|
+
children: children
|
|
198
|
+
})
|
|
199
|
+
});
|
|
200
|
+
}
|
|
201
|
+
export { PinchToZoom };
|
|
202
|
+
//# sourceMappingURL=pinch-to-zoom.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useCallback","useMemo","useWindowDimensions","Animated","cancelAnimation","useAnimatedReaction","useAnimatedStyle","useSharedValue","withTiming","scheduleOnRN","Gesture","GestureDetector","Haptics","clamp","jsx","_jsx","THROTTLE_MS","PinchToZoom","minimumZoomScale","maximumZoomScale","style","propStyle","disabled","onLayout","onStatusChange","onScaleChange","onScaleReset","children","onDismiss","height","windowHeight","translationX","translationY","originX","originY","scale","isPinching","viewHeight","viewWidth","prevScale","offsetScale","prevTranslationX","prevTranslationY","isZoomedValue","lastStatusUpdateTime","pinchGesture","gesture","Pinch","enabled","onStart","value","onUpdate","e","numberOfPointers","Math","min","focalX","focalY","onEnd","impactAsync","ImpactFeedbackStyle","Light","panGesture","Pan","abs","tapGesture","Tap","numberOfTaps","compositeGesture","Exclusive","Simultaneous","current","now","Date","translation","x","y","transform","translateX","translateY","internalOnLayout","nativeEvent","layout","width","View"],"sourceRoot":"../../../src","sources":["internal/pinch-to-zoom.tsx"],"mappings":"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","ignoreList":[]}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
export { Slider } from "./slider.js";
|
|
4
|
+
export { SliderContent } from "./slider-content.js";
|
|
5
|
+
export { SliderPageCounter } from "./slider-page-counter.js";
|
|
6
|
+
export { SliderCorner } from "./slider-corner.js";
|
|
7
|
+
export { SliderFullScreen } from "./slider-full-screen.js";
|
|
8
|
+
export { SliderCloseButton } from "./slider-close-button.js";
|
|
9
|
+
export { SliderDescription } from "./slider-description.js";
|
|
10
|
+
export { SliderEmpty } from "./slider-empty.js";
|
|
11
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["Slider","SliderContent","SliderPageCounter","SliderCorner","SliderFullScreen","SliderCloseButton","SliderDescription","SliderEmpty"],"sourceRoot":"../../../src","sources":["primitives/index.ts"],"mappings":";;AAAA,SAASA,MAAM,QAAQ,aAAU;AACjC,SAASC,aAAa,QAAQ,qBAAkB;AAChD,SAASC,iBAAiB,QAAQ,0BAAuB;AACzD,SAASC,YAAY,QAAQ,oBAAiB;AAC9C,SAASC,gBAAgB,QAAQ,yBAAsB;AACvD,SAASC,iBAAiB,QAAQ,0BAAuB;AACzD,SAASC,iBAAiB,QAAQ,yBAAsB;AACxD,SAASC,WAAW,QAAQ,mBAAgB","ignoreList":[]}
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import React, { useMemo } from 'react';
|
|
4
|
+
import { StyleSheet, TouchableOpacity } from 'react-native';
|
|
5
|
+
import { useSafeAreaInsets } from 'react-native-safe-area-context';
|
|
6
|
+
import { useSliderContext } from "../context/slider-context.js";
|
|
7
|
+
import { IconX } from "../icons/icon-x.js";
|
|
8
|
+
import { Z_INDEX_OVERLAY, SAFE_AREA_OFFSET } from "../constants/layout.js";
|
|
9
|
+
import { jsx as _jsx } from "react/jsx-runtime";
|
|
10
|
+
function SliderCloseButton({
|
|
11
|
+
children,
|
|
12
|
+
style,
|
|
13
|
+
accessibilityLabel = 'Close full screen',
|
|
14
|
+
accessibilityHint = 'Closes the full screen view'
|
|
15
|
+
}) {
|
|
16
|
+
const {
|
|
17
|
+
closeFullScreen
|
|
18
|
+
} = useSliderContext();
|
|
19
|
+
const safeAreaInsets = useSafeAreaInsets();
|
|
20
|
+
const positionStyles = useMemo(() => StyleSheet.create({
|
|
21
|
+
closeButton: {
|
|
22
|
+
position: 'absolute',
|
|
23
|
+
zIndex: Z_INDEX_OVERLAY,
|
|
24
|
+
top: safeAreaInsets.top,
|
|
25
|
+
right: safeAreaInsets.right + SAFE_AREA_OFFSET
|
|
26
|
+
}
|
|
27
|
+
}), [safeAreaInsets.right, safeAreaInsets.top]);
|
|
28
|
+
return /*#__PURE__*/_jsx(TouchableOpacity, {
|
|
29
|
+
style: [positionStyles.closeButton, style],
|
|
30
|
+
onPress: closeFullScreen,
|
|
31
|
+
accessibilityRole: "button",
|
|
32
|
+
accessibilityLabel: accessibilityLabel,
|
|
33
|
+
accessibilityHint: accessibilityHint,
|
|
34
|
+
children: children ?? /*#__PURE__*/_jsx(IconX, {
|
|
35
|
+
color: "#FFFFFF"
|
|
36
|
+
})
|
|
37
|
+
});
|
|
38
|
+
}
|
|
39
|
+
export { SliderCloseButton };
|
|
40
|
+
//# sourceMappingURL=slider-close-button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["React","useMemo","StyleSheet","TouchableOpacity","useSafeAreaInsets","useSliderContext","IconX","Z_INDEX_OVERLAY","SAFE_AREA_OFFSET","jsx","_jsx","SliderCloseButton","children","style","accessibilityLabel","accessibilityHint","closeFullScreen","safeAreaInsets","positionStyles","create","closeButton","position","zIndex","top","right","onPress","accessibilityRole","color"],"sourceRoot":"../../../src","sources":["primitives/slider-close-button.tsx"],"mappings":";;AAAA,OAAOA,KAAK,IAAIC,OAAO,QAAQ,OAAO;AACtC,SAASC,UAAU,EAAEC,gBAAgB,QAAQ,cAAc;AAE3D,SAASC,iBAAiB,QAAQ,gCAAgC;AAClE,SAASC,gBAAgB,QAAQ,8BAA2B;AAC5D,SAASC,KAAK,QAAQ,oBAAiB;AACvC,SAASC,eAAe,EAAEC,gBAAgB,QAAQ,wBAAqB;AAAC,SAAAC,GAAA,IAAAC,IAAA;AASxE,SAASC,iBAAiBA,CAAC;EACvBC,QAAQ;EACRC,KAAK;EACLC,kBAAkB,GAAG,mBAAmB;EACxCC,iBAAiB,GAAG;AACA,CAAC,EAAE;EACvB,MAAM;IAAEC;EAAgB,CAAC,GAAGX,gBAAgB,CAAC,CAAC;EAC9C,MAAMY,cAAc,GAAGb,iBAAiB,CAAC,CAAC;EAE1C,MAAMc,cAAc,GAAGjB,OAAO,CAC1B,MACIC,UAAU,CAACiB,MAAM,CAAC;IACdC,WAAW,EAAE;MACTC,QAAQ,EAAE,UAAU;MACpBC,MAAM,EAAEf,eAAe;MACvBgB,GAAG,EAAEN,cAAc,CAACM,GAAG;MACvBC,KAAK,EAAEP,cAAc,CAACO,KAAK,GAAGhB;IAClC;EACJ,CAAC,CAAC,EACN,CAACS,cAAc,CAACO,KAAK,EAAEP,cAAc,CAACM,GAAG,CAC7C,CAAC;EAED,oBACIb,IAAA,CAACP,gBAAgB;IACbU,KAAK,EAAE,CAACK,cAAc,CAACE,WAAW,EAAEP,KAAK,CAAE;IAC3CY,OAAO,EAAET,eAAgB;IACzBU,iBAAiB,EAAC,QAAQ;IAC1BZ,kBAAkB,EAAEA,kBAAmB;IACvCC,iBAAiB,EAAEA,iBAAkB;IAAAH,QAAA,EAEpCA,QAAQ,iBAAIF,IAAA,CAACJ,KAAK;MAACqB,KAAK,EAAC;IAAS,CAAE;EAAC,CACxB,CAAC;AAE3B;AAGA,SAAShB,iBAAiB","ignoreList":[]}
|