{"version":3,"names":["isChromeDebugger","isFabric","isJest","shouldBeUseWeb","dispatchCommand","scrollTo","scrollToFabric","animatedRef","x","y","animated","scrollToPaper","_WORKLET","viewTag","_scrollToPaper","scrollToJest","console","warn","scrollToChromeDebugger","scrollToDefault"],"sources":["scrollTo.ts"],"sourcesContent":["'use strict';\nimport {\n isChromeDebugger,\n isFabric,\n isJest,\n shouldBeUseWeb,\n} from '../PlatformChecker';\nimport { dispatchCommand } from './dispatchCommand';\nimport type {\n AnimatedRef,\n AnimatedRefOnJS,\n AnimatedRefOnUI,\n} from '../hook/commonTypes';\nimport type { Component } from 'react';\n\ntype ScrollTo = (\n animatedRef: AnimatedRef,\n x: number,\n y: number,\n animated: boolean\n) => void;\n\n/**\n * Lets you synchronously scroll to a given position of a `ScrollView`.\n *\n * @param animatedRef - An [animated ref](https://docs.swmansion.com/react-native-reanimated/docs/core/useAnimatedRef) attached to an `Animated.ScrollView` component.\n * @param x - The x position you want to scroll to.\n * @param y - The y position you want to scroll to.\n * @param animated - Whether the scrolling should be smooth or instant.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/scroll/scrollTo\n */\nexport let scrollTo: ScrollTo;\n\nfunction scrollToFabric(\n animatedRef: AnimatedRefOnJS | AnimatedRefOnUI,\n x: number,\n y: number,\n animated: boolean\n) {\n 'worklet';\n dispatchCommand(\n // This assertion is needed to comply to `dispatchCommand` interface\n animatedRef as unknown as AnimatedRef,\n 'scrollTo',\n [x, y, animated]\n );\n}\n\nfunction scrollToPaper(\n animatedRef: AnimatedRefOnJS | AnimatedRefOnUI,\n x: number,\n y: number,\n animated: boolean\n) {\n 'worklet';\n if (!_WORKLET) {\n return;\n }\n\n const viewTag = animatedRef() as number;\n _scrollToPaper!(viewTag, x, y, animated);\n}\n\nfunction scrollToJest() {\n console.warn('[Reanimated] scrollTo() is not supported with Jest.');\n}\n\nfunction scrollToChromeDebugger() {\n console.warn(\n '[Reanimated] scrollTo() is not supported with Chrome Debugger.'\n );\n}\n\nfunction scrollToDefault() {\n console.warn(\n '[Reanimated] scrollTo() is not supported on this configuration.'\n );\n}\n\nif (!shouldBeUseWeb()) {\n // Those assertions are actually correct since on Native platforms `AnimatedRef` is\n // mapped as a different function in `shareableMappingCache` and\n // TypeScript is not able to infer that.\n if (isFabric()) {\n scrollTo = scrollToFabric as unknown as ScrollTo;\n } else {\n scrollTo = scrollToPaper as unknown as ScrollTo;\n }\n} else if (isJest()) {\n scrollTo = scrollToJest;\n} else if (isChromeDebugger()) {\n scrollTo = scrollToChromeDebugger;\n} else {\n scrollTo = scrollToDefault;\n}\n"],"mappings":"AAAA,YAAY;;AACZ,SACEA,gBAAgB,EAChBC,QAAQ,EACRC,MAAM,EACNC,cAAc,QACT,oBAAoB;AAC3B,SAASC,eAAe,QAAQ,mBAAmB;AAenD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,IAAIC,QAAkB;AAE7B,SAASC,cAAcA,CACrBC,WAA8C,EAC9CC,CAAS,EACTC,CAAS,EACTC,QAAiB,EACjB;EACA,SAAS;;EACTN,eAAe;EACb;EACAG,WAAW,EACX,UAAU,EACV,CAACC,CAAC,EAAEC,CAAC,EAAEC,QAAQ,CAAC,CACjB;AACH;AAEA,SAASC,aAAaA,CACpBJ,WAA8C,EAC9CC,CAAS,EACTC,CAAS,EACTC,QAAiB,EACjB;EACA,SAAS;;EACT,IAAI,CAACE,QAAQ,EAAE;IACb;EACF;EAEA,MAAMC,OAAO,GAAGN,WAAW,EAAY;EACvCO,cAAc,CAAED,OAAO,EAAEL,CAAC,EAAEC,CAAC,EAAEC,QAAQ,CAAC;AAC1C;AAEA,SAASK,YAAYA,CAAA,EAAG;EACtBC,OAAO,CAACC,IAAI,CAAC,qDAAqD,CAAC;AACrE;AAEA,SAASC,sBAAsBA,CAAA,EAAG;EAChCF,OAAO,CAACC,IAAI,CACV,gEAAgE,CACjE;AACH;AAEA,SAASE,eAAeA,CAAA,EAAG;EACzBH,OAAO,CAACC,IAAI,CACV,iEAAiE,CAClE;AACH;AAEA,IAAI,CAACd,cAAc,EAAE,EAAE;EACrB;EACA;EACA;EACA,IAAIF,QAAQ,EAAE,EAAE;IACdI,QAAQ,GAAGC,cAAqC;EAClD,CAAC,MAAM;IACLD,QAAQ,GAAGM,aAAoC;EACjD;AACF,CAAC,MAAM,IAAIT,MAAM,EAAE,EAAE;EACnBG,QAAQ,GAAGU,YAAY;AACzB,CAAC,MAAM,IAAIf,gBAAgB,EAAE,EAAE;EAC7BK,QAAQ,GAAGa,sBAAsB;AACnC,CAAC,MAAM;EACLb,QAAQ,GAAGc,eAAe;AAC5B"}