{"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","BaseAnimationBuilder","Easing","withTiming","CurvedTransition","constructor","arguments","in","ease","out","exp","delayFunction","getDelayFunction","callback","callbackV","delay","getDelay","duration","durationV","easing","easingX","easingXV","easingY","easingYV","easingWidth","easingWidthV","easingHeight","easingHeightV","values","initialValues","originX","currentOriginX","originY","currentOriginY","width","currentWidth","height","currentHeight","animations","targetOriginX","targetOriginY","targetWidth","targetHeight","createInstance","instance"],"sources":["CurvedTransition.ts"],"sourcesContent":["'use strict';\nimport type {\n ILayoutAnimationBuilder,\n LayoutAnimationFunction,\n} from '../animationBuilder/commonTypes';\nimport { BaseAnimationBuilder } from '../animationBuilder';\nimport type { EasingFunction } from '../../Easing';\nimport { Easing } from '../../Easing';\nimport { withTiming } from '../../animation';\n\n/**\n * Layout transitions with a curved animation. You can modify the behavior by chaining methods like `.duration(500)` or `.delay(500)`.\n *\n * You pass it to the `layout` prop on [an Animated component](https://docs.swmansion.com/react-native-reanimated/docs/fundamentals/glossary#animated-component).\n *\n * @see https://docs.swmansion.com/react-native-reanimated/docs/layout-animations/layout-transitions#fading-transition\n */\nexport class CurvedTransition\n extends BaseAnimationBuilder\n implements ILayoutAnimationBuilder\n{\n easingXV: EasingFunction = Easing.in(Easing.ease);\n easingYV: EasingFunction = Easing.out(Easing.ease);\n easingWidthV: EasingFunction = Easing.in(Easing.exp);\n easingHeightV: EasingFunction = Easing.out(Easing.exp);\n\n static createInstance(\n this: T\n ): InstanceType {\n return new CurvedTransition() as InstanceType;\n }\n\n static easingX(easing: EasingFunction): CurvedTransition {\n const instance = this.createInstance();\n return instance.easingX(easing);\n }\n\n easingX(easing: EasingFunction): CurvedTransition {\n this.easingXV = easing;\n return this;\n }\n\n static easingY(easing: EasingFunction): CurvedTransition {\n const instance = this.createInstance();\n return instance.easingY(easing);\n }\n\n easingY(easing: EasingFunction): CurvedTransition {\n this.easingYV = easing;\n return this;\n }\n\n static easingWidth(easing: EasingFunction): CurvedTransition {\n const instance = this.createInstance();\n return instance.easingWidth(easing);\n }\n\n easingWidth(easing: EasingFunction): CurvedTransition {\n this.easingWidthV = easing;\n return this;\n }\n\n static easingHeight(easing: EasingFunction): CurvedTransition {\n const instance = this.createInstance();\n return instance.easingHeight(easing);\n }\n\n easingHeight(easing: EasingFunction): CurvedTransition {\n this.easingHeightV = easing;\n return this;\n }\n\n build = (): LayoutAnimationFunction => {\n const delayFunction = this.getDelayFunction();\n const callback = this.callbackV;\n const delay = this.getDelay();\n const duration = this.durationV ?? 300;\n const easing = {\n easingX: this.easingXV,\n easingY: this.easingYV,\n easingWidth: this.easingWidthV,\n easingHeight: this.easingHeightV,\n };\n\n return (values) => {\n 'worklet';\n\n return {\n initialValues: {\n originX: values.currentOriginX,\n originY: values.currentOriginY,\n width: values.currentWidth,\n height: values.currentHeight,\n },\n animations: {\n originX: delayFunction(\n delay,\n withTiming(values.targetOriginX, {\n duration,\n easing: easing.easingX,\n })\n ),\n originY: delayFunction(\n delay,\n withTiming(values.targetOriginY, {\n duration,\n easing: easing.easingY,\n })\n ),\n width: delayFunction(\n delay,\n withTiming(values.targetWidth, {\n duration,\n easing: easing.easingWidth,\n })\n ),\n height: delayFunction(\n delay,\n withTiming(values.targetHeight, {\n duration,\n easing: easing.easingHeight,\n })\n ),\n },\n callback,\n };\n };\n };\n}\n"],"mappings":"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"}