react-native-gesture-image-viewer 1.9.3 → 1.9.4

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.
@@ -60,6 +60,8 @@ export const useGestureViewer = ({
60
60
  const triggerTranslateX = useSharedValue(0);
61
61
  const triggerTranslateY = useSharedValue(0);
62
62
  const triggerOpacity = useSharedValue(1);
63
+ const lastFocalX = useSharedValue(0);
64
+ const lastFocalY = useSharedValue(0);
63
65
  const dataLength = data?.length || 0;
64
66
  const animationConfig = useMemo(() => ({
65
67
  duration: triggerAnimation?.duration ?? 300,
@@ -304,24 +306,30 @@ export const useGestureViewer = ({
304
306
  if (event.numberOfTouches === 2) {
305
307
  runOnJS(setIsPinching)(true);
306
308
  }
307
- }).onBegin(() => {
309
+ }).onBegin(event => {
308
310
  startScale.value = scale.value;
309
311
  initialTranslateX.value = translateX.value;
310
312
  initialTranslateY.value = translateY.value;
313
+ lastFocalX.value = event.focalX;
314
+ lastFocalY.value = event.focalY;
311
315
  }).onUpdate(event => {
312
316
  const newScale = startScale.value * event.scale;
313
317
  scale.value = newScale;
314
- if (event.numberOfPointers !== 2) {
315
- return;
316
- }
317
318
  if (newScale <= 1) {
318
319
  translateX.value = withTiming(0);
319
320
  translateY.value = withTiming(0);
320
321
  return;
321
322
  }
323
+ const focalDeltaX = Math.abs(event.focalX - lastFocalX.value);
324
+ const focalDeltaY = Math.abs(event.focalY - lastFocalY.value);
325
+ const threshold = 50;
326
+ if (focalDeltaX < threshold && focalDeltaY < threshold) {
327
+ lastFocalX.value = event.focalX;
328
+ lastFocalY.value = event.focalY;
329
+ }
322
330
  const deltaScale = newScale - startScale.value;
323
- const centerX = event.focalX - width / 2;
324
- const centerY = event.focalY - height / 2;
331
+ const centerX = lastFocalX.value - width / 2;
332
+ const centerY = lastFocalY.value - height / 2;
325
333
 
326
334
  // NOTE 새로운 이동값 = 기존 이동값 - (중심점 거리 × 스케일 변화량) / 원래 스케일 (중심점이 화면 중심에서 멀수록, 확대 배율이 클수록 더 많이 이동)
327
335
  const newTranslateX = initialTranslateX.value - centerX * deltaScale / startScale.value;
@@ -380,7 +388,7 @@ export const useGestureViewer = ({
380
388
  }).onFinalize(() => {
381
389
  runOnJS(setIsPinching)(false);
382
390
  });
383
- }, [scale, enableZoomGesture, maxZoomScale, translateX, translateY, startScale, initialTranslateX, initialTranslateY, width, height, constrainTranslation]);
391
+ }, [scale, enableZoomGesture, maxZoomScale, translateX, translateY, startScale, initialTranslateX, initialTranslateY, width, height, constrainTranslation, lastFocalX, lastFocalY]);
384
392
  const zoomPanGesture = useMemo(() => {
385
393
  return Gesture.Pan().enabled(enableZoomPanGesture && isZoomed).activeCursor('grabbing').averageTouches(true).onBegin(() => {
386
394
  initialTranslateX.value = translateX.value;
@@ -1 +1 @@
1
- {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","InteractionManager","useWindowDimensions","Gesture","Easing","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","registry","createBoundsConstraint","createScrollAction","getLoopAdjustedIndex","useGestureViewer","data","initialIndex","onIndexChange","onDismiss","width","customWidth","height","customHeight","dismissThreshold","resistance","animateBackdrop","enableDismissGesture","enableSwipeGesture","enableZoomGesture","enableDoubleTapGesture","enableZoomPanGesture","enableLoop","maxZoomScale","itemSpacing","id","onDismissStart","triggerAnimation","autoPlay","autoPlayInterval","screenWidth","screenHeight","isZoomed","setIsZoomed","isRotated","setIsRotated","isPinching","setIsPinching","manager","setManager","shouldStartTriggerAnimation","setShouldStartTriggerAnimation","currentIndex","setCurrentIndex","listRef","unsubscribeRef","onIndexChangeRef","lastEmittedIndexRef","triggerRectRef","onAnimationCompleteRef","onAnimationComplete","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","backdropOpacity","rotation","triggerScale","triggerTranslateX","triggerTranslateY","triggerOpacity","dataLength","length","animationConfig","duration","easing","bezier","reduceMotion","adjustedInitialIndex","constrainTranslation","current","scrollTo","index","animated","scrollAction","emitZoomChange","currentScale","prevScale","emitRotationChange","currentRotation","prevRotation","value","previousScale","previousRotation","intervalMs","Math","max","floor","Number","isFinite","interval","setInterval","goToNext","clearInterval","startX","x","startY","y","initialScaleFromTrigger","min","finished","node","getTriggerNode","measure","_x","_y","pageX","pageY","clearTriggerNode","handleManagerChange","subscribe","state","unsubscribeFromRegistry","subscribeToManager","setDataLength","setEnableSwipeGesture","setWidth","setHeight","setZoomSharedValues","setRotation","setEnableLoop","notifyStateChange","setListRef","runAfterInteractions","cancel","handleDismiss","endX","endY","endScale","onMomentumScrollEnd","event","contentOffset","nativeEvent","scrollIndex","round","isLoopHandled","handleMomentumScrollEnd","realIndex","needsJump","jumpToIndex","undefined","getState","dismissGesture","canDismiss","Pan","minDistance","averageTouches","activeCursor","activeOffsetY","failOffsetX","enabled","onUpdate","translationY","onEnd","damping","stiffness","zoomPinchGesture","Pinch","onTouchesDown","numberOfTouches","onBegin","newScale","numberOfPointers","deltaScale","centerX","focalX","centerY","focalY","newTranslateX","newTranslateY","constrainedTranslateX","constrainedTranslateY","onTouchesUp","onFinalize","zoomPanGesture","translationX","doubleTapGesture","Tap","numberOfTaps","nextScale","zoomGesture","Race","Exclusive","animatedStyle","opacity","transform","rotate","backdropStyle","baseOpacity","dismissOpacity","onScrollBeginDrag","handleScrollBeginDrag"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":";;AAAA,SAASA,WAAW,EAAEC,SAAS,EAAEC,OAAO,EAAEC,MAAM,EAAEC,QAAQ,QAAQ,OAAO;AACzE,SACEC,kBAAkB,EAGlBC,mBAAmB,QACd,cAAc;AACrB,SAASC,OAAO,QAAQ,8BAA8B;AACtD,SACEC,MAAM,EACNC,WAAW,EACXC,OAAO,EACPC,mBAAmB,EACnBC,gBAAgB,EAChBC,cAAc,EACdC,UAAU,EACVC,UAAU,QACL,yBAAyB;AAEhC,SAASC,QAAQ,QAAQ,4BAAyB;AAElD,SAASC,sBAAsB,EAAEC,kBAAkB,EAAEC,oBAAoB,QAAQ,kBAAS;AAO1F,OAAO,MAAMC,gBAAgB,GAAGA,CAAY;EAC1CC,IAAI;EACJC,YAAY,GAAG,CAAC;EAChBC,aAAa;EACbC,SAAS;EACTC,KAAK,EAAEC,WAAW;EAClBC,MAAM,EAAEC,YAAY;EACpBC,gBAAgB,GAAG,EAAE;EACrBC,UAAU,GAAG,CAAC;EACdC,eAAe,GAAG,IAAI;EACtBC,oBAAoB,GAAG,IAAI;EAC3BC,kBAAkB,GAAG,IAAI;EACzBC,iBAAiB,GAAG,IAAI;EACxBC,sBAAsB,GAAG,IAAI;EAC7BC,oBAAoB,GAAG,IAAI;EAC3BC,UAAU,GAAG,KAAK;EAClBC,YAAY,GAAG,CAAC;EAChBC,WAAW,GAAG,CAAC;EACfC,EAAE,GAAG,SAAS;EACdC,cAAc;EACdC,gBAAgB;EAChBC,QAAQ,GAAG,KAAK;EAChBC,gBAAgB,GAAG;AACa,CAAC,KAAK;EACtC,MAAM;IAAEnB,KAAK,EAAEoB,WAAW;IAAElB,MAAM,EAAEmB;EAAa,CAAC,GAAGxC,mBAAmB,CAAC,CAAC;EAC1E,MAAMmB,KAAK,GAAGC,WAAW,IAAImB,WAAW;EACxC,MAAMlB,MAAM,GAAGC,YAAY,IAAIkB,YAAY;EAE3C,MAAM,CAACC,QAAQ,EAAEC,WAAW,CAAC,GAAG5C,QAAQ,CAAC,KAAK,CAAC;EAC/C,MAAM,CAAC6C,SAAS,EAAEC,YAAY,CAAC,GAAG9C,QAAQ,CAAC,KAAK,CAAC;EACjD,MAAM,CAAC+C,UAAU,EAAEC,aAAa,CAAC,GAAGhD,QAAQ,CAAC,KAAK,CAAC;EACnD,MAAM,CAACiD,OAAO,EAAEC,UAAU,CAAC,GAAGlD,QAAQ,CAA8B,IAAI,CAAC;EACzE,MAAM,CAACmD,2BAA2B,EAAEC,8BAA8B,CAAC,GAAGpD,QAAQ,CAAC,KAAK,CAAC;EACrF,MAAM,CAACqD,YAAY,EAAEC,eAAe,CAAC,GAAGtD,QAAQ,CAACkB,YAAY,CAAC;EAE9D,MAAMqC,OAAO,GAAGxD,MAAM,CAAM,IAAI,CAAC;EACjC,MAAMyD,cAAc,GAAGzD,MAAM,CAAsB,IAAI,CAAC;EACxD,MAAM0D,gBAAgB,GAAG1D,MAAM,CAAmC,IAAI,CAAC;EACvE,MAAM2D,mBAAmB,GAAG3D,MAAM,CAAS,IAAI,CAAC;EAChD,MAAM4D,cAAc,GAAG5D,MAAM,CAAqB,IAAI,CAAC;EACvD,MAAM6D,sBAAsB,GAAG7D,MAAM,CAACuC,gBAAgB,EAAEuB,mBAAmB,CAAC;EAE5E,MAAMC,iBAAiB,GAAGrD,cAAc,CAAC,CAAC,CAAC;EAC3C,MAAMsD,iBAAiB,GAAGtD,cAAc,CAAC,CAAC,CAAC;EAC3C,MAAMuD,UAAU,GAAGvD,cAAc,CAAC,CAAC,CAAC;EAEpC,MAAMwD,UAAU,GAAGxD,cAAc,CAAC,CAAC,CAAC;EACpC,MAAMyD,UAAU,GAAGzD,cAAc,CAAC,CAAC,CAAC;EACpC,MAAM0D,KAAK,GAAG1D,cAAc,CAAC,CAAC,CAAC;EAC/B,MAAM2D,eAAe,GAAG3D,cAAc,CAAC,CAAC,CAAC;EACzC,MAAM4D,QAAQ,GAAG5D,cAAc,CAAC,CAAC,CAAC;EAElC,MAAM6D,YAAY,GAAG7D,cAAc,CAAC,CAAC,CAAC;EACtC,MAAM8D,iBAAiB,GAAG9D,cAAc,CAAC,CAAC,CAAC;EAC3C,MAAM+D,iBAAiB,GAAG/D,cAAc,CAAC,CAAC,CAAC;EAC3C,MAAMgE,cAAc,GAAGhE,cAAc,CAAC,CAAC,CAAC;EAExC,MAAMiE,UAAU,GAAGzD,IAAI,EAAE0D,MAAM,IAAI,CAAC;EAEpC,MAAMC,eAAe,GAAG9E,OAAO,CAC7B,OAAO;IACL+E,QAAQ,EAAEvC,gBAAgB,EAAEuC,QAAQ,IAAI,GAAG;IAC3CC,MAAM,EAAExC,gBAAgB,EAAEwC,MAAM,IAAI1E,MAAM,CAAC2E,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG,CAAC;IACvEC,YAAY,EAAE1C,gBAAgB,EAAE0C;EAClC,CAAC,CAAC,EACF,CAAC1C,gBAAgB,EAAEuC,QAAQ,EAAEvC,gBAAgB,EAAEwC,MAAM,EAAExC,gBAAgB,EAAE0C,YAAY,CACvF,CAAC;EAED,MAAMC,oBAAoB,GAAGnF,OAAO,CAAC,MAAM;IACzC,IAAImC,UAAU,IAAIyC,UAAU,GAAG,CAAC,EAAE;MAChC,OAAOxD,YAAY,GAAG,CAAC;IACzB;IAEA,OAAOA,YAAY;EACrB,CAAC,EAAE,CAACe,UAAU,EAAEyC,UAAU,EAAExD,YAAY,CAAC,CAAC;EAE1C,MAAMgE,oBAAoB,GAAGpF,OAAO,CAAC,MAAMe,sBAAsB,CAAC;IAAEQ,KAAK;IAAEE;EAAO,CAAC,CAAC,EAAE,CAACF,KAAK,EAAEE,MAAM,CAAC,CAAC;EAEtG,MAAMsC,mBAAmB,GAAGjE,WAAW,CAAC,MAAM;IAC5CgE,sBAAsB,CAACuB,OAAO,GAAG,CAAC;EACpC,CAAC,EAAE,EAAE,CAAC;EAEN,MAAMC,QAAQ,GAAGxF,WAAW,CAC1B,CAACyF,KAAa,EAAEC,QAAiB,KAAK;IACpC,MAAMC,YAAY,GAAGzE,kBAAkB,CAACyC,OAAO,CAAC4B,OAAO,EAAE9D,KAAK,GAAGc,WAAW,CAAC;IAE7E,OAAOoD,YAAY,CAACH,QAAQ,CAACC,KAAK,EAAEC,QAAQ,CAAC;EAC/C,CAAC,EACD,CAACjE,KAAK,EAAEc,WAAW,CACrB,CAAC;EAED,MAAMqD,cAAc,GAAG5F,WAAW,CAChC,CAAC6F,YAAoB,EAAEC,SAAwB,KAAK;IAClDzC,OAAO,EAAEuC,cAAc,CAACC,YAAY,EAAEC,SAAS,CAAC;EAClD,CAAC,EACD,CAACzC,OAAO,CACV,CAAC;EAED,MAAM0C,kBAAkB,GAAG/F,WAAW,CACpC,CAACgG,eAAuB,EAAEC,YAA2B,KAAK;IACxD5C,OAAO,EAAE0C,kBAAkB,CAACC,eAAe,EAAEC,YAAY,CAAC;EAC5D,CAAC,EACD,CAAC5C,OAAO,CACV,CAAC;EAED1C,mBAAmB,CACjB,MAAM4D,KAAK,CAAC2B,KAAK,EACjB,CAACL,YAAY,EAAEM,aAAa,KAAK;IAC/B,IAAI9C,OAAO,IAAIwC,YAAY,KAAKM,aAAa,EAAE;MAC7CzF,OAAO,CAACkF,cAAc,CAAC,CAACC,YAAY,EAAEM,aAAa,CAAC;IACtD;IAEAzF,OAAO,CAACsC,WAAW,CAAC,CAAC6C,YAAY,GAAG,CAAC,CAAC;EACxC,CACF,CAAC;EAEDlF,mBAAmB,CACjB,MAAM8D,QAAQ,CAACyB,KAAK,EACpB,CAACF,eAAe,EAAEI,gBAAgB,KAAK;IACrC,IAAI/C,OAAO,IAAI2C,eAAe,KAAKI,gBAAgB,EAAE;MACnD1F,OAAO,CAACqF,kBAAkB,CAAC,CAACC,eAAe,EAAEI,gBAAgB,CAAC;IAChE;IAEA1F,OAAO,CAACwC,YAAY,CAAC,CAAC8C,eAAe,GAAG,GAAG,KAAK,CAAC,CAAC;EACpD,CACF,CAAC;EAED/F,SAAS,CAAC,MAAM;IACd,IACE,CAAC0C,QAAQ,IACT,CAACU,OAAO,IACRyB,UAAU,IAAI,CAAC,IACf/B,QAAQ,IACRE,SAAS,IACR,CAACZ,UAAU,IAAIoB,YAAY,KAAKqB,UAAU,GAAG,CAAE,EAChD;MACA;IACF;IAEA,MAAMuB,UAAU,GAAGC,IAAI,CAACC,GAAG,CAAC,GAAG,EAAED,IAAI,CAACE,KAAK,CAAC5D,gBAAgB,IAAI,CAAC,CAAC,CAAC;IAEnE,IAAI,CAAC6D,MAAM,CAACC,QAAQ,CAACL,UAAU,CAAC,EAAE;MAChC;IACF;IAEA,MAAMM,QAAQ,GAAGC,WAAW,CAAC,MAAM;MACjC,IAAI7D,QAAQ,IAAIE,SAAS,EAAE;QACzB;MACF;MAEAI,OAAO,CAACwD,QAAQ,CAAC,CAAC;IACpB,CAAC,EAAER,UAAU,CAAC;IAEd,OAAO,MAAMS,aAAa,CAACH,QAAQ,CAAC;EACtC,CAAC,EAAE,CAAChE,QAAQ,EAAEC,gBAAgB,EAAES,OAAO,EAAEyB,UAAU,EAAErB,YAAY,EAAEpB,UAAU,EAAEU,QAAQ,EAAEE,SAAS,CAAC,CAAC;EAEpGhD,SAAS,CAAC,MAAM;IACd4D,gBAAgB,CAAC0B,OAAO,GAAGhE,aAAa,IAAI,IAAI;EAClD,CAAC,CAAC;EAEFtB,SAAS,CAAC,MAAM;IACd,OAAO,MAAM;MACX4D,gBAAgB,CAAC0B,OAAO,GAAG,IAAI;IACjC,CAAC;EACH,CAAC,EAAE,EAAE,CAAC;EAENtF,SAAS,CAAC,MAAM;IACd+D,sBAAsB,CAACuB,OAAO,GAAG7C,gBAAgB,EAAEuB,mBAAmB;EACxE,CAAC,EAAE,CAACvB,gBAAgB,EAAEuB,mBAAmB,CAAC,CAAC;EAE3ChE,SAAS,CAAC,MAAM;IACd,IAAIsD,2BAA2B,IAAIQ,cAAc,CAACwB,OAAO,EAAE;MACzD,MAAMwB,MAAM,GAAGhD,cAAc,CAACwB,OAAO,CAACyB,CAAC,GAAGjD,cAAc,CAACwB,OAAO,CAAC9D,KAAK,GAAG,CAAC,GAAGA,KAAK,GAAG,CAAC;MACtF,MAAMwF,MAAM,GAAGlD,cAAc,CAACwB,OAAO,CAAC2B,CAAC,GAAGnD,cAAc,CAACwB,OAAO,CAAC5D,MAAM,GAAG,CAAC,GAAGA,MAAM,GAAG,CAAC;MACxF,MAAMwF,uBAAuB,GAAGb,IAAI,CAACc,GAAG,CACtCrD,cAAc,CAACwB,OAAO,CAAC9D,KAAK,GAAGA,KAAK,EACpCsC,cAAc,CAACwB,OAAO,CAAC5D,MAAM,GAAGA,MAClC,CAAC;MAED+C,YAAY,CAACwB,KAAK,GAAGiB,uBAAuB;MAC5CxC,iBAAiB,CAACuB,KAAK,GAAGa,MAAM;MAChCnC,iBAAiB,CAACsB,KAAK,GAAGe,MAAM;MAChCpC,cAAc,CAACqB,KAAK,GAAG,CAAC;MAExBxB,YAAY,CAACwB,KAAK,GAAGnF,UAAU,CAAC,CAAC,EAAEiE,eAAe,EAAGqC,QAAQ,IAAK;QAChE,IAAIA,QAAQ,EAAE;UACZ3G,OAAO,CAACuD,mBAAmB,CAAC,CAAC,CAAC;QAChC;MACF,CAAC,CAAC;MACFU,iBAAiB,CAACuB,KAAK,GAAGnF,UAAU,CAAC,CAAC,EAAEiE,eAAe,CAAC;MACxDJ,iBAAiB,CAACsB,KAAK,GAAGnF,UAAU,CAAC,CAAC,EAAEiE,eAAe,CAAC;MACxDH,cAAc,CAACqB,KAAK,GAAGnF,UAAU,CAAC,CAAC,EAAE;QACnCkE,QAAQ,EAAED,eAAe,CAACC,QAAQ,GAAG,CAAC;QACtCC,MAAM,EAAEF,eAAe,CAACE,MAAM;QAC9BE,YAAY,EAAEJ,eAAe,CAACI;MAChC,CAAC,CAAC;MAEF5B,8BAA8B,CAAC,KAAK,CAAC;IACvC;EACF,CAAC,EAAE,CACDD,2BAA2B,EAC3ByB,eAAe,EACfvD,KAAK,EACLE,MAAM,EACNkD,cAAc,EACdH,YAAY,EACZC,iBAAiB,EACjBC,iBAAiB,EACjBX,mBAAmB,CACpB,CAAC;EAEFhE,SAAS,CAAC,MAAM;IACd,MAAMqH,IAAI,GAAGtG,QAAQ,CAACuG,cAAc,CAAC/E,EAAE,CAAC;IAExC,IAAI8E,IAAI,IAAI,OAAOA,IAAI,CAACE,OAAO,KAAK,UAAU,EAAE;MAC9CF,IAAI,CAACE,OAAO,CAAC,CAACC,EAAE,EAAEC,EAAE,EAAEjG,KAAK,EAAEE,MAAM,EAAEgG,KAAK,EAAEC,KAAK,KAAK;QACpD7D,cAAc,CAACwB,OAAO,GAAG;UAAEyB,CAAC,EAAEW,KAAK;UAAET,CAAC,EAAEU,KAAK;UAAEnG,KAAK;UAAEE;QAAO,CAAC;QAC9DkD,cAAc,CAACqB,KAAK,GAAG,CAAC;QACxB1C,8BAA8B,CAAC,IAAI,CAAC;QACpCxC,QAAQ,CAAC6G,gBAAgB,CAACrF,EAAE,CAAC;MAC/B,CAAC,CAAC;IACJ;IAEA,OAAO,MAAM;MACXuB,cAAc,CAACwB,OAAO,GAAG,IAAI;IAC/B,CAAC;EACH,CAAC,EAAE,CAAC/C,EAAE,EAAEqC,cAAc,CAAC,CAAC;EAExB5E,SAAS,CAAC,MAAM;IACd,MAAM6H,mBAAmB,GAAIzE,OAAoC,IAAK;MACpEO,cAAc,CAAC2B,OAAO,GAAG,CAAC;MAC1B3B,cAAc,CAAC2B,OAAO,GAAG,IAAI;MAE7BjC,UAAU,CAACD,OAAO,CAAC;MAEnBS,mBAAmB,CAACyB,OAAO,GAAG,IAAI;MAElC,IAAIlC,OAAO,EAAE;QACXO,cAAc,CAAC2B,OAAO,GAAGlC,OAAO,CAAC0E,SAAS,CAAEC,KAAK,IAAK;UACpD,IAAIlE,mBAAmB,CAACyB,OAAO,KAAKyC,KAAK,CAACvE,YAAY,EAAE;YACtDK,mBAAmB,CAACyB,OAAO,GAAGyC,KAAK,CAACvE,YAAY;YAChDI,gBAAgB,CAAC0B,OAAO,GAAGyC,KAAK,CAACvE,YAAY,CAAC;YAC9CC,eAAe,CAACsE,KAAK,CAACvE,YAAY,CAAC;UACrC;QACF,CAAC,CAAC;QACF;MACF;IACF,CAAC;IAED,MAAMwE,uBAAuB,GAAGjH,QAAQ,CAACkH,kBAAkB,CAAC1F,EAAE,EAAEsF,mBAAmB,CAAC;IAEpF,OAAO,MAAM;MACXG,uBAAuB,CAAC,CAAC;MACzBrE,cAAc,CAAC2B,OAAO,GAAG,CAAC;IAC5B,CAAC;EACH,CAAC,EAAE,CAAC/C,EAAE,CAAC,CAAC;EAERvC,SAAS,CAAC,MAAM;IACd,IAAI,CAACoD,OAAO,EAAE;MACZ;IACF;IAEAA,OAAO,CAAC8E,aAAa,CAACrD,UAAU,CAAC;IACjCzB,OAAO,CAAC+E,qBAAqB,CAACnG,kBAAkB,CAAC;IACjDoB,OAAO,CAACK,eAAe,CAACpC,YAAY,CAAC;IACrC+B,OAAO,CAACgF,QAAQ,CAAC5G,KAAK,GAAGc,WAAW,CAAC;IACrCc,OAAO,CAACiF,SAAS,CAAC3G,MAAM,CAAC;IACzB0B,OAAO,CAACkF,mBAAmB,CAAChE,KAAK,EAAED,UAAU,EAAED,UAAU,EAAE/B,YAAY,CAAC;IACxEe,OAAO,CAACmF,WAAW,CAAC/D,QAAQ,CAAC;IAC7BpB,OAAO,CAACoF,aAAa,CAACpG,UAAU,CAAC;IACjCgB,OAAO,CAACqF,iBAAiB,CAAC,CAAC;EAC7B,CAAC,EAAE,CACD5D,UAAU,EACV7C,kBAAkB,EAClBX,YAAY,EACZ+B,OAAO,EACP5B,KAAK,EACLc,WAAW,EACXD,YAAY,EACZD,UAAU,EACVkC,KAAK,EACL5C,MAAM,EACN2C,UAAU,EACVD,UAAU,EACVI,QAAQ,CACT,CAAC;EAEFxE,SAAS,CAAC,MAAM;IACd,IAAI,CAACoD,OAAO,IAAI,CAACM,OAAO,CAAC4B,OAAO,EAAE;MAChC;IACF;IAEAlC,OAAO,CAACsF,UAAU,CAAChF,OAAO,CAAC4B,OAAO,CAAC;EACrC,CAAC,EAAE,CAAClC,OAAO,CAAC,CAAC;EAEbpD,SAAS,CAAC,MAAM;IACdoE,UAAU,CAAC6B,KAAK,GAAG,CAAC;IACpB5B,UAAU,CAAC4B,KAAK,GAAG,CAAC;IACpB3B,KAAK,CAAC2B,KAAK,GAAG,CAAC;IACf1B,eAAe,CAAC0B,KAAK,GAAG,CAAC;IACzB9B,UAAU,CAAC8B,KAAK,GAAG,CAAC;IACpBzB,QAAQ,CAACyB,KAAK,GAAG,CAAC;IAElB,IAAIb,oBAAoB,IAAI,CAAC,IAAI,CAAC1B,OAAO,CAAC4B,OAAO,EAAE;MACjD;IACF;IAEA,MAAMqD,oBAAoB,GAAGvI,kBAAkB,CAACuI,oBAAoB,CAAC,MAAM;MACzEpD,QAAQ,CAACH,oBAAoB,EAAE,KAAK,CAAC;IACvC,CAAC,CAAC;IAEF,OAAO,MAAM;MACXuD,oBAAoB,EAAEC,MAAM,CAAC,CAAC;IAChC,CAAC;EACH,CAAC,EAAE,CAACxD,oBAAoB,EAAEhB,UAAU,EAAEG,eAAe,EAAEF,UAAU,EAAEC,KAAK,EAAEH,UAAU,EAAEK,QAAQ,EAAEe,QAAQ,CAAC,CAAC;EAE1G,MAAMsD,aAAa,GAAG9I,WAAW,CAAC,MAAM;IACtCyC,cAAc,GAAG,CAAC;IAElB,IAAIsB,cAAc,CAACwB,OAAO,EAAE;MAC1B,MAAMwD,IAAI,GAAGhF,cAAc,CAACwB,OAAO,CAACyB,CAAC,GAAGjD,cAAc,CAACwB,OAAO,CAAC9D,KAAK,GAAG,CAAC,GAAGA,KAAK,GAAG,CAAC;MACpF,MAAMuH,IAAI,GAAGjF,cAAc,CAACwB,OAAO,CAAC2B,CAAC,GAAGnD,cAAc,CAACwB,OAAO,CAAC5D,MAAM,GAAG,CAAC,GAAGA,MAAM,GAAG,CAAC;MACtF,MAAMsH,QAAQ,GAAG3C,IAAI,CAACc,GAAG,CAACrD,cAAc,CAACwB,OAAO,CAAC9D,KAAK,GAAGA,KAAK,EAAEsC,cAAc,CAACwB,OAAO,CAAC5D,MAAM,GAAGA,MAAM,CAAC;MAEvG+C,YAAY,CAACwB,KAAK,GAAGnF,UAAU,CAACkI,QAAQ,EAAEjE,eAAe,CAAC;MAC1DL,iBAAiB,CAACuB,KAAK,GAAGnF,UAAU,CAACgI,IAAI,EAAE/D,eAAe,CAAC;MAC3DJ,iBAAiB,CAACsB,KAAK,GAAGnF,UAAU,CAACiI,IAAI,EAAEhE,eAAe,CAAC;MAC3DH,cAAc,CAACqB,KAAK,GAAGnF,UAAU,CAAC,CAAC,EAAEiE,eAAe,EAAGqC,QAAQ,IAAK;QAClE,IAAIA,QAAQ,IAAI7F,SAAS,EAAE;UACzBd,OAAO,CAACc,SAAS,CAAC,CAAC,CAAC;QACtB;MACF,CAAC,CAAC;MACF;IACF;IAEA,IAAIA,SAAS,EAAE;MACbd,OAAO,CAACc,SAAS,CAAC,CAAC,CAAC;IACtB;EACF,CAAC,EAAE,CACDwD,eAAe,EACfxD,SAAS,EACTiB,cAAc,EACdhB,KAAK,EACLE,MAAM,EACNgD,iBAAiB,EACjBD,YAAY,EACZE,iBAAiB,EACjBC,cAAc,CACf,CAAC;EAEF,MAAMqE,mBAAmB,GAAGlJ,WAAW,CACpCmJ,KAA8C,IAAK;IAClD,IAAI,CAAClH,kBAAkB,EAAE;MACvB;IACF;IAEA,MAAMmH,aAAa,GAAGD,KAAK,CAACE,WAAW,CAACD,aAAa;IACrD,MAAME,WAAW,GAAGhD,IAAI,CAACiD,KAAK,CAACH,aAAa,CAACpC,CAAC,IAAIvF,KAAK,GAAGc,WAAW,CAAC,CAAC;IAEvE,MAAMiH,aAAa,GAAGnG,OAAO,EAAEoG,uBAAuB,CAACH,WAAW,CAAC;IAEnE,IAAIE,aAAa,EAAE;MACjB;IACF;IAEA,MAAM;MAAEE,SAAS;MAAEC,SAAS;MAAEC;IAAY,CAAC,GAAGzI,oBAAoB,CAACmI,WAAW,EAAExE,UAAU,EAAEzC,UAAU,CAAC;IAEvG,IAAIsH,SAAS,IAAIC,WAAW,KAAKC,SAAS,EAAE;MAC1CrE,QAAQ,CAACoE,WAAW,EAAE,KAAK,CAAC;IAC9B;IAEA,MAAMnG,YAAY,GAAGJ,OAAO,EAAEyG,QAAQ,CAAC,CAAC,CAACrG,YAAY;IAErD,IAAIiG,SAAS,KAAKjG,YAAY,IAAIiG,SAAS,IAAI,CAAC,IAAIA,SAAS,GAAG5E,UAAU,EAAE;MAC1E,IAAIzB,OAAO,EAAE;QACXA,OAAO,CAACK,eAAe,CAACgG,SAAS,CAAC;QAClCrG,OAAO,CAACqF,iBAAiB,CAAC,CAAC;MAC7B;MAEApE,UAAU,CAAC4B,KAAK,GAAGnF,UAAU,CAAC,CAAC,CAAC;MAChCsD,UAAU,CAAC6B,KAAK,GAAGnF,UAAU,CAAC,CAAC,CAAC;MAChCoD,iBAAiB,CAAC+B,KAAK,GAAGnF,UAAU,CAAC,CAAC,CAAC;MACvCmD,iBAAiB,CAACgC,KAAK,GAAGnF,UAAU,CAAC,CAAC,CAAC;MACvCqD,UAAU,CAAC8B,KAAK,GAAGnF,UAAU,CAAC,CAAC,CAAC;MAChCwD,KAAK,CAAC2B,KAAK,GAAGnF,UAAU,CAAC,CAAC,CAAC;MAC3B0D,QAAQ,CAACyB,KAAK,GAAG,CAAC;IACpB;EACF,CAAC,EACD,CACEV,QAAQ,EACRnC,OAAO,EACPyB,UAAU,EACVrD,KAAK,EACLc,WAAW,EACXN,kBAAkB,EAClBI,UAAU,EACViC,UAAU,EACVD,UAAU,EACVE,KAAK,EACLJ,iBAAiB,EACjBD,iBAAiB,EACjBE,UAAU,EACVK,QAAQ,CAEZ,CAAC;EAED,MAAMsF,cAAc,GAAG7J,OAAO,CAAC,MAAM;IACnC,MAAM8J,UAAU,GAAG,CAACjH,QAAQ,IAAIf,oBAAoB;IAEpD,OAAOzB,OAAO,CAAC0J,GAAG,CAAC,CAAC,CACjBC,WAAW,CAAC,EAAE,CAAC,CACfC,cAAc,CAAC,IAAI,CAAC,CACpBC,YAAY,CAAC,UAAU,CAAC,CACxBC,aAAa,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CACxBC,WAAW,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,CACtBC,OAAO,CAACP,UAAU,CAAC,CACnBQ,QAAQ,CAAErB,KAAK,IAAK;MACnB9E,UAAU,CAAC6B,KAAK,GAAGiD,KAAK,CAACsB,YAAY,GAAG3I,UAAU;IACpD,CAAC,CAAC,CACD4I,KAAK,CAAEvB,KAAK,IAAK;MAChB,IAAIa,UAAU,IAAIb,KAAK,CAACsB,YAAY,GAAG5I,gBAAgB,IAAIiH,aAAa,EAAE;QACxEpI,OAAO,CAACoI,aAAa,CAAC,CAAC,CAAC;QACxB;MACF;MAEAzE,UAAU,CAAC6B,KAAK,GAAGpF,UAAU,CAAC,CAAC,EAAE;QAC/B6J,OAAO,EAAE,EAAE;QACXC,SAAS,EAAE;MACb,CAAC,CAAC;IACJ,CAAC,CAAC;EACN,CAAC,EAAE,CAACvG,UAAU,EAAExC,gBAAgB,EAAEG,oBAAoB,EAAE8G,aAAa,EAAEhH,UAAU,EAAEiB,QAAQ,CAAC,CAAC;EAE7F,MAAM8H,gBAAgB,GAAG3K,OAAO,CAAC,MAAM;IACrC,OAAOK,OAAO,CAACuK,KAAK,CAAC,CAAC,CACnBP,OAAO,CAACrI,iBAAiB,CAAC,CAC1B6I,aAAa,CAAE5B,KAAK,IAAK;MACxB,IAAIA,KAAK,CAAC6B,eAAe,KAAK,CAAC,EAAE;QAC/BtK,OAAO,CAAC0C,aAAa,CAAC,CAAC,IAAI,CAAC;MAC9B;IACF,CAAC,CAAC,CACD6H,OAAO,CAAC,MAAM;MACb7G,UAAU,CAAC8B,KAAK,GAAG3B,KAAK,CAAC2B,KAAK;MAC9B/B,iBAAiB,CAAC+B,KAAK,GAAG5B,UAAU,CAAC4B,KAAK;MAC1ChC,iBAAiB,CAACgC,KAAK,GAAG7B,UAAU,CAAC6B,KAAK;IAC5C,CAAC,CAAC,CACDsE,QAAQ,CAAErB,KAAK,IAAK;MACnB,MAAM+B,QAAQ,GAAG9G,UAAU,CAAC8B,KAAK,GAAGiD,KAAK,CAAC5E,KAAK;MAE/CA,KAAK,CAAC2B,KAAK,GAAGgF,QAAQ;MAEtB,IAAI/B,KAAK,CAACgC,gBAAgB,KAAK,CAAC,EAAE;QAChC;MACF;MAEA,IAAID,QAAQ,IAAI,CAAC,EAAE;QACjB5G,UAAU,CAAC4B,KAAK,GAAGnF,UAAU,CAAC,CAAC,CAAC;QAChCsD,UAAU,CAAC6B,KAAK,GAAGnF,UAAU,CAAC,CAAC,CAAC;QAChC;MACF;MAEA,MAAMqK,UAAU,GAAGF,QAAQ,GAAG9G,UAAU,CAAC8B,KAAK;MAC9C,MAAMmF,OAAO,GAAGlC,KAAK,CAACmC,MAAM,GAAG7J,KAAK,GAAG,CAAC;MACxC,MAAM8J,OAAO,GAAGpC,KAAK,CAACqC,MAAM,GAAG7J,MAAM,GAAG,CAAC;;MAEzC;MACA,MAAM8J,aAAa,GAAGtH,iBAAiB,CAAC+B,KAAK,GAAImF,OAAO,GAAGD,UAAU,GAAIhH,UAAU,CAAC8B,KAAK;MACzF,MAAMwF,aAAa,GAAGxH,iBAAiB,CAACgC,KAAK,GAAIqF,OAAO,GAAGH,UAAU,GAAIhH,UAAU,CAAC8B,KAAK;MAEzF,MAAM;QAAE5B,UAAU,EAAEqH,qBAAqB;QAAEtH,UAAU,EAAEuH;MAAsB,CAAC,GAAGtG,oBAAoB,CAAC;QACpGhB,UAAU,EAAEmH,aAAa;QACzBpH,UAAU,EAAEqH,aAAa;QACzBnH,KAAK,EAAE2G;MACT,CAAC,CAAC;MAEF5G,UAAU,CAAC4B,KAAK,GAAGyF,qBAAqB;MACxCtH,UAAU,CAAC6B,KAAK,GAAG0F,qBAAqB;IAC1C,CAAC,CAAC,CACDlB,KAAK,CAAC,MAAM;MACX,IAAInG,KAAK,CAAC2B,KAAK,GAAG5D,YAAY,EAAE;QAC9BiC,KAAK,CAAC2B,KAAK,GAAGnF,UAAU,CAACuB,YAAY,EAAE;UACrC2C,QAAQ,EAAE,GAAG;UACbC,MAAM,EAAE1E,MAAM,CAAC2E,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;QAC5C,CAAC,CAAC;QAEF,MAAM;UAAEb,UAAU,EAAEqH,qBAAqB;UAAEtH,UAAU,EAAEuH;QAAsB,CAAC,GAAGtG,oBAAoB,CAAC;UACpGhB,UAAU,EAAEA,UAAU,CAAC4B,KAAK;UAC5B7B,UAAU,EAAEA,UAAU,CAAC6B,KAAK;UAC5B3B,KAAK,EAAEjC;QACT,CAAC,CAAC;QAEFgC,UAAU,CAAC4B,KAAK,GAAGnF,UAAU,CAAC4K,qBAAqB,CAAC;QACpDtH,UAAU,CAAC6B,KAAK,GAAGnF,UAAU,CAAC6K,qBAAqB,CAAC;QAEpD;MACF;MAEA,IAAIrH,KAAK,CAAC2B,KAAK,GAAG,CAAC,EAAE;QACnB3B,KAAK,CAAC2B,KAAK,GAAGnF,UAAU,CAAC,CAAC,EAAE;UAC1BkE,QAAQ,EAAE,GAAG;UACbC,MAAM,EAAE1E,MAAM,CAAC2E,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;QAC5C,CAAC,CAAC;QACFb,UAAU,CAAC4B,KAAK,GAAGnF,UAAU,CAAC,CAAC,CAAC;QAChCsD,UAAU,CAAC6B,KAAK,GAAGnF,UAAU,CAAC,CAAC,CAAC;QAChCoD,iBAAiB,CAAC+B,KAAK,GAAGnF,UAAU,CAAC,CAAC,CAAC;QACvCmD,iBAAiB,CAACgC,KAAK,GAAGnF,UAAU,CAAC,CAAC,CAAC;QACvC;MACF;MAEA,MAAM;QAAEuD,UAAU,EAAEqH,qBAAqB;QAAEtH,UAAU,EAAEuH;MAAsB,CAAC,GAAGtG,oBAAoB,CAAC;QACpGhB,UAAU,EAAEA,UAAU,CAAC4B,KAAK;QAC5B7B,UAAU,EAAEA,UAAU,CAAC6B,KAAK;QAC5B3B,KAAK,EAAEA,KAAK,CAAC2B;MACf,CAAC,CAAC;MAEF5B,UAAU,CAAC4B,KAAK,GAAGnF,UAAU,CAAC4K,qBAAqB,CAAC;MACpDtH,UAAU,CAAC6B,KAAK,GAAGnF,UAAU,CAAC6K,qBAAqB,CAAC;IACtD,CAAC,CAAC,CACDC,WAAW,CAAC,MAAM;MACjBnL,OAAO,CAAC0C,aAAa,CAAC,CAAC,KAAK,CAAC;IAC/B,CAAC,CAAC,CACD0I,UAAU,CAAC,MAAM;MAChBpL,OAAO,CAAC0C,aAAa,CAAC,CAAC,KAAK,CAAC;IAC/B,CAAC,CAAC;EACN,CAAC,EAAE,CACDmB,KAAK,EACLrC,iBAAiB,EACjBI,YAAY,EACZgC,UAAU,EACVD,UAAU,EACVD,UAAU,EACVD,iBAAiB,EACjBD,iBAAiB,EACjBzC,KAAK,EACLE,MAAM,EACN2D,oBAAoB,CACrB,CAAC;EAEF,MAAMyG,cAAc,GAAG7L,OAAO,CAAC,MAAM;IACnC,OAAOK,OAAO,CAAC0J,GAAG,CAAC,CAAC,CACjBM,OAAO,CAACnI,oBAAoB,IAAIW,QAAQ,CAAC,CACzCqH,YAAY,CAAC,UAAU,CAAC,CACxBD,cAAc,CAAC,IAAI,CAAC,CACpBc,OAAO,CAAC,MAAM;MACb9G,iBAAiB,CAAC+B,KAAK,GAAG5B,UAAU,CAAC4B,KAAK;MAC1ChC,iBAAiB,CAACgC,KAAK,GAAG7B,UAAU,CAAC6B,KAAK;IAC5C,CAAC,CAAC,CACDsE,QAAQ,CAAErB,KAAK,IAAK;MACnB,IAAI5E,KAAK,CAAC2B,KAAK,GAAG,CAAC,EAAE;QACnB,MAAMuF,aAAa,GAAGtH,iBAAiB,CAAC+B,KAAK,GAAGiD,KAAK,CAAC6C,YAAY;QAClE,MAAMN,aAAa,GAAGxH,iBAAiB,CAACgC,KAAK,GAAGiD,KAAK,CAACsB,YAAY;QAElE,MAAM;UAAEnG,UAAU,EAAEqH,qBAAqB;UAAEtH,UAAU,EAAEuH;QAAsB,CAAC,GAAGtG,oBAAoB,CAAC;UACpGhB,UAAU,EAAEmH,aAAa;UACzBpH,UAAU,EAAEqH,aAAa;UACzBnH,KAAK,EAAEA,KAAK,CAAC2B;QACf,CAAC,CAAC;QAEF5B,UAAU,CAAC4B,KAAK,GAAGyF,qBAAqB;QACxCtH,UAAU,CAAC6B,KAAK,GAAG0F,qBAAqB;MAC1C;IACF,CAAC,CAAC;EACN,CAAC,EAAE,CACDtH,UAAU,EACVD,UAAU,EACVjC,oBAAoB,EACpBW,QAAQ,EACRwB,KAAK,EACLJ,iBAAiB,EACjBD,iBAAiB,EACjBoB,oBAAoB,CACrB,CAAC;EAEF,MAAM2G,gBAAgB,GAAG/L,OAAO,CAAC,MAAM;IACrC,OAAOK,OAAO,CAAC2L,GAAG,CAAC,CAAC,CACjB3B,OAAO,CAACpI,sBAAsB,CAAC,CAC/BgK,YAAY,CAAC,CAAC,CAAC,CACfzB,KAAK,CAAEvB,KAAK,IAAK;MAChB,MAAMiD,SAAS,GAAG7H,KAAK,CAAC2B,KAAK,GAAG,CAAC,GAAG,CAAC,GAAG5D,YAAY;MAEpD,IAAI8J,SAAS,GAAG,CAAC,EAAE;QACjB,MAAMf,OAAO,GAAGlC,KAAK,CAACnC,CAAC,GAAGvF,KAAK,GAAG,CAAC;QACnC,MAAM8J,OAAO,GAAGpC,KAAK,CAACjC,CAAC,GAAGvF,MAAM,GAAG,CAAC;;QAEpC;QACA2C,UAAU,CAAC4B,KAAK,GAAGnF,UAAU,CAAC,CAACsK,OAAO,IAAIe,SAAS,GAAG,CAAC,CAAC,EAAE;UACxDnH,QAAQ,EAAE,GAAG;UACbC,MAAM,EAAE1E,MAAM,CAAC2E,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;QAC5C,CAAC,CAAC;QACFd,UAAU,CAAC6B,KAAK,GAAGnF,UAAU,CAAC,CAACwK,OAAO,IAAIa,SAAS,GAAG,CAAC,CAAC,EAAE;UACxDnH,QAAQ,EAAE,GAAG;UACbC,MAAM,EAAE1E,MAAM,CAAC2E,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;QAC5C,CAAC,CAAC;MACJ,CAAC,MAAM;QACLb,UAAU,CAAC4B,KAAK,GAAGnF,UAAU,CAAC,CAAC,EAAE;UAC/BkE,QAAQ,EAAE,GAAG;UACbC,MAAM,EAAE1E,MAAM,CAAC2E,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;QAC5C,CAAC,CAAC;QACFd,UAAU,CAAC6B,KAAK,GAAGnF,UAAU,CAAC,CAAC,EAAE;UAC/BkE,QAAQ,EAAE,GAAG;UACbC,MAAM,EAAE1E,MAAM,CAAC2E,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;QAC5C,CAAC,CAAC;MACJ;MAEAZ,KAAK,CAAC2B,KAAK,GAAGnF,UAAU,CAACqL,SAAS,EAAE;QAClCnH,QAAQ,EAAE,GAAG;QACbC,MAAM,EAAE1E,MAAM,CAAC2E,MAAM,CAAC,IAAI,EAAE,GAAG,EAAE,IAAI,EAAE,GAAG;MAC5C,CAAC,CAAC;IACJ,CAAC,CAAC;EACN,CAAC,EAAE,CAACZ,KAAK,EAAEpC,sBAAsB,EAAEG,YAAY,EAAEgC,UAAU,EAAED,UAAU,EAAE5C,KAAK,EAAEE,MAAM,CAAC,CAAC;EAExF,MAAM0K,WAAW,GAAGnM,OAAO,CAAC,MAAM;IAChC,OAAOK,OAAO,CAAC+L,IAAI,CAACzB,gBAAgB,EAAEtK,OAAO,CAACgM,SAAS,CAACR,cAAc,EAAEE,gBAAgB,CAAC,CAAC;EAC5F,CAAC,EAAE,CAACpB,gBAAgB,EAAEkB,cAAc,EAAEE,gBAAgB,CAAC,CAAC;EAExD,MAAMO,aAAa,GAAG5L,gBAAgB,CAAC,MAAM;IAC3C,OAAO;MACL6L,OAAO,EAAE5H,cAAc,CAACqB,KAAK;MAC7BwG,SAAS,EAAE,CACT;QAAEpI,UAAU,EAAEK,iBAAiB,CAACuB;MAAM,CAAC,EACvC;QAAE7B,UAAU,EAAEO,iBAAiB,CAACsB;MAAM,CAAC,EACvC;QAAE3B,KAAK,EAAEG,YAAY,CAACwB;MAAM,CAAC,EAE7B;QAAE7B,UAAU,EAAEA,UAAU,CAAC6B;MAAM,CAAC,EAChC;QAAE5B,UAAU,EAAEA,UAAU,CAAC4B;MAAM,CAAC,EAChC;QAAE3B,KAAK,EAAEA,KAAK,CAAC2B;MAAM,CAAC,EACtB;QAAEyG,MAAM,EAAE,GAAGlI,QAAQ,CAACyB,KAAK;MAAM,CAAC;IAEtC,CAAC;EACH,CAAC,CAAC;EAEF,MAAM0G,aAAa,GAAGhM,gBAAgB,CAAC,MAAM;IAC3C,MAAMiM,WAAW,GAAGhI,cAAc,CAACqB,KAAK;IAExC,IAAI,CAACnE,eAAe,IAAIwC,KAAK,CAAC2B,KAAK,KAAK,CAAC,EAAE;MACzC,OAAO;QAAEuG,OAAO,EAAEI;MAAY,CAAC;IACjC;IAEA,MAAMC,cAAc,GAAGrM,WAAW,CAAC4D,UAAU,CAAC6B,KAAK,EAAE,CAAC,CAAC,EAAE,GAAG,CAAC,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC,EAAE,OAAO,CAAC;IAE/E,OAAO;MAAEuG,OAAO,EAAEK,cAAc,GAAGD;IAAY,CAAC;EAClD,CAAC,EAAE,CAAC9K,eAAe,CAAC,CAAC;EAErB,MAAMgL,iBAAiB,GAAG/M,WAAW,CAAC,MAAM;IAC1CqD,OAAO,EAAE2J,qBAAqB,CAAC,CAAC;EAClC,CAAC,EAAE,CAAC3J,OAAO,CAAC,CAAC;EAEb,OAAO;IACLyB,UAAU;IACVnB,OAAO;IACPZ,QAAQ;IACRE,SAAS;IACTE,UAAU;IACV4G,cAAc;IACdsC,WAAW;IAEXnD,mBAAmB;IACnB6D,iBAAiB;IACjBjE,aAAa;IAEb0D,aAAa;IACbI;EACF,CAAC;AACH,CAAC","ignoreList":[]}
1
+ {"version":3,"names":["useCallback","useEffect","useMemo","useRef","useState","InteractionManager","useWindowDimensions","Gesture","Easing","interpolate","runOnJS","useAnimatedReaction","useAnimatedStyle","useSharedValue","withSpring","withTiming","registry","createBoundsConstraint","createScrollAction","getLoopAdjustedIndex","useGestureViewer","data","initialIndex","onIndexChange","onDismiss","width","customWidth","height","customHeight","dismissThreshold","resistance","animateBackdrop","enableDismissGesture","enableSwipeGesture","enableZoomGesture","enableDoubleTapGesture","enableZoomPanGesture","enableLoop","maxZoomScale","itemSpacing","id","onDismissStart","triggerAnimation","autoPlay","autoPlayInterval","screenWidth","screenHeight","isZoomed","setIsZoomed","isRotated","setIsRotated","isPinching","setIsPinching","manager","setManager","shouldStartTriggerAnimation","setShouldStartTriggerAnimation","currentIndex","setCurrentIndex","listRef","unsubscribeRef","onIndexChangeRef","lastEmittedIndexRef","triggerRectRef","onAnimationCompleteRef","onAnimationComplete","initialTranslateY","initialTranslateX","startScale","translateY","translateX","scale","backdropOpacity","rotation","triggerScale","triggerTranslateX","triggerTranslateY","triggerOpacity","lastFocalX","lastFocalY","dataLength","length","animationConfig","duration","easing","bezier","reduceMotion","adjustedInitialIndex","constrainTranslation","current","scrollTo","index","animated","scrollAction","emitZoomChange","currentScale","prevScale","emitRotationChange","currentRotation","prevRotation","value","previousScale","previousRotation","intervalMs","Math","max","floor","Number","isFinite","interval","setInterval","goToNext","clearInterval","startX","x","startY","y","initialScaleFromTrigger","min","finished","node","getTriggerNode","measure","_x","_y","pageX","pageY","clearTriggerNode","handleManagerChange","subscribe","state","unsubscribeFromRegistry","subscribeToManager","setDataLength","setEnableSwipeGesture","setWidth","setHeight","setZoomSharedValues","setRotation","setEnableLoop","notifyStateChange","setListRef","runAfterInteractions","cancel","handleDismiss","endX","endY","endScale","onMomentumScrollEnd","event","contentOffset","nativeEvent","scrollIndex","round","isLoopHandled","handleMomentumScrollEnd","realIndex","needsJump","jumpToIndex","undefined","getState","dismissGesture","canDismiss","Pan","minDistance","averageTouches","activeCursor","activeOffsetY","failOffsetX","enabled","onUpdate","translationY","onEnd","damping","stiffness","zoomPinchGesture","Pinch","onTouchesDown","numberOfTouches","onBegin","focalX","focalY","newScale","focalDeltaX","abs","focalDeltaY","threshold","deltaScale","centerX","centerY","newTranslateX","newTranslateY","constrainedTranslateX","constrainedTranslateY","onTouchesUp","onFinalize","zoomPanGesture","translationX","doubleTapGesture","Tap","numberOfTaps","nextScale","zoomGesture","Race","Exclusive","animatedStyle","opacity","transform","rotate","backdropStyle","baseOpacity","dismissOpacity","onScrollBeginDrag","handleScrollBeginDrag"],"sourceRoot":"../../src","sources":["useGestureViewer.ts"],"mappings":"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","ignoreList":[]}
@@ -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;AAG/D,KAAK,qBAAqB,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI,CAC1C,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,EAC7B,YAAY,GAAG,iBAAiB,GAAG,eAAe,GAAG,WAAW,GAAG,gBAAgB,GAAG,eAAe,GAAG,SAAS,CAClH,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,EAAE,EAAE,EAAE,gWAuBzC,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC;;;;;;;;iCAwUvB,oBAAoB,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAuTlD,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;AAG/D,KAAK,qBAAqB,CAAC,KAAK,EAAE,EAAE,IAAI,IAAI,CAC1C,kBAAkB,CAAC,KAAK,EAAE,EAAE,CAAC,EAC7B,YAAY,GAAG,iBAAiB,GAAG,eAAe,GAAG,WAAW,GAAG,gBAAgB,GAAG,eAAe,GAAG,SAAS,CAClH,CAAC;AAEF,eAAO,MAAM,gBAAgB,GAAI,KAAK,EAAE,EAAE,EAAE,gWAuBzC,qBAAqB,CAAC,KAAK,EAAE,EAAE,CAAC;;;;;;;;iCA2UvB,oBAAoB,CAAC,iBAAiB,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAgUlD,CAAC"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "react-native-gesture-image-viewer",
3
- "version": "1.9.3",
3
+ "version": "1.9.4",
4
4
  "description": "🖼️ React Native Image Viewer - Reanimated-powered image gestures with full control",
5
5
  "main": "./lib/module/index.js",
6
6
  "types": "./lib/typescript/src/index.d.ts",
@@ -83,6 +83,9 @@ export const useGestureViewer = <ItemT, LC>({
83
83
  const triggerTranslateY = useSharedValue(0);
84
84
  const triggerOpacity = useSharedValue(1);
85
85
 
86
+ const lastFocalX = useSharedValue(0);
87
+ const lastFocalY = useSharedValue(0);
88
+
86
89
  const dataLength = data?.length || 0;
87
90
 
88
91
  const animationConfig = useMemo(
@@ -466,29 +469,36 @@ export const useGestureViewer = <ItemT, LC>({
466
469
  runOnJS(setIsPinching)(true);
467
470
  }
468
471
  })
469
- .onBegin(() => {
472
+ .onBegin((event) => {
470
473
  startScale.value = scale.value;
471
474
  initialTranslateX.value = translateX.value;
472
475
  initialTranslateY.value = translateY.value;
476
+ lastFocalX.value = event.focalX;
477
+ lastFocalY.value = event.focalY;
473
478
  })
474
479
  .onUpdate((event) => {
475
480
  const newScale = startScale.value * event.scale;
476
481
 
477
482
  scale.value = newScale;
478
483
 
479
- if (event.numberOfPointers !== 2) {
480
- return;
481
- }
482
-
483
484
  if (newScale <= 1) {
484
485
  translateX.value = withTiming(0);
485
486
  translateY.value = withTiming(0);
486
487
  return;
487
488
  }
488
489
 
490
+ const focalDeltaX = Math.abs(event.focalX - lastFocalX.value);
491
+ const focalDeltaY = Math.abs(event.focalY - lastFocalY.value);
492
+ const threshold = 50;
493
+
494
+ if (focalDeltaX < threshold && focalDeltaY < threshold) {
495
+ lastFocalX.value = event.focalX;
496
+ lastFocalY.value = event.focalY;
497
+ }
498
+
489
499
  const deltaScale = newScale - startScale.value;
490
- const centerX = event.focalX - width / 2;
491
- const centerY = event.focalY - height / 2;
500
+ const centerX = lastFocalX.value - width / 2;
501
+ const centerY = lastFocalY.value - height / 2;
492
502
 
493
503
  // NOTE 새로운 이동값 = 기존 이동값 - (중심점 거리 × 스케일 변화량) / 원래 스케일 (중심점이 화면 중심에서 멀수록, 확대 배율이 클수록 더 많이 이동)
494
504
  const newTranslateX = initialTranslateX.value - (centerX * deltaScale) / startScale.value;
@@ -561,6 +571,8 @@ export const useGestureViewer = <ItemT, LC>({
561
571
  width,
562
572
  height,
563
573
  constrainTranslation,
574
+ lastFocalX,
575
+ lastFocalY,
564
576
  ]);
565
577
 
566
578
  const zoomPanGesture = useMemo(() => {