{"version":3,"names":["convertAnimationObjectToKeyframes","animationObject","keyframe","name","timestamp","style","Object","entries","property","values","forEach","value","transformProperty","transformPropertyValue","convertTransformToString","transform","transformString","transformObject","key","indexOf"],"sources":["animationParser.ts"],"sourcesContent":["'use strict';\n\nimport type { TransformsStyle } from 'react-native';\n\nexport interface ReanimatedWebTransformProperties {\n translateX?: string;\n translateY?: string;\n rotate?: string;\n rotateX?: string;\n rotateY?: string;\n scale?: number | string;\n scaleX?: number;\n scaleY?: number;\n perspective?: string;\n skew?: string;\n skewX?: string;\n}\n\ninterface AnimationStyle {\n opacity?: number;\n transform?: ReanimatedWebTransformProperties[];\n}\n\nexport interface AnimationData {\n name: string;\n style: Record;\n duration: number;\n}\n\nexport interface TransitionData {\n translateX: number;\n translateY: number;\n scaleX: number;\n scaleY: number;\n reversed?: boolean;\n}\n\nexport function convertAnimationObjectToKeyframes(\n animationObject: AnimationData\n) {\n let keyframe = `@keyframes ${animationObject.name} { `;\n\n for (const [timestamp, style] of Object.entries(animationObject.style)) {\n keyframe += `${timestamp}% { `;\n\n for (const [property, values] of Object.entries(style)) {\n if (property !== 'transform') {\n keyframe += `${property}: ${values}; `;\n continue;\n }\n\n keyframe += `transform:`;\n\n values.forEach((value: ReanimatedWebTransformProperties) => {\n for (const [\n transformProperty,\n transformPropertyValue,\n ] of Object.entries(value)) {\n keyframe += ` ${transformProperty}(${transformPropertyValue})`;\n }\n });\n keyframe += `; `; // Property end\n }\n keyframe += `} `; // Timestamp end\n }\n keyframe += `} `; // Keyframe end\n\n return keyframe;\n}\n\nexport function convertTransformToString(\n transform: NonNullable | undefined\n) {\n if (!transform) {\n return '';\n }\n\n type RNTransformProp = (typeof transform)[number];\n\n let transformString = '';\n\n // @ts-ignore `transform` cannot be string because in that case\n // we throw error in `extractTransformFromStyle`\n transform.forEach((transformObject: RNTransformProp) => {\n for (const [key, value] of Object.entries(transformObject)) {\n if (key === 'reversed') {\n continue;\n }\n\n if (key.indexOf('translate') < 0) {\n transformString += `${key}(${value}) `;\n } else {\n transformString += `${key}(${value}px) `;\n }\n }\n });\n\n return transformString;\n}\n"],"mappings":"AAAA,YAAY;;AAqCZ,OAAO,SAASA,iCAAiCA,CAC/CC,eAA8B,EAC9B;EACA,IAAIC,QAAQ,GAAI,cAAaD,eAAe,CAACE,IAAK,KAAI;EAEtD,KAAK,MAAM,CAACC,SAAS,EAAEC,KAAK,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACN,eAAe,CAACI,KAAK,CAAC,EAAE;IACtEH,QAAQ,IAAK,GAAEE,SAAU,MAAK;IAE9B,KAAK,MAAM,CAACI,QAAQ,EAAEC,MAAM,CAAC,IAAIH,MAAM,CAACC,OAAO,CAACF,KAAK,CAAC,EAAE;MACtD,IAAIG,QAAQ,KAAK,WAAW,EAAE;QAC5BN,QAAQ,IAAK,GAAEM,QAAS,KAAIC,MAAO,IAAG;QACtC;MACF;MAEAP,QAAQ,IAAK,YAAW;MAExBO,MAAM,CAACC,OAAO,CAAEC,KAAuC,IAAK;QAC1D,KAAK,MAAM,CACTC,iBAAiB,EACjBC,sBAAsB,CACvB,IAAIP,MAAM,CAACC,OAAO,CAACI,KAAK,CAAC,EAAE;UAC1BT,QAAQ,IAAK,IAAGU,iBAAkB,IAAGC,sBAAuB,GAAE;QAChE;MACF,CAAC,CAAC;MACFX,QAAQ,IAAK,IAAG,CAAC,CAAC;IACpB;;IACAA,QAAQ,IAAK,IAAG,CAAC,CAAC;EACpB;;EACAA,QAAQ,IAAK,IAAG,CAAC,CAAC;;EAElB,OAAOA,QAAQ;AACjB;AAEA,OAAO,SAASY,wBAAwBA,CACtCC,SAAgE,EAChE;EACA,IAAI,CAACA,SAAS,EAAE;IACd,OAAO,EAAE;EACX;EAIA,IAAIC,eAAe,GAAG,EAAE;;EAExB;EACA;EACAD,SAAS,CAACL,OAAO,CAAEO,eAAgC,IAAK;IACtD,KAAK,MAAM,CAACC,GAAG,EAAEP,KAAK,CAAC,IAAIL,MAAM,CAACC,OAAO,CAACU,eAAe,CAAC,EAAE;MAC1D,IAAIC,GAAG,KAAK,UAAU,EAAE;QACtB;MACF;MAEA,IAAIA,GAAG,CAACC,OAAO,CAAC,WAAW,CAAC,GAAG,CAAC,EAAE;QAChCH,eAAe,IAAK,GAAEE,GAAI,IAAGP,KAAM,IAAG;MACxC,CAAC,MAAM;QACLK,eAAe,IAAK,GAAEE,GAAI,IAAGP,KAAM,MAAK;MAC1C;IACF;EACF,CAAC,CAAC;EAEF,OAAOK,eAAe;AACxB"}