{"version":3,"names":["Animations","LayoutAnimationType","createAnimationWithExistingTransform","extractTransformFromStyle","getProcessedConfig","handleExitingAnimation","handleLayoutTransition","setElementAnimation","areDOMRectsEqual","makeElementVisible","chooseConfig","animationType","props","config","ENTERING","entering","EXITING","exiting","LAYOUT","layout","checkUndefinedAnimationFail","initialAnimationName","isLayoutTransition","console","warn","chooseAction","animationConfig","element","transitionData","transform","reversed","tryGetAnimationConfigWithTransform","presetName","constructor","shouldFail","style","animationName","startWebLayoutAnimation","maybeAnimationConfigWithTransform","tryActivateLayoutTransition","snapshot","rect","getBoundingClientRect","translateX","x","translateY","y","scaleX","width","scaleY","height"],"sources":["animationsManager.ts"],"sourcesContent":["'use strict';\n\nimport type { AnimationConfig, AnimationNames, CustomConfig } from './config';\nimport { Animations } from './config';\nimport type {\n AnimatedComponentProps,\n LayoutAnimationStaticContext,\n} from '../../../createAnimatedComponent/commonTypes';\nimport { LayoutAnimationType } from '../animationBuilder/commonTypes';\nimport type { StyleProps } from '../../commonTypes';\nimport { createAnimationWithExistingTransform } from './createAnimation';\nimport {\n extractTransformFromStyle,\n getProcessedConfig,\n handleExitingAnimation,\n handleLayoutTransition,\n setElementAnimation,\n} from './componentUtils';\nimport { areDOMRectsEqual } from './domUtils';\nimport type { TransformsStyle } from 'react-native';\nimport type { TransitionData } from './animationParser';\nimport { makeElementVisible } from './componentStyle';\n\nfunction chooseConfig>(\n animationType: LayoutAnimationType,\n props: Readonly>\n) {\n const config =\n animationType === LayoutAnimationType.ENTERING\n ? props.entering\n : animationType === LayoutAnimationType.EXITING\n ? props.exiting\n : animationType === LayoutAnimationType.LAYOUT\n ? props.layout\n : null;\n\n return config;\n}\n\nfunction checkUndefinedAnimationFail(\n initialAnimationName: string,\n isLayoutTransition: boolean\n) {\n // This prevents crashes if we try to set animations that are not defined.\n // We don't care about layout transitions since they're created dynamically\n if (initialAnimationName in Animations || isLayoutTransition) {\n return false;\n }\n\n console.warn(\n \"[Reanimated] Couldn't load entering/exiting animation. Current version supports only predefined animations with modifiers: duration, delay, easing, randomizeDelay, wtihCallback, reducedMotion.\"\n );\n\n return true;\n}\n\nfunction chooseAction(\n animationType: LayoutAnimationType,\n animationConfig: AnimationConfig,\n element: HTMLElement,\n transitionData: TransitionData,\n transform: TransformsStyle['transform'] | undefined\n) {\n switch (animationType) {\n case LayoutAnimationType.ENTERING:\n setElementAnimation(element, animationConfig, transform);\n break;\n case LayoutAnimationType.LAYOUT:\n transitionData.reversed = animationConfig.reversed;\n\n handleLayoutTransition(\n element,\n animationConfig,\n transitionData,\n transform\n );\n break;\n case LayoutAnimationType.EXITING:\n handleExitingAnimation(element, animationConfig);\n break;\n }\n}\n\nfunction tryGetAnimationConfigWithTransform<\n ComponentProps extends Record\n>(\n props: Readonly>,\n animationType: LayoutAnimationType\n) {\n const config = chooseConfig(animationType, props);\n if (!config) {\n return null;\n }\n\n type ConstructorWithStaticContext = LayoutAnimationStaticContext &\n typeof config.constructor;\n\n const isLayoutTransition = animationType === LayoutAnimationType.LAYOUT;\n const initialAnimationName =\n typeof config === 'function'\n ? config.presetName\n : (config.constructor as ConstructorWithStaticContext).presetName;\n\n const shouldFail = checkUndefinedAnimationFail(\n initialAnimationName,\n isLayoutTransition\n );\n\n if (shouldFail) {\n return null;\n }\n\n const transform = extractTransformFromStyle(props.style as StyleProps);\n\n const animationName =\n transform && animationType !== LayoutAnimationType.EXITING\n ? createAnimationWithExistingTransform(initialAnimationName, transform)\n : initialAnimationName;\n\n const animationConfig = getProcessedConfig(\n animationName,\n animationType,\n config as CustomConfig,\n initialAnimationName as AnimationNames\n );\n\n return { animationConfig, transform };\n}\n\nexport function startWebLayoutAnimation<\n ComponentProps extends Record\n>(\n props: Readonly>,\n element: HTMLElement,\n animationType: LayoutAnimationType,\n transitionData?: TransitionData\n) {\n const maybeAnimationConfigWithTransform = tryGetAnimationConfigWithTransform(\n props,\n animationType\n );\n\n if (maybeAnimationConfigWithTransform) {\n const { animationConfig, transform } = maybeAnimationConfigWithTransform;\n\n chooseAction(\n animationType,\n animationConfig,\n element,\n transitionData as TransitionData,\n transform\n );\n } else {\n makeElementVisible(element, 0);\n }\n}\n\nexport function tryActivateLayoutTransition<\n ComponentProps extends Record\n>(\n props: Readonly>,\n element: HTMLElement,\n snapshot: DOMRect\n) {\n if (!props.layout) {\n return;\n }\n\n const rect = element.getBoundingClientRect();\n\n if (areDOMRectsEqual(rect, snapshot)) {\n return;\n }\n\n const transitionData: TransitionData = {\n translateX: snapshot.x - rect.x,\n translateY: snapshot.y - rect.y,\n scaleX: snapshot.width / rect.width,\n scaleY: snapshot.height / rect.height,\n reversed: false, // This field is used only in `SequencedTransition`, so by default it will be false\n };\n\n startWebLayoutAnimation(\n props,\n element,\n LayoutAnimationType.LAYOUT,\n transitionData\n );\n}\n"],"mappings":"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"}