react-native-gesture-image-viewer 1.2.2 → 1.3.0

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 CHANGED
@@ -193,7 +193,7 @@ function App() {
193
193
 
194
194
  #### Content Components
195
195
 
196
- You can inject various types of content components like `expo-image`, `FastImage`, etc., through the `renderImage` prop to use gestures.
196
+ You can inject various types of content components like `expo-image`, `FastImage`, etc., through the `renderItem` prop to use gestures.
197
197
 
198
198
  ```tsx
199
199
  import { GestureViewer } from 'react-native-gesture-image-viewer';
@@ -213,15 +213,24 @@ function App() {
213
213
  }
214
214
  ```
215
215
 
216
- ### External Control API
216
+ ### useGestureViewerController
217
217
 
218
- `react-native-gesture-image-viewer` provides powerful hooks for programmatic control from buttons or other components.
218
+ You can programmatically control the `GestureViewer` using the `useGestureViewerController` hook.
219
219
 
220
220
  ```tsx
221
221
  import { GestureViewer, useGestureViewerController } from 'react-native-gesture-image-viewer';
222
222
 
223
223
  function App() {
224
- const { goToIndex, goToPrevious, goToNext, currentIndex, totalCount } = useGestureViewerController();
224
+ const {
225
+ goToIndex,
226
+ goToPrevious,
227
+ goToNext,
228
+ currentIndex,
229
+ totalCount,
230
+ zoomIn,
231
+ zoomOut,
232
+ resetZoom
233
+ } = useGestureViewerController();
225
234
 
226
235
  return (
227
236
  <View>
@@ -229,16 +238,14 @@ function App() {
229
238
  data={images}
230
239
  renderItem={renderImage}
231
240
  />
232
- <View
233
- style={{
234
- position: 'absolute',
235
- bottom: 40,
236
- left: 0,
237
- right: 0,
238
- gap: 10,
239
- flexDirection: 'column',
240
- }}
241
- >
241
+ {/* Zoom Controls */}
242
+ <View>
243
+ <Feather.Button name="zoom-in" onPress={() => zoomIn(0.25)} />
244
+ <Feather.Button name="zoom-out" onPress={() => zoomOut(0.25)} />
245
+ <Feather.Button name="refresh-cw" onPress={() => resetZoom()} />
246
+ </View>
247
+ {/* Navigation Controls */}
248
+ <View>
242
249
  <Feather.Button name="chevron-left" onPress={goToPrevious} />
243
250
  <Button title="Jump to index 2" onPress={() => goToIndex(2)} />
244
251
  <Feather.Button name="chevron-right" onPress={goToNext} />
@@ -249,6 +256,33 @@ function App() {
249
256
  }
250
257
  ```
251
258
 
259
+ ### API Reference
260
+
261
+ | Property | Description | Type | Default |
262
+ |:---------|:------------|:-----|:-------:|
263
+ | `goToIndex` | Navigate to a specific index. | `(index: number) => void` | - |
264
+ | `goToPrevious` | Navigate to the previous item. | `() => void` | - |
265
+ | `goToNext` | Navigate to the next item. | `() => void` | - |
266
+ | `currentIndex` | The index of the currently displayed item. | `number` | `0` |
267
+ | `totalCount` | The total number of items. | `number` | `0` |
268
+ | `zoomIn` | Zoom in by the specified multiplier. | `(multiplier?: number) => void` | `0.25` |
269
+ | `zoomOut` | Zoom out by the specified multiplier. | `(multiplier?: number) => void` | `0.25` |
270
+ | `resetZoom` | Reset zoom to the specified scale. | `(scale?: number) => void` | `1` |
271
+
272
+ ### Parameters
273
+
274
+ #### `zoomIn(multiplier?)`
275
+ - **multiplier**: The multiplier for zooming in (range: `0.01 ~ 1`)
276
+ - Example: `zoomIn(0.5)` → Zoom in by an additional 50% of the current scale
277
+
278
+ #### `zoomOut(multiplier?)`
279
+ - **multiplier**: The multiplier for zooming out (range: `0.01 ~ 1`)
280
+ - Example: `zoomOut(0.3)` → Zoom out by dividing the current scale by 1.3
281
+
282
+ #### `resetZoom(scale?)`
283
+ - **scale**: The scale value to reset to
284
+ - Example: `resetZoom(1.5)` → Reset to 1.5x scale
285
+
252
286
  ### Style Customization
253
287
 
254
288
  You can customize the styling of `GestureViewer`.
@@ -1,18 +1,19 @@
1
1
  "use strict";
2
2
 
3
+ import { withTiming } from 'react-native-reanimated';
4
+ import { createBoundsConstraint } from "./utils.js";
3
5
  class GestureViewerManager {
4
6
  currentIndex = 0;
5
7
  dataLength = 0;
6
8
  width = 0;
9
+ height = 0;
10
+ scale = null;
11
+ translateX = null;
12
+ translateY = null;
13
+ maxZoomScale = 2;
7
14
  listRef = null;
8
15
  enableSwipeGesture = true;
9
16
  listeners = new Set();
10
-
11
- // private updateState(newState: Partial<any>) {
12
- // Object.assign(this, newState);
13
- // this.notifyListeners();
14
- // }
15
-
16
17
  notifyListeners() {
17
18
  const state = this.getState();
18
19
  this.listeners.forEach(listener => listener(state));
@@ -32,6 +33,9 @@ class GestureViewerManager {
32
33
  setWidth(width) {
33
34
  this.width = width;
34
35
  }
36
+ setHeight(height) {
37
+ this.height = height;
38
+ }
35
39
  setListRef(ref) {
36
40
  this.listRef = ref;
37
41
  }
@@ -46,9 +50,85 @@ class GestureViewerManager {
46
50
  this.currentIndex = index;
47
51
  }
48
52
  }
53
+ setZoomSharedValues(scale, translateX, translateY, maxZoomScale) {
54
+ this.scale = scale;
55
+ this.translateX = translateX;
56
+ this.translateY = translateY;
57
+ this.maxZoomScale = maxZoomScale;
58
+ }
49
59
  notifyStateChange() {
50
60
  this.notifyListeners();
51
61
  }
62
+
63
+ /**
64
+ * @param multiplier - The multiplier to zoom in.
65
+ * @range 0.01 - 1
66
+ * @default 0.25
67
+ */
68
+ zoomIn = (multiplier = 0.25) => {
69
+ if (!this.scale || !this.translateX || !this.translateY || multiplier < 0.01 || multiplier > 1) {
70
+ return;
71
+ }
72
+ const nextScale = Math.min(this.scale.value * (1 + multiplier), this.maxZoomScale);
73
+ this.scale.value = withTiming(nextScale);
74
+ const {
75
+ translateX,
76
+ translateY
77
+ } = createBoundsConstraint({
78
+ width: this.width,
79
+ height: this.height
80
+ })({
81
+ translateX: this.translateX.value,
82
+ translateY: this.translateY.value,
83
+ scale: nextScale
84
+ });
85
+ this.translateX.value = withTiming(translateX);
86
+ this.translateY.value = withTiming(translateY);
87
+ };
88
+
89
+ /**
90
+ * @param multiplier - The multiplier to zoom out.
91
+ * @range 0.01 - 1
92
+ * @default 0.25
93
+ */
94
+ zoomOut = (multiplier = 0.25) => {
95
+ if (!this.scale || !this.translateX || !this.translateY || multiplier < 0.01 || multiplier > 1) {
96
+ return;
97
+ }
98
+ const nextScale = Math.max(this.scale.value / (1 + multiplier), 1);
99
+ this.scale.value = withTiming(nextScale);
100
+ if (nextScale === 1) {
101
+ this.translateX.value = withTiming(0);
102
+ this.translateY.value = withTiming(0);
103
+ return;
104
+ }
105
+ const {
106
+ translateX,
107
+ translateY
108
+ } = createBoundsConstraint({
109
+ width: this.width,
110
+ height: this.height
111
+ })({
112
+ translateX: this.translateX.value,
113
+ translateY: this.translateY.value,
114
+ scale: nextScale
115
+ });
116
+ this.translateX.value = withTiming(translateX);
117
+ this.translateY.value = withTiming(translateY);
118
+ };
119
+
120
+ /**
121
+ * @param scale - The scale to reset to.
122
+ * @default 1
123
+ */
124
+ resetZoom = (scale = 1) => {
125
+ if (!this.scale || !this.translateX || !this.translateY || scale <= 0 || scale > this.maxZoomScale) {
126
+ return;
127
+ }
128
+ this.scale.value = withTiming(scale);
129
+ this.translateX.value = withTiming(0);
130
+ this.translateY.value = withTiming(0);
131
+ };
52
132
  goToIndex = index => {
53
133
  if (index < 0 || index >= this.dataLength || !this.enableSwipeGesture || !this.listRef) {
54
134
  return;
@@ -83,6 +163,10 @@ class GestureViewerManager {
83
163
  this.enableSwipeGesture = true;
84
164
  this.currentIndex = 0;
85
165
  this.dataLength = 0;
166
+ this.maxZoomScale = 2;
167
+ this.scale = null;
168
+ this.translateX = null;
169
+ this.translateY = null;
86
170
  }
87
171
  }
88
172
  export default GestureViewerManager;
@@ -1 +1 @@
1
- {"version":3,"names":["GestureViewerManager","currentIndex","dataLength","width","listRef","enableSwipeGesture","listeners","Set","notifyListeners","state","getState","forEach","listener","subscribe","add","delete","setWidth","setListRef","ref","setDataLength","length","setEnableSwipeGesture","enabled","setCurrentIndex","index","notifyStateChange","goToIndex","scrollToIndex","animated","scrollTo","x","goToPrevious","goToNext","cleanUp","clear"],"sourceRoot":"../../src","sources":["GestureViewerManager.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["withTiming","createBoundsConstraint","GestureViewerManager","currentIndex","dataLength","width","height","scale","translateX","translateY","maxZoomScale","listRef","enableSwipeGesture","listeners","Set","notifyListeners","state","getState","forEach","listener","subscribe","add","delete","setWidth","setHeight","setListRef","ref","setDataLength","length","setEnableSwipeGesture","enabled","setCurrentIndex","index","setZoomSharedValues","notifyStateChange","zoomIn","multiplier","nextScale","Math","min","value","zoomOut","max","resetZoom","goToIndex","scrollToIndex","animated","scrollTo","x","goToPrevious","goToNext","cleanUp","clear"],"sourceRoot":"../../src","sources":["GestureViewerManager.ts"],"mappings":"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","ignoreList":[]}
@@ -5,6 +5,7 @@ import { InteractionManager, useWindowDimensions } from 'react-native';
5
5
  import { Gesture } from 'react-native-gesture-handler';
6
6
  import { Easing, interpolate, runOnJS, useAnimatedReaction, useAnimatedStyle, useSharedValue, withSpring, withTiming } from 'react-native-reanimated';
7
7
  import { registry } from "./GestureViewerRegistry.js";
8
+ import { createBoundsConstraint } from "./utils.js";
8
9
  export const useGestureViewer = ({
9
10
  data,
10
11
  initialIndex = 0,
@@ -44,22 +45,10 @@ export const useGestureViewer = ({
44
45
  const backdropOpacity = useSharedValue(1);
45
46
  const listRef = useRef(null);
46
47
  const dataLength = data?.length || 0;
47
- const constrainToBounds = useCallback((translateX, translateY, scale) => {
48
- 'worklet';
49
-
50
- if (scale <= 1) {
51
- return {
52
- x: translateX,
53
- y: translateY
54
- };
55
- }
56
- const maxTranslateX = (width * scale - width) / 2;
57
- const maxTranslateY = (screenHeight * scale - screenHeight) / 2;
58
- return {
59
- x: Math.max(-maxTranslateX, Math.min(maxTranslateX, translateX)),
60
- y: Math.max(-maxTranslateY, Math.min(maxTranslateY, translateY))
61
- };
62
- }, [width, screenHeight]);
48
+ const constrainTranslation = useMemo(() => createBoundsConstraint({
49
+ width,
50
+ height: screenHeight
51
+ }), [width, screenHeight]);
63
52
  useAnimatedReaction(() => scale.value, currentScale => {
64
53
  runOnJS(setIsZoomed)(currentScale > 1);
65
54
  });
@@ -91,8 +80,10 @@ export const useGestureViewer = ({
91
80
  manager.setEnableSwipeGesture(enableSwipeGesture);
92
81
  manager.setCurrentIndex(initialIndex);
93
82
  manager.setWidth(width + itemSpacing);
83
+ manager.setHeight(screenHeight);
84
+ manager.setZoomSharedValues(scale, translateX, translateY, maxZoomScale);
94
85
  manager.notifyStateChange();
95
- }, [dataLength, enableSwipeGesture, initialIndex, manager, width, itemSpacing]);
86
+ }, [dataLength, enableSwipeGesture, initialIndex, manager, width, itemSpacing, maxZoomScale, scale, screenHeight, translateX, translateY]);
96
87
  useEffect(() => {
97
88
  if (!manager || !listRef.current) {
98
89
  return;
@@ -169,30 +160,45 @@ export const useGestureViewer = ({
169
160
  initialTranslateY.value = translateY.value;
170
161
  }).onUpdate(event => {
171
162
  const newScale = startScale.value * event.scale;
172
- const deltaScale = newScale - startScale.value;
173
- const centerX = event.focalX - width / 2;
174
- const centerY = event.focalY - screenHeight / 2;
175
163
  scale.value = newScale;
176
- // NOTE 새로운 이동값 = 기존 이동값 - (중심점 거리 × 스케일 변화량) / 원래 스케일 (중심점이 화면 중심에서 멀수록, 확대 배율이 클수록 더 많이 이동)
177
- const newTranslateX = initialTranslateX.value - centerX * deltaScale / startScale.value;
178
- const newTranslateY = initialTranslateY.value - centerY * deltaScale / startScale.value;
179
- const constrained = constrainToBounds(newTranslateX, newTranslateY, newScale);
180
164
  if (newScale <= 1) {
181
165
  translateX.value = withTiming(0);
182
166
  translateY.value = withTiming(0);
183
167
  return;
184
168
  }
185
- translateX.value = constrained.x;
186
- translateY.value = constrained.y;
169
+ const deltaScale = newScale - startScale.value;
170
+ const centerX = event.focalX - width / 2;
171
+ const centerY = event.focalY - screenHeight / 2;
172
+
173
+ // NOTE 새로운 이동값 = 기존 이동값 - (중심점 거리 × 스케일 변화량) / 원래 스케일 (중심점이 화면 중심에서 멀수록, 확대 배율이 클수록 더 많이 이동)
174
+ const newTranslateX = initialTranslateX.value - centerX * deltaScale / startScale.value;
175
+ const newTranslateY = initialTranslateY.value - centerY * deltaScale / startScale.value;
176
+ const {
177
+ translateX: constrainedTranslateX,
178
+ translateY: constrainedTranslateY
179
+ } = constrainTranslation({
180
+ translateX: newTranslateX,
181
+ translateY: newTranslateY,
182
+ scale: newScale
183
+ });
184
+ translateX.value = constrainedTranslateX;
185
+ translateY.value = constrainedTranslateY;
187
186
  }).onEnd(() => {
188
187
  if (scale.value > maxZoomScale) {
189
188
  scale.value = withTiming(maxZoomScale, {
190
189
  duration: 300,
191
190
  easing: Easing.bezier(0.25, 0.1, 0.25, 1.0)
192
191
  });
193
- const constrained = constrainToBounds(translateX.value, translateY.value, maxZoomScale);
194
- translateX.value = withTiming(constrained.x);
195
- translateY.value = withTiming(constrained.y);
192
+ const {
193
+ translateX: constrainedTranslateX,
194
+ translateY: constrainedTranslateY
195
+ } = constrainTranslation({
196
+ translateX: translateX.value,
197
+ translateY: translateY.value,
198
+ scale: maxZoomScale
199
+ });
200
+ translateX.value = withTiming(constrainedTranslateX);
201
+ translateY.value = withTiming(constrainedTranslateY);
196
202
  return;
197
203
  }
198
204
  if (scale.value < 1) {
@@ -206,11 +212,18 @@ export const useGestureViewer = ({
206
212
  initialTranslateY.value = withTiming(0);
207
213
  return;
208
214
  }
209
- const finalConstrained = constrainToBounds(translateX.value, translateY.value, scale.value);
210
- translateX.value = withTiming(finalConstrained.x);
211
- translateY.value = withTiming(finalConstrained.y);
215
+ const {
216
+ translateX: constrainedTranslateX,
217
+ translateY: constrainedTranslateY
218
+ } = constrainTranslation({
219
+ translateX: translateX.value,
220
+ translateY: translateY.value,
221
+ scale: scale.value
222
+ });
223
+ translateX.value = withTiming(constrainedTranslateX);
224
+ translateY.value = withTiming(constrainedTranslateY);
212
225
  });
213
- }, [scale, enableZoomGesture, maxZoomScale, translateX, translateY, startScale, initialTranslateX, initialTranslateY, width, screenHeight, constrainToBounds]);
226
+ }, [scale, enableZoomGesture, maxZoomScale, translateX, translateY, startScale, initialTranslateX, initialTranslateY, width, screenHeight, constrainTranslation]);
214
227
  const zoomPanGesture = useMemo(() => {
215
228
  return Gesture.Pan().enabled(enableZoomPanGesture && isZoomed).activeCursor('grabbing').averageTouches(true).onBegin(() => {
216
229
  initialTranslateX.value = translateX.value;
@@ -219,12 +232,19 @@ export const useGestureViewer = ({
219
232
  if (scale.value > 1) {
220
233
  const newTranslateX = initialTranslateX.value + event.translationX;
221
234
  const newTranslateY = initialTranslateY.value + event.translationY;
222
- const constrained = constrainToBounds(newTranslateX, newTranslateY, scale.value);
223
- translateX.value = constrained.x;
224
- translateY.value = constrained.y;
235
+ const {
236
+ translateX: constrainedTranslateX,
237
+ translateY: constrainedTranslateY
238
+ } = constrainTranslation({
239
+ translateX: newTranslateX,
240
+ translateY: newTranslateY,
241
+ scale: scale.value
242
+ });
243
+ translateX.value = constrainedTranslateX;
244
+ translateY.value = constrainedTranslateY;
225
245
  }
226
246
  });
227
- }, [translateX, translateY, enableZoomPanGesture, isZoomed, scale, initialTranslateX, initialTranslateY, constrainToBounds]);
247
+ }, [translateX, translateY, enableZoomPanGesture, isZoomed, scale, initialTranslateX, initialTranslateY, constrainTranslation]);
228
248
  const doubleTapGesture = useMemo(() => {
229
249
  return Gesture.Tap().enabled(enableDoubleTapGesture).numberOfTaps(2).onEnd(event => {
230
250
  const nextScale = scale.value > 1 ? 1 : maxZoomScale;
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","InteractionManager","useWindowDimensions","Gesture","Easing","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","registry","useGestureViewer","data","initialIndex","onIndexChange","onDismiss","width","customWidth","dismissThreshold","resistance","animateBackdrop","enableDismissGesture","enableSwipeGesture","enableZoomGesture","enableDoubleTapGesture","enableZoomPanGesture","maxZoomScale","itemSpacing","useSnap","id","screenWidth","height","screenHeight","isZoomed","setIsZoomed","currentIndex","setCurrentIndex","manager","setManager","unsubscribeRef","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","backdropOpacity","listRef","dataLength","length","constrainToBounds","x","y","maxTranslateX","maxTranslateY","Math","max","min","value","currentScale","handleManagerChange","current","getState","subscribe","state","unsubscribeFromRegistry","subscribeToManager","setDataLength","setEnableSwipeGesture","setWidth","notifyStateChange","setListRef","runAfterInteractions","scrollToIndex","index","animated","scrollTo","cancel","onMomentumScrollEnd","event","contentOffset","nativeEvent","newIndex","round","dismissGesture","Pan","minDistance","averageTouches","activeCursor","activeOffsetY","failOffsetX","enabled","onUpdate","translationY","onEnd","damping","stiffness","zoomPinchGesture","Pinch","onBegin","newScale","deltaScale","centerX","focalX","centerY","focalY","newTranslateX","newTranslateY","constrained","duration","easing","bezier","finalConstrained","zoomPanGesture","translationX","doubleTapGesture","Tap","numberOfTaps","nextScale","zoomGesture","Race","Exclusive","animatedStyle","transform","backdropStyle","opacity"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","InteractionManager","useWindowDimensions","Gesture","Easing","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","registry","createBoundsConstraint","useGestureViewer","data","initialIndex","onIndexChange","onDismiss","width","customWidth","dismissThreshold","resistance","animateBackdrop","enableDismissGesture","enableSwipeGesture","enableZoomGesture","enableDoubleTapGesture","enableZoomPanGesture","maxZoomScale","itemSpacing","useSnap","id","screenWidth","height","screenHeight","isZoomed","setIsZoomed","currentIndex","setCurrentIndex","manager","setManager","unsubscribeRef","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","backdropOpacity","listRef","dataLength","length","constrainTranslation","value","currentScale","handleManagerChange","current","getState","subscribe","state","unsubscribeFromRegistry","subscribeToManager","setDataLength","setEnableSwipeGesture","setWidth","setHeight","setZoomSharedValues","notifyStateChange","setListRef","runAfterInteractions","scrollToIndex","index","animated","scrollTo","x","cancel","onMomentumScrollEnd","event","contentOffset","nativeEvent","newIndex","Math","round","dismissGesture","Pan","minDistance","averageTouches","activeCursor","activeOffsetY","failOffsetX","enabled","onUpdate","translationY","onEnd","damping","stiffness","zoomPinchGesture","Pinch","onBegin","newScale","deltaScale","centerX","focalX","centerY","focalY","newTranslateX","newTranslateY","constrainedTranslateX","constrainedTranslateY","duration","easing","bezier","zoomPanGesture","translationX","doubleTapGesture","Tap","numberOfTaps","nextScale","y","zoomGesture","Race","Exclusive","animatedStyle","transform","backdropStyle","opacity"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":"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","ignoreList":[]}
@@ -35,6 +35,9 @@ export const useGestureViewerController = (id = 'default') => {
35
35
  goToIndex: manager?.goToIndex || noopFunction,
36
36
  goToPrevious: manager?.goToPrevious || noopFunction,
37
37
  goToNext: manager?.goToNext || noopFunction,
38
+ zoomIn: manager?.zoomIn || noopFunction,
39
+ zoomOut: manager?.zoomOut || noopFunction,
40
+ resetZoom: manager?.resetZoom || noopFunction,
38
41
  currentIndex: state.currentIndex,
39
42
  totalCount: state.dataLength
40
43
  };
@@ -1 +1 @@
1
- {"version":3,"names":["useEffect","useMemo","useRef","useState","registry","useGestureViewerController","id","state","setState","currentIndex","dataLength","manager","setManager","unsubscribeRef","handleManagerChange","newManager","current","getState","subscribe","unsubscribeFromRegistry","subscribeToManager","noopFunction","goToIndex","goToPrevious","goToNext","totalCount"],"sourceRoot":"../../src","sources":["useGestureViewerController.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAG5D,SAASC,QAAQ,QAAQ,4BAAyB;AAElD,OAAO,MAAMC,0BAA0B,GAAGA,CAACC,EAAE,GAAG,SAAS,KAAK;EAC5D,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGL,QAAQ,CAA4B;IAC5DM,YAAY,EAAE,CAAC;IACfC,UAAU,EAAE;EACd,CAAC,CAAC;EAEF,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGT,QAAQ,CAA8B,IAAI,CAAC;EACzE,MAAMU,cAAc,GAAGX,MAAM,CAAsB,IAAI,CAAC;EAExDF,SAAS,CAAC,MAAM;IACd,MAAMc,mBAAmB,GAAIC,UAAuC,IAAK;MACvEF,cAAc,CAACG,OAAO,GAAG,CAAC;MAC1BH,cAAc,CAACG,OAAO,GAAG,IAAI;MAE7BJ,UAAU,CAACG,UAAU,CAAC;MAEtB,IAAIA,UAAU,EAAE;QACdP,QAAQ,CAACO,UAAU,CAACE,QAAQ,CAAC,CAAC,CAAC;QAC/BJ,cAAc,CAACG,OAAO,GAAGD,UAAU,CAACG,SAAS,CAACV,QAAQ,CAAC;QACvD;MACF;MAEAA,QAAQ,CAAC;QAAEC,YAAY,EAAE,CAAC;QAAEC,UAAU,EAAE;MAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAMS,uBAAuB,GAAGf,QAAQ,CAACgB,kBAAkB,CAACd,EAAE,EAAEQ,mBAAmB,CAAC;IAEpF,OAAO,MAAM;MACXK,uBAAuB,CAAC,CAAC;MACzBN,cAAc,CAACG,OAAO,GAAG,CAAC;IAC5B,CAAC;EACH,CAAC,EAAE,CAACV,EAAE,CAAC,CAAC;EAER,MAAMe,YAAY,GAAGpB,OAAO,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;EAEhD,OAAO;IACLqB,SAAS,EAAEX,OAAO,EAAEW,SAAS,IAAID,YAAY;IAC7CE,YAAY,EAAEZ,OAAO,EAAEY,YAAY,IAAIF,YAAY;IACnDG,QAAQ,EAAEb,OAAO,EAAEa,QAAQ,IAAIH,YAAY;IAC3CZ,YAAY,EAAEF,KAAK,CAACE,YAAY;IAChCgB,UAAU,EAAElB,KAAK,CAACG;EACpB,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useEffect","useMemo","useRef","useState","registry","useGestureViewerController","id","state","setState","currentIndex","dataLength","manager","setManager","unsubscribeRef","handleManagerChange","newManager","current","getState","subscribe","unsubscribeFromRegistry","subscribeToManager","noopFunction","goToIndex","goToPrevious","goToNext","zoomIn","zoomOut","resetZoom","totalCount"],"sourceRoot":"../../src","sources":["useGestureViewerController.ts"],"mappings":";;AAAA,SAASA,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AAG5D,SAASC,QAAQ,QAAQ,4BAAyB;AAElD,OAAO,MAAMC,0BAA0B,GAAGA,CAACC,EAAE,GAAG,SAAS,KAAK;EAC5D,MAAM,CAACC,KAAK,EAAEC,QAAQ,CAAC,GAAGL,QAAQ,CAA4B;IAC5DM,YAAY,EAAE,CAAC;IACfC,UAAU,EAAE;EACd,CAAC,CAAC;EAEF,MAAM,CAACC,OAAO,EAAEC,UAAU,CAAC,GAAGT,QAAQ,CAA8B,IAAI,CAAC;EACzE,MAAMU,cAAc,GAAGX,MAAM,CAAsB,IAAI,CAAC;EAExDF,SAAS,CAAC,MAAM;IACd,MAAMc,mBAAmB,GAAIC,UAAuC,IAAK;MACvEF,cAAc,CAACG,OAAO,GAAG,CAAC;MAC1BH,cAAc,CAACG,OAAO,GAAG,IAAI;MAE7BJ,UAAU,CAACG,UAAU,CAAC;MAEtB,IAAIA,UAAU,EAAE;QACdP,QAAQ,CAACO,UAAU,CAACE,QAAQ,CAAC,CAAC,CAAC;QAC/BJ,cAAc,CAACG,OAAO,GAAGD,UAAU,CAACG,SAAS,CAACV,QAAQ,CAAC;QACvD;MACF;MAEAA,QAAQ,CAAC;QAAEC,YAAY,EAAE,CAAC;QAAEC,UAAU,EAAE;MAAE,CAAC,CAAC;IAC9C,CAAC;IAED,MAAMS,uBAAuB,GAAGf,QAAQ,CAACgB,kBAAkB,CAACd,EAAE,EAAEQ,mBAAmB,CAAC;IAEpF,OAAO,MAAM;MACXK,uBAAuB,CAAC,CAAC;MACzBN,cAAc,CAACG,OAAO,GAAG,CAAC;IAC5B,CAAC;EACH,CAAC,EAAE,CAACV,EAAE,CAAC,CAAC;EAER,MAAMe,YAAY,GAAGpB,OAAO,CAAC,MAAM,MAAM,CAAC,CAAC,EAAE,EAAE,CAAC;EAEhD,OAAO;IACLqB,SAAS,EAAEX,OAAO,EAAEW,SAAS,IAAID,YAAY;IAC7CE,YAAY,EAAEZ,OAAO,EAAEY,YAAY,IAAIF,YAAY;IACnDG,QAAQ,EAAEb,OAAO,EAAEa,QAAQ,IAAIH,YAAY;IAC3CI,MAAM,EAAEd,OAAO,EAAEc,MAAM,IAAIJ,YAAY;IACvCK,OAAO,EAAEf,OAAO,EAAEe,OAAO,IAAIL,YAAY;IACzCM,SAAS,EAAEhB,OAAO,EAAEgB,SAAS,IAAIN,YAAY;IAC7CZ,YAAY,EAAEF,KAAK,CAACE,YAAY;IAChCmB,UAAU,EAAErB,KAAK,CAACG;EACpB,CAAC;AACH,CAAC","ignoreList":[]}
@@ -22,4 +22,27 @@ export const isFlashListLike = component => {
22
22
  }
23
23
  return component?.name === 'FlashList';
24
24
  };
25
+ export const createBoundsConstraint = ({
26
+ width,
27
+ height
28
+ }) => ({
29
+ scale,
30
+ translateX,
31
+ translateY
32
+ }) => {
33
+ 'worklet';
34
+
35
+ if (scale <= 1) {
36
+ return {
37
+ translateX,
38
+ translateY
39
+ };
40
+ }
41
+ const maxTranslateX = (width * scale - width) / 2;
42
+ const maxTranslateY = (height * scale - height) / 2;
43
+ return {
44
+ translateX: Math.max(-maxTranslateX, Math.min(maxTranslateX, translateX)),
45
+ translateY: Math.max(-maxTranslateY, Math.min(maxTranslateY, translateY))
46
+ };
47
+ };
25
48
  //# sourceMappingURL=utils.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["FlatList","RNFlatList","ScrollView","RNScrollView","GestureFlatList","GestureScrollView","isScrollViewLike","component","isFlatListLike","isFlashListLike","FlashList","require","name"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":";;AAAA,SAASA,QAAQ,IAAIC,UAAU,EAAEC,UAAU,IAAIC,YAAY,QAAQ,cAAc;AACjF,SAASH,QAAQ,IAAII,eAAe,EAAEF,UAAU,IAAIG,iBAAiB,QAAQ,8BAA8B;AAG3G,OAAO,MAAMC,gBAAgB,GAAIC,SAAc,IAAuC;EACpF,OAAOA,SAAS,KAAKJ,YAAY,IAAII,SAAS,KAAKF,iBAAiB;AACtE,CAAC;AAED,OAAO,MAAMG,cAAc,GAAID,SAAc,IAAqC;EAChF,IAAIA,SAAS,KAAKN,UAAU,IAAIM,SAAS,KAAKH,eAAe,IAAIK,eAAe,CAACF,SAAS,CAAC,EAAE;IAC3F,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd,CAAC;AAED,OAAO,MAAME,eAAe,GAAIF,SAAc,IAAuB;EACnE,IAAI;IACF,MAAMG,SAAS,GAAGC,OAAO,CAAC,qBAAqB,CAAC,EAAED,SAAS;IAE3D,IAAIA,SAAS,IAAIH,SAAS,KAAKG,SAAS,EAAE;MACxC,OAAO,IAAI;IACb;EACF,CAAC,CAAC,MAAM;IACN;EAAA;EAGF,OAAOH,SAAS,EAAEK,IAAI,KAAK,WAAW;AACxC,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["FlatList","RNFlatList","ScrollView","RNScrollView","GestureFlatList","GestureScrollView","isScrollViewLike","component","isFlatListLike","isFlashListLike","FlashList","require","name","createBoundsConstraint","width","height","scale","translateX","translateY","maxTranslateX","maxTranslateY","Math","max","min"],"sourceRoot":"../../src","sources":["utils.ts"],"mappings":";;AAAA,SAASA,QAAQ,IAAIC,UAAU,EAAEC,UAAU,IAAIC,YAAY,QAAQ,cAAc;AACjF,SAASH,QAAQ,IAAII,eAAe,EAAEF,UAAU,IAAIG,iBAAiB,QAAQ,8BAA8B;AAG3G,OAAO,MAAMC,gBAAgB,GAAIC,SAAc,IAAuC;EACpF,OAAOA,SAAS,KAAKJ,YAAY,IAAII,SAAS,KAAKF,iBAAiB;AACtE,CAAC;AAED,OAAO,MAAMG,cAAc,GAAID,SAAc,IAAqC;EAChF,IAAIA,SAAS,KAAKN,UAAU,IAAIM,SAAS,KAAKH,eAAe,IAAIK,eAAe,CAACF,SAAS,CAAC,EAAE;IAC3F,OAAO,IAAI;EACb;EAEA,OAAO,KAAK;AACd,CAAC;AAED,OAAO,MAAME,eAAe,GAAIF,SAAc,IAAuB;EACnE,IAAI;IACF,MAAMG,SAAS,GAAGC,OAAO,CAAC,qBAAqB,CAAC,EAAED,SAAS;IAE3D,IAAIA,SAAS,IAAIH,SAAS,KAAKG,SAAS,EAAE;MACxC,OAAO,IAAI;IACb;EACF,CAAC,CAAC,MAAM;IACN;EAAA;EAGF,OAAOH,SAAS,EAAEK,IAAI,KAAK,WAAW;AACxC,CAAC;AAED,OAAO,MAAMC,sBAAsB,GACjCA,CAAC;EAAEC,KAAK;EAAEC;AAA0C,CAAC,KACrD,CAAC;EAAEC,KAAK;EAAEC,UAAU;EAAEC;AAAsE,CAAC,KAAK;EAChG,SAAS;;EAET,IAAIF,KAAK,IAAI,CAAC,EAAE;IACd,OAAO;MACLC,UAAU;MACVC;IACF,CAAC;EACH;EAEA,MAAMC,aAAa,GAAG,CAACL,KAAK,GAAGE,KAAK,GAAGF,KAAK,IAAI,CAAC;EACjD,MAAMM,aAAa,GAAG,CAACL,MAAM,GAAGC,KAAK,GAAGD,MAAM,IAAI,CAAC;EAEnD,OAAO;IACLE,UAAU,EAAEI,IAAI,CAACC,GAAG,CAAC,CAACH,aAAa,EAAEE,IAAI,CAACE,GAAG,CAACJ,aAAa,EAAEF,UAAU,CAAC,CAAC;IACzEC,UAAU,EAAEG,IAAI,CAACC,GAAG,CAAC,CAACF,aAAa,EAAEC,IAAI,CAACE,GAAG,CAACH,aAAa,EAAEF,UAAU,CAAC;EAC1E,CAAC;AACH,CAAC","ignoreList":[]}
@@ -1,3 +1,4 @@
1
+ import { type SharedValue } from 'react-native-reanimated';
1
2
  export type GestureViewerManagerState = {
2
3
  currentIndex: number;
3
4
  dataLength: number;
@@ -6,6 +7,11 @@ declare class GestureViewerManager {
6
7
  private currentIndex;
7
8
  private dataLength;
8
9
  private width;
10
+ private height;
11
+ private scale;
12
+ private translateX;
13
+ private translateY;
14
+ private maxZoomScale;
9
15
  private listRef;
10
16
  private enableSwipeGesture;
11
17
  private listeners;
@@ -16,11 +22,30 @@ declare class GestureViewerManager {
16
22
  dataLength: number;
17
23
  };
18
24
  setWidth(width: number): void;
25
+ setHeight(height: number): void;
19
26
  setListRef(ref: any): void;
20
27
  setDataLength(length: number): void;
21
28
  setEnableSwipeGesture(enabled: boolean): void;
22
29
  setCurrentIndex(index: number): void;
30
+ setZoomSharedValues(scale: SharedValue<number>, translateX: SharedValue<number>, translateY: SharedValue<number>, maxZoomScale: number): void;
23
31
  notifyStateChange(): void;
32
+ /**
33
+ * @param multiplier - The multiplier to zoom in.
34
+ * @range 0.01 - 1
35
+ * @default 0.25
36
+ */
37
+ zoomIn: (multiplier?: number) => void;
38
+ /**
39
+ * @param multiplier - The multiplier to zoom out.
40
+ * @range 0.01 - 1
41
+ * @default 0.25
42
+ */
43
+ zoomOut: (multiplier?: number) => void;
44
+ /**
45
+ * @param scale - The scale to reset to.
46
+ * @default 1
47
+ */
48
+ resetZoom: (scale?: number) => void;
24
49
  goToIndex: (index: number) => void;
25
50
  goToPrevious: () => void;
26
51
  goToNext: () => void;
@@ -1 +1 @@
1
- {"version":3,"file":"GestureViewerManager.d.ts","sourceRoot":"","sources":["../../../src/GestureViewerManager.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,cAAM,oBAAoB;IACxB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,SAAS,CAAyD;IAO1E,OAAO,CAAC,eAAe;IAMvB,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI;IAQ9D,QAAQ;;;;IAOR,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,UAAU,CAAC,GAAG,EAAE,GAAG;IAInB,aAAa,CAAC,MAAM,EAAE,MAAM;IAI5B,qBAAqB,CAAC,OAAO,EAAE,OAAO;IAItC,eAAe,CAAC,KAAK,EAAE,MAAM;IAM7B,iBAAiB;IAIjB,SAAS,GAAI,OAAO,MAAM,UAcxB;IAEF,YAAY,aAIV;IAEF,QAAQ,aAIN;IAEF,OAAO;CAOR;AAED,eAAe,oBAAoB,CAAC"}
1
+ {"version":3,"file":"GestureViewerManager.d.ts","sourceRoot":"","sources":["../../../src/GestureViewerManager.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,WAAW,EAAc,MAAM,yBAAyB,CAAC;AAGvE,MAAM,MAAM,yBAAyB,GAAG;IACtC,YAAY,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;CACpB,CAAC;AAEF,cAAM,oBAAoB;IACxB,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,UAAU,CAAK;IACvB,OAAO,CAAC,KAAK,CAAK;IAClB,OAAO,CAAC,MAAM,CAAK;IACnB,OAAO,CAAC,KAAK,CAAoC;IACjD,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,UAAU,CAAoC;IACtD,OAAO,CAAC,YAAY,CAAK;IACzB,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,kBAAkB,CAAQ;IAClC,OAAO,CAAC,SAAS,CAAyD;IAE1E,OAAO,CAAC,eAAe;IAMvB,SAAS,CAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,yBAAyB,KAAK,IAAI;IAQ9D,QAAQ;;;;IAOR,QAAQ,CAAC,KAAK,EAAE,MAAM;IAItB,SAAS,CAAC,MAAM,EAAE,MAAM;IAIxB,UAAU,CAAC,GAAG,EAAE,GAAG;IAInB,aAAa,CAAC,MAAM,EAAE,MAAM;IAI5B,qBAAqB,CAAC,OAAO,EAAE,OAAO;IAItC,eAAe,CAAC,KAAK,EAAE,MAAM;IAM7B,mBAAmB,CACjB,KAAK,EAAE,WAAW,CAAC,MAAM,CAAC,EAC1B,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,UAAU,EAAE,WAAW,CAAC,MAAM,CAAC,EAC/B,YAAY,EAAE,MAAM;IAQtB,iBAAiB;IAIjB;;;;OAIG;IACH,MAAM,GAAI,mBAAiB,UAoBzB;IAEF;;;;OAIG;IACH,OAAO,GAAI,mBAAiB,UA0B1B;IAEF;;;OAGG;IACH,SAAS,GAAI,cAAS,UAQpB;IAEF,SAAS,GAAI,OAAO,MAAM,UAcxB;IAEF,YAAY,aAIV;IAEF,QAAQ,aAIN;IAEF,OAAO;CAYR;AAED,eAAe,oBAAoB,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"useGestureViewer.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewer.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAE1B,MAAM,cAAc,CAAC;AActB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAElD,KAAK,qBAAqB,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CACxC,kBAAkB,CAAC,CAAC,CAAC,EACrB,YAAY,GAAG,iBAAiB,GAAG,eAAe,GAAG,WAAW,GAAG,gBAAgB,GAAG,eAAe,CACtG,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,GAAG,GAAG,EAAE,yQAoBvC,qBAAqB,CAAC,CAAC,CAAC;;;;;;;;iCAqIf,oBAAoB,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;CAmPlD,CAAC"}
1
+ {"version":3,"file":"useGestureViewer.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewer.ts"],"names":[],"mappings":"AACA,OAAO,EAEL,KAAK,iBAAiB,EACtB,KAAK,oBAAoB,EAE1B,MAAM,cAAc,CAAC;AActB,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,SAAS,CAAC;AAGlD,KAAK,qBAAqB,CAAC,CAAC,GAAG,GAAG,IAAI,IAAI,CACxC,kBAAkB,CAAC,CAAC,CAAC,EACrB,YAAY,GAAG,iBAAiB,GAAG,eAAe,GAAG,WAAW,GAAG,gBAAgB,GAAG,eAAe,CACtG,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,CAAC,GAAG,GAAG,EAAE,yQAoBvC,qBAAqB,CAAC,CAAC,CAAC;;;;;;;;iCAmIf,oBAAoB,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;CAqQlD,CAAC"}
@@ -2,6 +2,9 @@ export declare const useGestureViewerController: (id?: string) => {
2
2
  goToIndex: (index: number) => void;
3
3
  goToPrevious: () => void;
4
4
  goToNext: () => void;
5
+ zoomIn: (multiplier?: number) => void;
6
+ zoomOut: (multiplier?: number) => void;
7
+ resetZoom: (scale?: number) => void;
5
8
  currentIndex: number;
6
9
  totalCount: number;
7
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"useGestureViewerController.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewerController.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,0BAA0B,GAAI,WAAc;;;;;;CA0CxD,CAAC"}
1
+ {"version":3,"file":"useGestureViewerController.d.ts","sourceRoot":"","sources":["../../../src/useGestureViewerController.ts"],"names":[],"mappings":"AAKA,eAAO,MAAM,0BAA0B,GAAI,WAAc;;;;;;;;;CA6CxD,CAAC"}
@@ -2,4 +2,15 @@ import type { FlatListComponent, ScrollViewComponent } from './types';
2
2
  export declare const isScrollViewLike: (component: any) => component is ScrollViewComponent;
3
3
  export declare const isFlatListLike: (component: any) => component is FlatListComponent;
4
4
  export declare const isFlashListLike: (component: any) => component is any;
5
+ export declare const createBoundsConstraint: ({ width, height }: {
6
+ width: number;
7
+ height: number;
8
+ }) => ({ scale, translateX, translateY }: {
9
+ translateX: number;
10
+ translateY: number;
11
+ scale: number;
12
+ }) => {
13
+ translateX: number;
14
+ translateY: number;
15
+ };
5
16
  //# sourceMappingURL=utils.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEtE,eAAO,MAAM,gBAAgB,GAAI,WAAW,GAAG,KAAG,SAAS,IAAI,mBAE9D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,WAAW,GAAG,KAAG,SAAS,IAAI,iBAM5D,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,WAAW,GAAG,KAAG,SAAS,IAAI,GAY7D,CAAC"}
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/utils.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,iBAAiB,EAAE,mBAAmB,EAAE,MAAM,SAAS,CAAC;AAEtE,eAAO,MAAM,gBAAgB,GAAI,WAAW,GAAG,KAAG,SAAS,IAAI,mBAE9D,CAAC;AAEF,eAAO,MAAM,cAAc,GAAI,WAAW,GAAG,KAAG,SAAS,IAAI,iBAM5D,CAAC;AAEF,eAAO,MAAM,eAAe,GAAI,WAAW,GAAG,KAAG,SAAS,IAAI,GAY7D,CAAC;AAEF,eAAO,MAAM,sBAAsB,GAChC,mBAAmB;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,MAAM,EAAE,MAAM,CAAA;CAAE,MACpD,mCAAmC;IAAE,UAAU,EAAE,MAAM,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE;;;CAiB5F,CAAC"}