{"version":3,"names":["_defineProperty","obj","key","value","_toPropertyKey","Object","defineProperty","enumerable","configurable","writable","arg","_toPrimitive","String","input","hint","prim","Symbol","toPrimitive","undefined","res","call","TypeError","Number","withTiming","LayoutAnimationType","SharedTransitionType","ReduceMotion","configureLayoutAnimations","ProgressTransitionManager","SUPPORTED_PROPS","SharedTransition","constructor","System","custom","customAnimationFactory","_customAnimationFactory","progressAnimation","progressAnimationCallback","_customProgressAnimation","viewTag","values","progress","newStyles","_notifyAboutProgress","duration","_transitionDuration","reduceMotion","_reduceMotion","defaultTransitionType","transitionType","_defaultTransitionType","registerTransition","sharedTransitionTag","transitionAnimation","getTransitionAnimation","getProgressAnimation","ANIMATION","PROGRESS_ANIMATION","layoutAnimationType","SHARED_ELEMENT_TRANSITION","SHARED_ELEMENT_TRANSITION_PROGRESS","_progressTransitionManager","addProgressAnimation","unregisterTransition","removeProgressAnimation","getReduceMotion","_animation","buildAnimation","_progressAnimation","buildProgressAnimation","animationFactory","transitionDuration","animations","initialValues","includes","Error","propName","matrix","targetTransformMatrix","transformMatrix","capitalizedPropName","charAt","toUpperCase","slice","keyToTargetValue","currentTransformMatrix","keyToCurrentValue","propertyName","currentMatrix","targetMatrix","newMatrix","Array","i","PropertyName","currentPropertyName","targetPropertyName","currentValue","targetValue"],"sources":["SharedTransition.ts"],"sourcesContent":["'use strict';\nimport { withTiming } from '../../animation';\nimport type {\n SharedTransitionAnimationsFunction,\n SharedTransitionAnimationsValues,\n CustomProgressAnimation,\n ProgressAnimation,\n LayoutAnimationsOptions,\n} from '../animationBuilder/commonTypes';\nimport {\n LayoutAnimationType,\n SharedTransitionType,\n} from '../animationBuilder/commonTypes';\nimport type { StyleProps } from '../../commonTypes';\nimport { ReduceMotion } from '../../commonTypes';\nimport { configureLayoutAnimations } from '../../core';\nimport { ProgressTransitionManager } from './ProgressTransitionManager';\n\nconst SUPPORTED_PROPS = [\n 'width',\n 'height',\n 'originX',\n 'originY',\n 'transform',\n 'borderRadius',\n] as const;\n\ntype AnimationFactory = (\n values: SharedTransitionAnimationsValues\n) => StyleProps;\n\n/**\n * A SharedTransition builder class.\n *\n * @see https://docs.swmansion.com/react-native-reanimated/docs/shared-element-transitions/overview\n * @experimental\n */\nexport class SharedTransition {\n private _customAnimationFactory: AnimationFactory | null = null;\n private _animation: SharedTransitionAnimationsFunction | null = null;\n private _transitionDuration = 500;\n private _reduceMotion: ReduceMotion = ReduceMotion.System;\n private _customProgressAnimation?: ProgressAnimation = undefined;\n private _progressAnimation?: ProgressAnimation = undefined;\n private _defaultTransitionType?: SharedTransitionType = undefined;\n private static _progressTransitionManager = new ProgressTransitionManager();\n\n public custom(customAnimationFactory: AnimationFactory): SharedTransition {\n this._customAnimationFactory = customAnimationFactory;\n return this;\n }\n\n public progressAnimation(\n progressAnimationCallback: CustomProgressAnimation\n ): SharedTransition {\n this._customProgressAnimation = (viewTag, values, progress) => {\n 'worklet';\n const newStyles = progressAnimationCallback(values, progress);\n _notifyAboutProgress(viewTag, newStyles, true);\n };\n return this;\n }\n\n public duration(duration: number): SharedTransition {\n this._transitionDuration = duration;\n return this;\n }\n\n public reduceMotion(_reduceMotion: ReduceMotion): this {\n this._reduceMotion = _reduceMotion;\n return this;\n }\n\n public defaultTransitionType(\n transitionType: SharedTransitionType\n ): SharedTransition {\n this._defaultTransitionType = transitionType;\n return this;\n }\n\n public registerTransition(\n viewTag: number,\n sharedTransitionTag: string\n ): void {\n const transitionAnimation = this.getTransitionAnimation();\n const progressAnimation = this.getProgressAnimation();\n if (!this._defaultTransitionType) {\n if (this._customAnimationFactory && !this._customProgressAnimation) {\n this._defaultTransitionType = SharedTransitionType.ANIMATION;\n } else {\n this._defaultTransitionType = SharedTransitionType.PROGRESS_ANIMATION;\n }\n }\n const layoutAnimationType =\n this._defaultTransitionType === SharedTransitionType.ANIMATION\n ? LayoutAnimationType.SHARED_ELEMENT_TRANSITION\n : LayoutAnimationType.SHARED_ELEMENT_TRANSITION_PROGRESS;\n configureLayoutAnimations(\n viewTag,\n layoutAnimationType,\n transitionAnimation,\n sharedTransitionTag\n );\n SharedTransition._progressTransitionManager.addProgressAnimation(\n viewTag,\n progressAnimation\n );\n }\n\n public unregisterTransition(viewTag: number): void {\n SharedTransition._progressTransitionManager.removeProgressAnimation(\n viewTag\n );\n }\n\n public getReduceMotion(): ReduceMotion {\n return this._reduceMotion;\n }\n\n private getTransitionAnimation(): SharedTransitionAnimationsFunction {\n if (!this._animation) {\n this.buildAnimation();\n }\n return this._animation!;\n }\n\n private getProgressAnimation(): ProgressAnimation {\n if (!this._progressAnimation) {\n this.buildProgressAnimation();\n }\n return this._progressAnimation!;\n }\n\n private buildAnimation() {\n const animationFactory = this._customAnimationFactory;\n const transitionDuration = this._transitionDuration;\n const reduceMotion = this._reduceMotion;\n this._animation = (values: SharedTransitionAnimationsValues) => {\n 'worklet';\n let animations: {\n [key: string]: unknown;\n } = {};\n const initialValues: {\n [key: string]: unknown;\n } = {};\n\n if (animationFactory) {\n animations = animationFactory(values);\n for (const key in animations) {\n if (!(SUPPORTED_PROPS as readonly string[]).includes(key)) {\n throw new Error(\n `[Reanimated] The prop '${key}' is not supported yet.`\n );\n }\n }\n } else {\n for (const propName of SUPPORTED_PROPS) {\n if (propName === 'transform') {\n const matrix = values.targetTransformMatrix;\n animations.transformMatrix = withTiming(matrix, {\n reduceMotion,\n duration: transitionDuration,\n });\n } else {\n const capitalizedPropName = `${propName\n .charAt(0)\n .toUpperCase()}${propName.slice(\n 1\n )}` as Capitalize;\n const keyToTargetValue = `target${capitalizedPropName}` as const;\n animations[propName] = withTiming(values[keyToTargetValue], {\n reduceMotion,\n duration: transitionDuration,\n });\n }\n }\n }\n\n for (const propName in animations) {\n if (propName === 'transform') {\n initialValues.transformMatrix = values.currentTransformMatrix;\n } else {\n const capitalizedPropName = (propName.charAt(0).toUpperCase() +\n propName.slice(1)) as Capitalize;\n const keyToCurrentValue = `current${capitalizedPropName}` as const;\n initialValues[propName] = values[keyToCurrentValue];\n }\n }\n\n return { initialValues, animations };\n };\n }\n\n private buildProgressAnimation() {\n if (this._customProgressAnimation) {\n this._progressAnimation = this._customProgressAnimation;\n return;\n }\n this._progressAnimation = (viewTag, values, progress) => {\n 'worklet';\n const newStyles: { [key: string]: number | number[] } = {};\n for (const propertyName of SUPPORTED_PROPS) {\n if (propertyName === 'transform') {\n // this is not the perfect solution, but at this moment it just interpolates the whole\n // matrix instead of interpolating scale, translate, rotate, etc. separately\n const currentMatrix = values.currentTransformMatrix;\n const targetMatrix = values.targetTransformMatrix;\n const newMatrix = new Array(9);\n for (let i = 0; i < 9; i++) {\n newMatrix[i] =\n progress * (targetMatrix[i] - currentMatrix[i]) +\n currentMatrix[i];\n }\n newStyles.transformMatrix = newMatrix;\n } else {\n // PropertyName == propertyName with capitalized fist letter, (width -> Width)\n const PropertyName = (propertyName.charAt(0).toUpperCase() +\n propertyName.slice(1)) as Capitalize;\n const currentPropertyName = `current${PropertyName}` as const;\n const targetPropertyName = `target${PropertyName}` as const;\n\n const currentValue = values[currentPropertyName];\n const targetValue = values[targetPropertyName];\n\n newStyles[propertyName] =\n progress * (targetValue - currentValue) + currentValue;\n }\n }\n _notifyAboutProgress(viewTag, newStyles, true);\n };\n }\n\n // static builder methods i.e. shared transition modifiers\n\n /**\n * Lets you create a custom shared transition animation. Other shared transition modifiers can be chained alongside this modifier.\n *\n * @param customAnimationFactory - Callback function that have to return an object with styles for the custom shared transition.\n * @returns A {@link SharedTransition} object. Styles returned from this function need to be to the `sharedTransitionStyle` prop.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/shared-element-transitions/overview\n * @experimental\n */\n public static custom(\n customAnimationFactory: AnimationFactory\n ): SharedTransition {\n return new SharedTransition().custom(customAnimationFactory);\n }\n\n /**\n * Lets you change the duration of the shared transition. Other shared transition modifiers can be chained alongside this modifier.\n *\n * @param duration - The duration of the shared transition animation in milliseconds.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/shared-element-transitions/overview\n * @experimental\n */\n public static duration(duration: number): SharedTransition {\n return new SharedTransition().duration(duration);\n }\n\n /**\n * Lets you create a shared transition animation bound to the progress between navigation screens. Other shared transition modifiers can be chained alongside this modifier.\n *\n * @param progressAnimationCallback - A callback called with the current progress value on every animation frame. It should return an object with styles for the shared transition.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/shared-element-transitions/overview\n * @experimental\n */\n public static progressAnimation(\n progressAnimationCallback: CustomProgressAnimation\n ): SharedTransition {\n return new SharedTransition().progressAnimation(progressAnimationCallback);\n }\n\n /**\n * Whether the transition is progress-bound or not. Other shared transition modifiers can be chained alongside this modifier.\n *\n * @param transitionType - Type of the transition. Configured with {@link SharedTransitionType} enum.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/shared-element-transitions/overview\n * @experimental\n */\n public static defaultTransitionType(\n transitionType: SharedTransitionType\n ): SharedTransition {\n return new SharedTransition().defaultTransitionType(transitionType);\n }\n\n /**\n * Lets you adjust the behavior when the device's reduced motion accessibility setting is turned on. Other shared transition modifiers can be chained alongside this modifier.\n *\n * @param reduceMotion - Determines how the animation responds to the device's reduced motion accessibility setting. Default to `ReduceMotion.System` - {@link ReduceMotion}.\n * @see https://docs.swmansion.com/react-native-reanimated/docs/shared-element-transitions/overview\n * @experimental\n */\n public static reduceMotion(reduceMotion: ReduceMotion): SharedTransition {\n return new SharedTransition().reduceMotion(reduceMotion);\n }\n}\n"],"mappings":"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"}