{"version":3,"names":["_extends","Object","assign","bind","target","i","arguments","length","source","key","prototype","hasOwnProperty","call","apply","_defineProperty","obj","value","_toPropertyKey","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","TypeError","Number","React","findNodeHandle","Platform","WorkletEventHandler","invariant","adaptViewConfig","RNRenderer","enableLayoutAnimations","SharedTransition","LayoutAnimationType","getShadowNodeWrapperFromRef","removeFromPropsRegistry","getReduceMotionFromConfig","maybeBuild","SkipEnteringContext","JSPropsUpdater","has","flattenArray","setAndForwardRef","isFabric","isJest","isWeb","shouldBeUseWeb","InlinePropManager","PropsFilter","startWebLayoutAnimation","tryActivateLayoutTransition","configureWebLayoutAnimations","getReducedMotionFromConfig","saveSnapshot","updateLayoutAnimations","addHTMLMutationObserver","IS_WEB","IS_FABRIC","onlyAnimatedStyles","styles","filter","style","viewDescriptors","createAnimatedComponent","Component","options","isReactComponent","name","AnimatedComponent","constructor","props","getForwardedRef","forwardedRef","setLocalRef","ref","tag","layout","entering","exiting","sharedTransitionTag","_this$context","skipEntering","context","current","_this$props","ENTERING","displayName","sharedElementTransition","sharedTransitionStyle","reduceMotionInTransition","getReduceMotion","registerTransition","_sharedElementTransition","_component","jestAnimatedStyle","componentDidMount","_attachNativeEvents","_jsPropsUpdater","addOnJSPropsChangeListener","_attachAnimatedStyles","_InlinePropManager","attachInlineProps","_getViewInfo","_configureLayoutTransition","_isFirstRender","componentWillUnmount","_this$_sharedElementT","_detachNativeEvents","removeOnJSPropsChangeListener","_detachStyles","detachInlineProps","unregisterTransition","_viewTag","EXITING","reduceMotionInExiting","_this$props2","_getEventViewRef","_this$_component","_getScrollableNode","_ref","getScrollableNode","node","viewTag","prop","setNativeProps","registerForEvents","unregisterFromEvents","_styles","viewsRef","remove","_this$props$animatedP","animatedProps","_reattachNativeEvents","prevProps","reattachNeeded","_updateFromNative","_this$_component2","_this$_component2$set","_this$_component3","_getAnimatableRef","_ref2","_viewInfo","viewName","shadowNodeWrapper","viewConfig","component","getAnimatableRef","_hostInstance$viewCon","hostInstance","findHostInstance_DEPRECATED","Error","_nativeTag","uiViewClassName","_this$props$animatedP2","_this$props$animatedP3","prevStyles","prevAnimatedProps","_animatedProps","hasReanimated2Props","hasOneSameStyle","prevStyle","isPresent","some","forEach","add","initial","componentDidUpdate","_prevState","snapshot","oldLayout","LAYOUT","getSnapshotBeforeUpdate","_this$_component4","getBoundingClientRect","render","filteredProps","_PropsFilter","filterNonAnimatedProps","visibility","platformProps","select","web","default","collapsable","createElement","_setComponentRef","forwardRef"],"sources":["createAnimatedComponent.tsx"],"sourcesContent":["'use strict';\nimport type {\n Component,\n ComponentClass,\n ComponentType,\n FunctionComponent,\n MutableRefObject,\n} from 'react';\nimport React from 'react';\nimport { findNodeHandle, Platform } from 'react-native';\nimport WorkletEventHandler from '../reanimated2/WorkletEventHandler';\nimport '../reanimated2/layoutReanimation/animationsManager';\nimport invariant from 'invariant';\nimport { adaptViewConfig } from '../ConfigHelper';\nimport { RNRenderer } from '../reanimated2/platform-specific/RNRenderer';\nimport { enableLayoutAnimations } from '../reanimated2/core';\nimport {\n SharedTransition,\n LayoutAnimationType,\n} from '../reanimated2/layoutReanimation';\nimport type { StyleProps, ShadowNodeWrapper } from '../reanimated2/commonTypes';\nimport { getShadowNodeWrapperFromRef } from '../reanimated2/fabricUtils';\nimport { removeFromPropsRegistry } from '../reanimated2/PropsRegistry';\nimport { getReduceMotionFromConfig } from '../reanimated2/animation/util';\nimport { maybeBuild } from '../animationBuilder';\nimport { SkipEnteringContext } from '../reanimated2/component/LayoutAnimationConfig';\nimport type { AnimateProps } from '../reanimated2';\nimport JSPropsUpdater from './JSPropsUpdater';\nimport type {\n AnimatedComponentProps,\n AnimatedProps,\n InitialComponentProps,\n AnimatedComponentRef,\n IAnimatedComponentInternal,\n ViewInfo,\n} from './commonTypes';\nimport { has, flattenArray } from './utils';\nimport setAndForwardRef from './setAndForwardRef';\nimport {\n isFabric,\n isJest,\n isWeb,\n shouldBeUseWeb,\n} from '../reanimated2/PlatformChecker';\nimport { InlinePropManager } from './InlinePropManager';\nimport { PropsFilter } from './PropsFilter';\nimport {\n startWebLayoutAnimation,\n tryActivateLayoutTransition,\n configureWebLayoutAnimations,\n getReducedMotionFromConfig,\n saveSnapshot,\n} from '../reanimated2/layoutReanimation/web';\nimport { updateLayoutAnimations } from '../reanimated2/UpdateLayoutAnimations';\nimport type { CustomConfig } from '../reanimated2/layoutReanimation/web/config';\nimport type { FlatList, FlatListProps } from 'react-native';\nimport { addHTMLMutationObserver } from '../reanimated2/layoutReanimation/web/domUtils';\n\nconst IS_WEB = isWeb();\nconst IS_FABRIC = isFabric();\n\nif (IS_WEB) {\n configureWebLayoutAnimations();\n}\n\nfunction onlyAnimatedStyles(styles: StyleProps[]): StyleProps[] {\n return styles.filter((style) => style?.viewDescriptors);\n}\n\ntype Options

= {\n setNativeProps: (ref: AnimatedComponentRef, props: P) => void;\n};\n\n/**\n * Lets you create an Animated version of any React Native component.\n *\n * @param component - The component you want to make animatable.\n * @returns A component that Reanimated is capable of animating.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/core/createAnimatedComponent\n */\n\n// Don't change the order of overloads, since such a change breaks current behavior\nexport function createAnimatedComponent

(\n component: FunctionComponent

,\n options?: Options

\n): FunctionComponent>;\n\nexport function createAnimatedComponent

(\n component: ComponentClass

,\n options?: Options

\n): ComponentClass>;\n\nexport function createAnimatedComponent

(\n // Actually ComponentType

= ComponentClass

| FunctionComponent

but we need this overload too\n // since some external components (like FastImage) are typed just as ComponentType\n component: ComponentType

,\n options?: Options

\n): FunctionComponent> | ComponentClass>;\n\n/**\n * @deprecated Please use `Animated.FlatList` component instead of calling `Animated.createAnimatedComponent(FlatList)` manually.\n */\n// @ts-ignore This is required to create this overload, since type of createAnimatedComponent is incorrect and doesn't include typeof FlatList\nexport function createAnimatedComponent(\n component: typeof FlatList,\n options?: Options\n): ComponentClass>>;\n\nexport function createAnimatedComponent(\n Component: ComponentType,\n options?: Options\n): any {\n invariant(\n typeof Component !== 'function' ||\n (Component.prototype && Component.prototype.isReactComponent),\n `Looks like you're passing a function component \\`${Component.name}\\` to \\`createAnimatedComponent\\` function which supports only class components. Please wrap your function component with \\`React.forwardRef()\\` or use a class component instead.`\n );\n\n class AnimatedComponent\n extends React.Component>\n implements IAnimatedComponentInternal\n {\n _styles: StyleProps[] | null = null;\n _animatedProps?: Partial>;\n _viewTag = -1;\n _isFirstRender = true;\n jestAnimatedStyle: { value: StyleProps } = { value: {} };\n _component: AnimatedComponentRef | HTMLElement | null = null;\n _sharedElementTransition: SharedTransition | null = null;\n _jsPropsUpdater = new JSPropsUpdater();\n _InlinePropManager = new InlinePropManager();\n _PropsFilter = new PropsFilter();\n _viewInfo?: ViewInfo;\n static displayName: string;\n static contextType = SkipEnteringContext;\n context!: React.ContextType;\n\n constructor(props: AnimatedComponentProps) {\n super(props);\n if (isJest()) {\n this.jestAnimatedStyle = { value: {} };\n }\n }\n\n componentDidMount() {\n this._attachNativeEvents();\n this._jsPropsUpdater.addOnJSPropsChangeListener(this);\n this._attachAnimatedStyles();\n this._InlinePropManager.attachInlineProps(this, this._getViewInfo());\n\n const layout = this.props.layout;\n if (layout) {\n this._configureLayoutTransition();\n }\n\n if (IS_WEB) {\n if (this.props.exiting) {\n saveSnapshot(this._component as HTMLElement);\n }\n\n if (\n !this.props.entering ||\n getReducedMotionFromConfig(this.props.entering as CustomConfig)\n ) {\n this._isFirstRender = false;\n return;\n }\n\n startWebLayoutAnimation(\n this.props,\n this._component as HTMLElement,\n LayoutAnimationType.ENTERING\n );\n }\n\n this._isFirstRender = false;\n }\n\n componentWillUnmount() {\n this._detachNativeEvents();\n this._jsPropsUpdater.removeOnJSPropsChangeListener(this);\n this._detachStyles();\n this._InlinePropManager.detachInlineProps();\n this._sharedElementTransition?.unregisterTransition(this._viewTag);\n\n const exiting = this.props.exiting;\n if (\n IS_WEB &&\n this.props.exiting &&\n !getReducedMotionFromConfig(this.props.exiting as CustomConfig)\n ) {\n addHTMLMutationObserver();\n\n startWebLayoutAnimation(\n this.props,\n this._component as HTMLElement,\n LayoutAnimationType.EXITING\n );\n } else if (exiting) {\n const reduceMotionInExiting =\n 'getReduceMotion' in exiting &&\n typeof exiting.getReduceMotion === 'function'\n ? getReduceMotionFromConfig(exiting.getReduceMotion())\n : getReduceMotionFromConfig();\n if (!reduceMotionInExiting) {\n updateLayoutAnimations(\n this._viewTag,\n LayoutAnimationType.EXITING,\n maybeBuild(\n exiting,\n this.props?.style,\n AnimatedComponent.displayName\n )\n );\n }\n }\n }\n\n _getEventViewRef() {\n // Make sure to get the scrollable node for components that implement\n // `ScrollResponder.Mixin`.\n return (this._component as AnimatedComponentRef)?.getScrollableNode\n ? (this._component as AnimatedComponentRef).getScrollableNode?.()\n : this._component;\n }\n\n _attachNativeEvents() {\n const node = this._getEventViewRef() as AnimatedComponentRef;\n let viewTag = null; // We set it only if needed\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n if (viewTag === null) {\n viewTag = findNodeHandle(options?.setNativeProps ? this : node);\n }\n prop.current.registerForEvents(viewTag as number, key);\n }\n }\n }\n\n _detachNativeEvents() {\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler\n ) {\n prop.current.unregisterFromEvents();\n }\n }\n }\n\n _detachStyles() {\n if (IS_WEB && this._styles !== null) {\n for (const style of this._styles) {\n style.viewsRef.remove(this);\n }\n } else if (this._viewTag !== -1 && this._styles !== null) {\n for (const style of this._styles) {\n style.viewDescriptors.remove(this._viewTag);\n }\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.remove(this._viewTag);\n }\n if (IS_FABRIC) {\n removeFromPropsRegistry(this._viewTag);\n }\n }\n }\n\n _reattachNativeEvents(\n prevProps: AnimatedComponentProps\n ) {\n for (const key in prevProps) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded\n ) {\n prop.current.unregisterFromEvents();\n }\n }\n\n let viewTag = null;\n\n for (const key in this.props) {\n const prop = this.props[key];\n if (\n has('current', prop) &&\n prop.current instanceof WorkletEventHandler &&\n prop.current.reattachNeeded\n ) {\n if (viewTag === null) {\n const node = this._getEventViewRef() as AnimatedComponentRef;\n viewTag = findNodeHandle(options?.setNativeProps ? this : node);\n }\n prop.current.registerForEvents(viewTag as number, key);\n prop.current.reattachNeeded = false;\n }\n }\n }\n\n _updateFromNative(props: StyleProps) {\n if (options?.setNativeProps) {\n options.setNativeProps(this._component as AnimatedComponentRef, props);\n } else {\n (this._component as AnimatedComponentRef)?.setNativeProps?.(props);\n }\n }\n\n _getViewInfo(): ViewInfo {\n if (this._viewInfo !== undefined) {\n return this._viewInfo;\n }\n\n let viewTag: number | HTMLElement | null;\n let viewName: string | null;\n let shadowNodeWrapper: ShadowNodeWrapper | null = null;\n let viewConfig;\n // Component can specify ref which should be animated when animated version of the component is created.\n // Otherwise, we animate the component itself.\n const component = (this._component as AnimatedComponentRef)\n ?.getAnimatableRef\n ? (this._component as AnimatedComponentRef).getAnimatableRef?.()\n : this;\n\n if (IS_WEB) {\n // At this point I assume that `_setComponentRef` was already called and `_component` is set.\n // `this._component` on web represents HTMLElement of our component, that's why we use casting\n viewTag = this._component as HTMLElement;\n viewName = null;\n shadowNodeWrapper = null;\n viewConfig = null;\n } else {\n // hostInstance can be null for a component that doesn't render anything (render function returns null). Example: svg Stop: https://github.com/react-native-svg/react-native-svg/blob/develop/src/elements/Stop.tsx\n const hostInstance = RNRenderer.findHostInstance_DEPRECATED(component);\n if (!hostInstance) {\n throw new Error(\n '[Reanimated] Cannot find host instance for this component. Maybe it renders nothing?'\n );\n }\n // we can access view tag in the same way it's accessed here https://github.com/facebook/react/blob/e3f4eb7272d4ca0ee49f27577156b57eeb07cf73/packages/react-native-renderer/src/ReactFabric.js#L146\n viewTag = hostInstance?._nativeTag;\n /**\n * RN uses viewConfig for components for storing different properties of the component(example: https://github.com/facebook/react-native/blob/main/packages/react-native/Libraries/Components/ScrollView/ScrollViewNativeComponent.js#L24).\n * The name we're looking for is in the field named uiViewClassName.\n */\n viewName = hostInstance?.viewConfig?.uiViewClassName;\n\n viewConfig = hostInstance?.viewConfig;\n\n if (IS_FABRIC) {\n shadowNodeWrapper = getShadowNodeWrapperFromRef(this);\n }\n }\n this._viewInfo = { viewTag, viewName, shadowNodeWrapper, viewConfig };\n return this._viewInfo;\n }\n\n _attachAnimatedStyles() {\n const styles = this.props.style\n ? onlyAnimatedStyles(flattenArray(this.props.style))\n : [];\n const prevStyles = this._styles;\n this._styles = styles;\n\n const prevAnimatedProps = this._animatedProps;\n this._animatedProps = this.props.animatedProps;\n\n const { viewTag, viewName, shadowNodeWrapper, viewConfig } =\n this._getViewInfo();\n\n // update UI props whitelist for this view\n const hasReanimated2Props =\n this.props.animatedProps?.viewDescriptors || styles.length;\n if (hasReanimated2Props && viewConfig) {\n adaptViewConfig(viewConfig);\n }\n\n this._viewTag = viewTag as number;\n\n // remove old styles\n if (prevStyles) {\n // in most of the cases, views have only a single animated style and it remains unchanged\n const hasOneSameStyle =\n styles.length === 1 &&\n prevStyles.length === 1 &&\n styles[0] === prevStyles[0];\n\n if (!hasOneSameStyle) {\n // otherwise, remove each style that is not present in new styles\n for (const prevStyle of prevStyles) {\n const isPresent = styles.some((style) => style === prevStyle);\n if (!isPresent) {\n prevStyle.viewDescriptors.remove(viewTag);\n }\n }\n }\n }\n\n styles.forEach((style) => {\n style.viewDescriptors.add({\n tag: viewTag,\n name: viewName,\n shadowNodeWrapper,\n });\n if (isJest()) {\n /**\n * We need to connect Jest's TestObject instance whose contains just props object\n * with the updateProps() function where we update the properties of the component.\n * We can't update props object directly because TestObject contains a copy of props - look at render function:\n * const props = this._filterNonAnimatedProps(this.props);\n */\n this.jestAnimatedStyle.value = {\n ...this.jestAnimatedStyle.value,\n ...style.initial.value,\n };\n style.jestAnimatedStyle.current = this.jestAnimatedStyle;\n }\n });\n\n // detach old animatedProps\n if (prevAnimatedProps && prevAnimatedProps !== this.props.animatedProps) {\n prevAnimatedProps.viewDescriptors!.remove(viewTag as number);\n }\n\n // attach animatedProps property\n if (this.props.animatedProps?.viewDescriptors) {\n this.props.animatedProps.viewDescriptors.add({\n tag: viewTag as number,\n name: viewName!,\n shadowNodeWrapper: shadowNodeWrapper!,\n });\n }\n }\n\n componentDidUpdate(\n prevProps: AnimatedComponentProps,\n _prevState: Readonly,\n // This type comes straight from React\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n snapshot: DOMRect | null\n ) {\n const layout = this.props.layout;\n const oldLayout = prevProps.layout;\n if (layout !== oldLayout) {\n this._configureLayoutTransition();\n }\n this._reattachNativeEvents(prevProps);\n this._attachAnimatedStyles();\n this._InlinePropManager.attachInlineProps(this, this._getViewInfo());\n\n if (IS_WEB && this.props.exiting) {\n saveSnapshot(this._component as HTMLElement);\n }\n\n // Snapshot won't be undefined because it comes from getSnapshotBeforeUpdate method\n if (\n IS_WEB &&\n snapshot !== null &&\n this.props.layout &&\n !getReducedMotionFromConfig(this.props.layout as CustomConfig)\n ) {\n tryActivateLayoutTransition(\n this.props,\n this._component as HTMLElement,\n snapshot\n );\n }\n }\n\n _configureLayoutTransition() {\n const layout = this.props.layout\n ? maybeBuild(\n this.props.layout,\n undefined /* We don't have to warn user if style has common properties with animation for LAYOUT */,\n AnimatedComponent.displayName\n )\n : undefined;\n updateLayoutAnimations(this._viewTag, LayoutAnimationType.LAYOUT, layout);\n }\n\n _setComponentRef = setAndForwardRef({\n getForwardedRef: () =>\n this.props.forwardedRef as MutableRefObject<\n Component, Record, unknown>\n >,\n setLocalRef: (ref) => {\n // TODO update config\n\n const tag = IS_WEB\n ? (ref as HTMLElement)\n : findNodeHandle(ref as Component);\n\n const { layout, entering, exiting, sharedTransitionTag } = this.props;\n if (\n (layout || entering || exiting || sharedTransitionTag) &&\n tag != null\n ) {\n if (!shouldBeUseWeb()) {\n enableLayoutAnimations(true, false);\n }\n\n const skipEntering = this.context?.current;\n if (entering && !skipEntering) {\n updateLayoutAnimations(\n tag as number,\n LayoutAnimationType.ENTERING,\n maybeBuild(\n entering,\n this.props?.style,\n AnimatedComponent.displayName\n )\n );\n }\n if (sharedTransitionTag && !IS_WEB) {\n const sharedElementTransition =\n this.props.sharedTransitionStyle ?? new SharedTransition();\n const reduceMotionInTransition = getReduceMotionFromConfig(\n sharedElementTransition.getReduceMotion()\n );\n if (!reduceMotionInTransition) {\n sharedElementTransition.registerTransition(\n tag as number,\n sharedTransitionTag\n );\n this._sharedElementTransition = sharedElementTransition;\n }\n }\n }\n\n if (ref !== this._component) {\n this._component = ref;\n }\n },\n });\n\n // This is a component lifecycle method from React, therefore we are not calling it directly.\n // It is called before the component gets rerendered. This way we can access components' position before it changed\n // and later on, in componentDidUpdate, calculate translation for layout transition.\n getSnapshotBeforeUpdate() {\n if (\n IS_WEB &&\n (this._component as HTMLElement)?.getBoundingClientRect !== undefined\n ) {\n return (this._component as HTMLElement).getBoundingClientRect();\n }\n\n return null;\n }\n\n render() {\n const filteredProps = this._PropsFilter.filterNonAnimatedProps(this);\n\n if (isJest()) {\n filteredProps.jestAnimatedStyle = this.jestAnimatedStyle;\n }\n\n // Layout animations on web are set inside `componentDidMount` method, which is called after first render.\n // Because of that we can encounter a situation in which component is visible for a short amount of time, and later on animation triggers.\n // I've tested that on various browsers and devices and it did not happen to me. To be sure that it won't happen to someone else,\n // I've decided to hide component at first render. Its visibility is reset in `componentDidMount`.\n if (\n this._isFirstRender &&\n IS_WEB &&\n filteredProps.entering &&\n !getReducedMotionFromConfig(filteredProps.entering as CustomConfig)\n ) {\n filteredProps.style = {\n ...(filteredProps.style ?? {}),\n visibility: 'hidden', // Hide component until `componentDidMount` triggers\n };\n }\n\n const platformProps = Platform.select({\n web: {},\n default: { collapsable: false },\n });\n\n return (\n void}\n {...platformProps}\n />\n );\n }\n }\n\n AnimatedComponent.displayName = `AnimatedComponent(${\n Component.displayName || Component.name || 'Component'\n })`;\n\n return React.forwardRef((props, ref) => {\n return (\n \n );\n });\n}\n"],"mappings":"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"}