{"version":3,"file":"Lottie.UH7Cd3KI.mjs","names":["SrcType","Poster"],"sources":["https:/framerusercontent.com/modules/YbkSqZ7STzW5WsMb1yan/7oWoX9MqdnxameM59dqC/Lottie.js"],"sourcesContent":["import{jsx as _jsx}from\"react/jsx-runtime\";import{useRef,useCallback,useEffect}from\"react\";import{motion,addPropertyControls,ControlType,RenderTarget}from\"framer\";import{defaultEvents}from\"https://framer.com/m/framer/default-utils.js@^0.45.0\";import{useAutoMotionValue}from\"https://framer.com/m/framer/useAutoMotionValue.js@0.3.0\";import lottie from\"https://jspm.dev/lottie-web@5.7.8\";var SrcType;(function(SrcType){SrcType[\"File\"]=\"Upload\";SrcType[\"Url\"]=\"URL\";})(SrcType||(SrcType={}));var Poster;(function(Poster){Poster[\"Auto\"]=\"Auto\";Poster[\"Custom\"]=\"Custom\";})(Poster||(Poster={}));const placeholderUrl=\"https://raw.githubusercontent.com/framer/Lottie/master/Lottie.framerfx/assets/logo.json\";/**\n * LOTTIE\n *\n * @framerIntrinsicWidth 200\n * @framerIntrinsicHeight 350\n *\n * @framerSupportedLayoutWidth fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n */ export function Lottie(props){const{style,srcUrl,srcFile,srcType,poster,progress:progressRaw,playing,loop,posterProgress,pauseOnCanvas,isForwardsDirection,speed,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp,onComplete}=props;const isOnCanvas=RenderTarget.current()===RenderTarget.canvas;const shouldPlay=(!pauseOnCanvas||!isOnCanvas)&&playing;const direction=isForwardsDirection?1:-1;const isCustomPoster=poster===Poster.Custom;const el=useRef();const didInitialMount=useRef(false);const animationInfo=useRef({data:null,animation:null,duration:null});const progress=useAutoMotionValue(progressRaw,{transform:v=>v*.01});const play=()=>{var ref,ref1;return(ref=animationInfo.current)===null||ref===void 0?void 0:(ref1=ref.animation)===null||ref1===void 0?void 0:ref1.play();};const pause=()=>{var ref,ref1;return(ref=animationInfo.current)===null||ref===void 0?void 0:(ref1=ref.animation)===null||ref1===void 0?void 0:ref1.pause();};const destroy=()=>{var ref,ref1;return(ref=animationInfo.current)===null||ref===void 0?void 0:(ref1=ref.animation)===null||ref1===void 0?void 0:ref1.destroy();};const scrubTo=useCallback((normalizedProgress,shouldPlayAfter)=>{if(!animationInfo.current.duration||!animationInfo.current.animation)return;// Lottie gets weird when scrubbing to the exact last frame\nconst frameNumberTarget=normalizedProgress===1?animationInfo.current.duration-1:normalizedProgress*animationInfo.current.duration;if(shouldPlayAfter)animationInfo.current.animation.goToAndPlay(frameNumberTarget,true);else animationInfo.current.animation.goToAndStop(frameNumberTarget,true);},[]);const fetchLottieData=useCallback(async url=>{if(!url)return null;const data=await fetch(url,{method:\"GET\",credentials:\"omit\",redirect:\"follow\"}).then(d=>d.json());return data;},[]);// Fetch lottie animation & start setup\nconst init=useCallback(async()=>{// Clear current animation\ndestroy();let dataUrl;if(srcType===SrcType.Url)dataUrl=srcUrl;if(srcType===SrcType.File)dataUrl=srcFile;if(!dataUrl){console.warn(\"No valid Lottie animation provided\");dataUrl=placeholderUrl;}const data=await fetchLottieData(dataUrl);animationInfo.current.data=data;return setup(didInitialMount.current);},[srcType,srcUrl,srcFile]);// Create Lottie animation\nconst setup=useCallback(shouldPlayAfter=>{if(!el.current)return;destroy();const options={container:el.current,renderer:\"svg\",loop:!isOnCanvas&&loop,autoplay:shouldPlay,animationData:animationInfo.current.data,rendererSettings:{preserveAspectRatio:\"xMidYMid slice\"}};const anim=animationInfo.current.animation=lottie.loadAnimation(options);animationInfo.current.duration=anim.getDuration(true);anim.setDirection(direction);anim.setSpeed(speed);didInitialMount.current=true;if(isOnCanvas&&isCustomPoster)scrubTo(posterProgress,false);else scrubTo(progress.get(),shouldPlay||shouldPlayAfter);return()=>{anim.destroy();};},[loop,shouldPlay,speed,direction,isOnCanvas,isCustomPoster,posterProgress,]);// Initial setup or re-init when source changes\nuseEffect(()=>{let cleanup;init().then(c=>cleanup=c);return()=>{if(cleanup)cleanup();};},[srcType,srcFile,srcUrl]);// No run-time option for loop option, recreating anim\nuseEffect(()=>{if(!didInitialMount.current)return;return setup(false);},[loop]);// Perf hack lets see if anyone notices\nuseEffect(()=>lottie.setQuality(isOnCanvas?\"low\":\"medium\"),[]);// useEffect(() => {\n//     if (!isOnCanvas) return\n//     const normalizedProgress = progress.get() * 0.01\n//     if (shouldPlay) scrubTo(normalizedProgress, true)\n//     else scrubTo(normalizedProgress, false)\n// }, [progressRaw, shouldPlay])\nuseEffect(()=>progress.onChange(val=>{if(isOnCanvas)return;if(shouldPlay)scrubTo(val,true);else scrubTo(val,false);}),[]);useEffect(()=>{const val=progress.get();if(shouldPlay)scrubTo(val,true);else scrubTo(val,false);},[progressRaw]);useEffect(()=>{if(!isOnCanvas)return;const normalizedPosterProgress=posterProgress*.01;if(isCustomPoster)scrubTo(normalizedPosterProgress,false);else scrubTo(progress.get(),false);},[isCustomPoster,posterProgress]);useEffect(()=>{var ref;if(!((ref=animationInfo.current)===null||ref===void 0?void 0:ref.animation))return;animationInfo.current.animation.setSpeed(speed);scrubTo(progress.get(),true);},[speed]);useEffect(()=>{var ref;if(!((ref=animationInfo.current)===null||ref===void 0?void 0:ref.animation))return;animationInfo.current.animation.setDirection(direction);scrubTo(progress.get(),true);},[direction]);useEffect(()=>{if(shouldPlay)play();else pause();},[shouldPlay]);return /*#__PURE__*/ _jsx(motion.div,{ref:el,style:style,onClick,onMouseEnter,onMouseLeave,onMouseDown,onMouseUp});}Lottie.defaultProps={height:200,width:200,srcType:SrcType.Url,pauseOnCanvas:true,srcUrl:placeholderUrl,progress:0,poster:Poster.Auto,posterProgress:0};addPropertyControls(Lottie,{srcType:{type:ControlType.Enum,displaySegmentedControl:true,title:\"Source\",options:[SrcType.Url,SrcType.File]},srcUrl:{type:ControlType.String,title:\" \",placeholder:\"../example.json\",hidden:props=>props.srcType===SrcType.File},srcFile:{type:ControlType.File,title:\" \",allowedFileTypes:[\"json\"],hidden:props=>props.srcType===SrcType.Url},playing:{type:ControlType.Boolean,title:\"Playing\",enabledTitle:\"Yes\",disabledTitle:\"No\"},// Temporarily disabling for perf\n// pauseOnCanvas: {\n//     type: ControlType.Boolean,\n//     title: \"Canvas\",\n//     disabledTitle: \"Play\",\n//     enabledTitle: \"Pause\",\n//     hidden: (props) => props.playing === false,\n// },\nloop:{type:ControlType.Boolean,title:\"Loop\",enabledTitle:\"Yes\",disabledTitle:\"No\"},isForwardsDirection:{title:\"Direction\",type:ControlType.Boolean,enabledTitle:\"Normal\",disabledTitle:\"Reverse\"},speed:{type:ControlType.Number,defaultValue:1,min:0,max:10,step:.5,displayStepper:true,unit:\"x\"},poster:{title:\"Poster\",type:ControlType.Enum,options:[Poster.Auto,Poster.Custom],displaySegmentedControl:true},posterProgress:{title:\" \",type:ControlType.Number,max:100,min:0,unit:\"%\",hidden:({poster})=>poster===Poster.Auto},progress:{title:\"Progress\",type:ControlType.Number,max:100,min:0,unit:\"%\",description:\"This component is made for JSON files. [Learn more here](https://lottiefiles.com/what-is-lottie).\"},...defaultEvents});\nexport const __FramerMetadata__ = {\"exports\":{\"Lottie\":{\"type\":\"reactComponent\",\"name\":\"Lottie\",\"slots\":[],\"annotations\":{\"framerIntrinsicHeight\":\"350\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerSupportedLayoutWidth\":\"fixed\",\"framerIntrinsicWidth\":\"200\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Lottie.map"],"mappings":"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"}