{"version":3,"file":"CountUp.Axj1tkdV.mjs","names":["useState","useRef","useCallback"],"sources":["https:/framerusercontent.com/modules/gqGMODtBPgyRCS5sjBne/ZYZ63iqA5jeb0Wa6bTIb/CountUp.js"],"sourcesContent":["// Animated countup runs from 0 to a set number on hover, with font controls\nimport{jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useRef,useCallback,startTransition,useEffect}from\"react\";import{addPropertyControls,ControlType,useIsStaticRenderer,RenderTarget}from\"framer\";import{useInView}from\"framer-motion\";/**\n * Animated CountUp\n *\n * @framerIntrinsicWidth 120\n * @framerIntrinsicHeight 40\n *\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight auto\n */export default function CountUp(props){const{number,duration,font,style,prefix,sufix=\"\"}=props;const[count,setCount]=useState(0);const timerRef=useRef(null);const isStatic=useIsStaticRenderer();const ref=useRef(null);const inView=useInView(ref,{once:true,margin:\"-15% 0px -15% 0px\"});const[hasAnimated,setHasAnimated]=useState(false);// Clean up timer\nuseEffect(()=>{return()=>{if(timerRef.current!==null){clearInterval(timerRef.current);timerRef.current=null;}};},[]);const animateCount=useCallback(()=>{const start=0;const end=number;if(!duration||duration<=0||end===0||isStatic){startTransition(()=>setCount(end));return;}const frameRate=1e3/60;const frames=Math.round(duration*1e3/frameRate);let currentFrame=0;if(timerRef.current!==null){clearInterval(timerRef.current);}timerRef.current=window.setInterval(()=>{currentFrame++;const next=Math.round((end-start)*(currentFrame/frames)+start);startTransition(()=>setCount(next));if(currentFrame>=frames){startTransition(()=>setCount(end));if(timerRef.current!==null){clearInterval(timerRef.current);timerRef.current=null;}}},frameRate);},[number,duration,isStatic]);// Only run countup when inView\nuseEffect(()=>{if(!hasAnimated&&inView){setHasAnimated(true);animateCount();}},[inView,animateCount,hasAnimated]);// Show finished value on static renderer or thumbnail\nif(isStatic||RenderTarget.current()===RenderTarget.thumbnail){return /*#__PURE__*/_jsxs(\"span\",{style:{...font,display:\"inline-block\",width:style?.width||\"max-content\",textAlign:font?.textAlign,...style,position:\"relative\"},children:[prefix,number,sufix]});}return /*#__PURE__*/_jsxs(\"span\",{ref:ref,style:{...font,display:\"inline-block\",width:style?.width||\"max-content\",textAlign:font?.textAlign,...style,position:\"relative\"},tabIndex:0,\"aria-label\":`Animated count up to ${number}`,children:[prefix,count,sufix]});}addPropertyControls(CountUp,{number:{type:ControlType.Number,title:\"Target Number\",defaultValue:100,min:1,max:1e6,step:1,displayStepper:true},duration:{type:ControlType.Number,title:\"Duration (sec)\",defaultValue:1.5,min:.2,max:10,step:.1,unit:\"s\"},prefix:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\",placeholder:\"e.g. Rp. \"},sufix:{type:ControlType.String,title:\"Sufix\",defaultValue:\"\",placeholder:\"e.g. ,-\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"38px\",variant:\"Bold\",letterSpacing:\"-0.01em\",lineHeight:\"1em\",textAlign:\"center\"}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"CountUp\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"auto\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerIntrinsicHeight\":\"40\",\"framerIntrinsicWidth\":\"120\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./CountUp.map"],"mappings":"oRASG,SAAwB,EAAQ,EAAM,CAAC,GAAK,CAAC,SAAO,WAAS,OAAK,QAAM,SAAO,QAAM,IAAI,EAAW,CAAC,EAAM,GAAUA,EAAS,CAAC,EAAQ,EAASC,EAAO,IAAI,EAAQ,EAAS,EAAoB,EAAQ,EAAIA,EAAO,IAAI,EAAQ,EAAO,EAAU,EAAI,CAAC,KAAK,GAAK,OAAO,mBAAmB,CAAC,EAAO,CAAC,EAAY,GAAgBD,EAAS,EAAK,EAC/U,UAAyB,CAAI,EAAS,UAAU,OAAM,cAAc,EAAS,OAAO,EAAE,EAAS,QAAQ,KAAM,EAAI,CAAC,CAAC,EAAE,IAAM,EAAaE,MAAgB,CAAC,IAAoB,EAAI,EAAO,GAAG,CAAC,GAAU,GAAU,GAAG,IAAM,GAAG,EAAS,CAAC,MAAoB,EAAS,CAAG,CAAC,EAAE,MAAO,CAAC,IAAM,EAAU,IAAI,GAAS,EAAO,KAAK,MAAM,EAAS,IAAI,CAAS,EAAM,EAAa,EAAK,EAAS,UAAU,MAAM,cAAc,EAAS,OAAO,EAAG,EAAS,QAAQ,EAAO,gBAAgB,CAAC,IAAe,IAAM,EAAK,KAAK,OAAO,EAAI,IAAQ,EAAa,GAAQ,CAAK,EAAE,MAAoB,EAAS,CAAI,CAAC,EAAK,GAAc,IAAQ,MAAoB,EAAS,CAAG,CAAC,EAAK,EAAS,UAAU,OAAM,cAAc,EAAS,OAAO,EAAE,EAAS,QAAQ,MAAO,EAAE,CAAS,CAAE,EAAE,CAAC,EAAO,EAAS,CAAQ,CAAC,EAE1f,OADlQ,MAAc,CAAI,CAAC,GAAa,IAAQ,EAAe,EAAI,EAAE,EAAa,EAAG,EAAE,CAAC,EAAO,EAAa,CAAW,CAAC,EAC7G,GAAU,EAAa,QAAQ,IAAI,EAAa,UAA+B,EAAM,OAAO,CAAC,MAAM,CAAC,GAAG,EAAK,QAAQ,eAAe,MAAM,GAAO,OAAO,cAAc,UAAU,GAAM,UAAU,GAAG,EAAM,SAAS,UAAU,EAAE,SAAS,CAAC,EAAO,EAAO,CAAK,CAAC,CAAC,EAAuB,EAAM,OAAO,CAAK,MAAI,MAAM,CAAC,GAAG,EAAK,QAAQ,eAAe,MAAM,GAAO,OAAO,cAAc,UAAU,GAAM,UAAU,GAAG,EAAM,SAAS,UAAU,EAAE,SAAS,EAAE,aAAa,wBAAwB,IAAS,SAAS,CAAC,EAAO,EAAM,CAAK,CAAC,CAAC,CAAE,qBAXzd,IAAyE,IAAqF,IAAqC,EAWuR,EAAoB,EAAQ,CAAC,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,gBAAgB,aAAa,IAAI,IAAI,EAAE,IAAI,IAAI,KAAK,EAAE,eAAe,EAAI,EAAE,SAAS,CAAC,KAAK,EAAY,OAAO,MAAM,iBAAiB,aAAa,IAAI,IAAI,GAAG,IAAI,GAAG,KAAK,GAAG,KAAK,GAAG,EAAE,OAAO,CAAC,KAAK,EAAY,OAAO,MAAM,SAAS,aAAa,GAAG,YAAY,WAAW,EAAE,MAAM,CAAC,KAAK,EAAY,OAAO,MAAM,QAAQ,aAAa,GAAG,YAAY,SAAS,EAAE,KAAK,CAAC,KAAK,EAAY,KAAK,MAAM,OAAO,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,OAAO,QAAQ,OAAO,cAAc,UAAU,WAAW,MAAM,UAAU,QAAQ,CAAC,CAAC,CAAC"}