{
  "version": 3,
  "sources": ["ssg:https://framerusercontent.com/modules/fONf9xpEnRB5fhZ36jxV/PFQw4hQn5StRPC8BS3iZ/NumberAnimator.js"],
  "sourcesContent": ["import{jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,RenderTarget}from\"framer\";import{motion,animate,useInView}from\"framer-motion\";import{useEffect,useState,useRef}from\"react\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight any\n */export default function NumberAnimator(props){const ref=useRef(null);const isInView=useInView(ref,{once:!props.animation.replay,amount:\"some\"});const[numberText,setNumberText]=useState(\"\");const{start,end,decimals,commas,rounding,fontColor,animation}=props;const[currentAnimation,setCurrentAnimation]=useState(null);const isCanvas=RenderTarget.current()===RenderTarget.canvas;function formatNumber(value){let number=value;let numberString=number.toFixed(decimals);if(commas){numberString=numberString.replace(/\\B(?=(\\d{3})+(?!\\d))/g,\",\");}return numberString;}function runAnimation(){if(!isCanvas){if(currentAnimation){currentAnimation.stop();}setCurrentAnimation(animate(start,end,{...animation.transition,onUpdate:latest=>{setNumberText(formatNumber(latest));}}));}}useEffect(()=>{if(animation.trigger==\"appear\"){runAnimation();}setNumberText(formatNumber(start));},[]);useEffect(()=>{if(isInView&&animation.trigger==\"layerInView\"){runAnimation();}},[isInView]);useEffect(()=>{if(animation.trigger==\"layerInView\"){if(isInView){runAnimation();}else{if(currentAnimation){currentAnimation.stop();}setNumberText(formatNumber(start));}}},[isInView]);return /*#__PURE__*/_jsxs(motion.p,{ref:ref,style:{userSelect:props.textSelect?\"auto\":\"none\",fontVariantNumeric:`${props.monospace?\"tabular-nums \":\"\"}${props.slashedZeros?\"slashed-zero\":\"\"}`,margin:0,...fontColor.mode==\"solid\"?{color:fontColor.color}:{WebkitBackgroundClip:\"text\",WebkitTextFillColor:\"transparent\",backgroundImage:`linear-gradient(${fontColor.angle}deg, ${fontColor.startColor}, ${fontColor.endColor})`},...props.font,...props.style},children:[props.prefix,isCanvas?formatNumber(end):numberText,props.suffix]});}NumberAnimator.displayName=\"Animated Number Counter\";addPropertyControls(NumberAnimator,{start:{type:ControlType.Number,defaultValue:0},end:{type:ControlType.Number,defaultValue:100},decimals:{type:ControlType.Number,defaultValue:0,min:0,max:3,step:1},commas:{type:ControlType.Boolean,defaultValue:true},fontColor:{type:ControlType.Object,controls:{mode:{type:ControlType.Enum,defaultValue:\"solid\",options:[\"solid\",\"gradient\"],optionTitles:[\"Solid\",\"Gradient\"],displaySegmentedControl:true},color:{type:ControlType.Color,defaultValue:\"#000\",hidden:props=>props.mode!=\"solid\"},startColor:{type:ControlType.Color,defaultValue:\"#000\",hidden:props=>props.mode!=\"gradient\"},endColor:{type:ControlType.Color,defaultValue:\"#FFF\",hidden:props=>props.mode!=\"gradient\"},angle:{type:ControlType.Number,defaultValue:180,min:-360,max:360,unit:\"\\xb0\",hidden:props=>props.mode!=\"gradient\"}}},font:{type:\"font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:16,lineHeight:1}},animation:{type:ControlType.Object,icon:\"effect\",controls:{trigger:{type:ControlType.Enum,defaultValue:\"layerInView\",options:[\"appear\",\"layerInView\"],optionTitles:[\"Appear\",\"Layer in View\"],displaySegmentedControl:true,segmentedControlDirection:\"vertical\"},replay:{type:ControlType.Boolean,defaultValue:true,hidden(props){return props.trigger!==\"layerInView\";}},transition:{type:ControlType.Transition}}},prefix:{type:ControlType.String},suffix:{type:ControlType.String},textSelect:{type:ControlType.Boolean,defaultValue:true},display:{type:ControlType.Object,buttonTitle:\"Options\",controls:{monospace:{type:ControlType.Boolean,defaultValue:false,description:\"Monospaced number characters.\"},slashedZeros:{type:ControlType.Boolean,defaultValue:false,description:\"Adds a diagonal slash through zeros if your font supports it.\"}}}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"NumberAnimator\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\",\"framerSupportedLayoutHeight\":\"any\",\"framerSupportedLayoutWidth\":\"any\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./NumberAnimator.map"],
  "mappings": "0IAGkB,SAARA,EAAgCC,EAAM,CAAC,IAAMC,EAAIC,EAAO,IAAI,EAAQC,EAASC,EAAUH,EAAI,CAAC,KAAK,CAACD,EAAM,UAAU,OAAO,OAAO,MAAM,CAAC,EAAO,CAACK,EAAWC,CAAa,EAAEC,EAAS,EAAE,EAAO,CAAC,MAAAC,EAAM,IAAAC,EAAI,SAAAC,EAAS,OAAAC,EAAO,SAAAC,EAAS,UAAAC,EAAU,UAAAC,CAAS,EAAEd,EAAW,CAACe,EAAiBC,CAAmB,EAAET,EAAS,IAAI,EAAQU,EAASC,EAAa,QAAQ,IAAIA,EAAa,OAAO,SAASC,EAAaC,EAAM,CAAkB,IAAIC,EAAVD,EAA8B,QAAQV,CAAQ,EAAE,OAAGC,IAAQU,EAAaA,EAAa,QAAQ,wBAAwB,GAAG,GAAUA,CAAa,CAAC,SAASC,GAAc,CAAKL,IAAaF,GAAkBA,EAAiB,KAAK,EAAGC,EAAoBO,EAAQf,EAAMC,EAAI,CAAC,GAAGK,EAAU,WAAW,SAASU,GAAQ,CAAClB,EAAca,EAAaK,CAAM,CAAC,CAAE,CAAC,CAAC,CAAC,EAAG,CAAC,OAAAC,EAAU,IAAI,CAAIX,EAAU,SAAS,UAAUQ,EAAa,EAAGhB,EAAca,EAAaX,CAAK,CAAC,CAAE,EAAE,CAAC,CAAC,EAAEiB,EAAU,IAAI,CAAItB,GAAUW,EAAU,SAAS,eAAeQ,EAAa,CAAG,EAAE,CAACnB,CAAQ,CAAC,EAAEsB,EAAU,IAAI,CAAIX,EAAU,SAAS,gBAAkBX,EAAUmB,EAAa,GAAWP,GAAkBA,EAAiB,KAAK,EAAGT,EAAca,EAAaX,CAAK,CAAC,GAAI,EAAE,CAACL,CAAQ,CAAC,EAAsBuB,EAAMC,EAAO,EAAE,CAAC,IAAI1B,EAAI,MAAM,CAAC,WAAWD,EAAM,WAAW,OAAO,OAAO,mBAAmB,GAAGA,EAAM,UAAU,gBAAgB,EAAE,GAAGA,EAAM,aAAa,eAAe,EAAE,GAAG,OAAO,EAAE,GAAGa,EAAU,MAAM,QAAQ,CAAC,MAAMA,EAAU,KAAK,EAAE,CAAC,qBAAqB,OAAO,oBAAoB,cAAc,gBAAgB,mBAAmBA,EAAU,KAAK,QAAQA,EAAU,UAAU,KAAKA,EAAU,QAAQ,GAAG,EAAE,GAAGb,EAAM,KAAK,GAAGA,EAAM,KAAK,EAAE,SAAS,CAACA,EAAM,OAAOiB,EAASE,EAAaV,CAAG,EAAEJ,EAAWL,EAAM,MAAM,CAAC,CAAC,CAAE,CAACD,EAAe,YAAY,0BAA0B6B,EAAoB7B,EAAe,CAAC,MAAM,CAAC,KAAK8B,EAAY,OAAO,aAAa,CAAC,EAAE,IAAI,CAAC,KAAKA,EAAY,OAAO,aAAa,GAAG,EAAE,SAAS,CAAC,KAAKA,EAAY,OAAO,aAAa,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,CAAC,EAAE,OAAO,CAAC,KAAKA,EAAY,QAAQ,aAAa,EAAI,EAAE,UAAU,CAAC,KAAKA,EAAY,OAAO,SAAS,CAAC,KAAK,CAAC,KAAKA,EAAY,KAAK,aAAa,QAAQ,QAAQ,CAAC,QAAQ,UAAU,EAAE,aAAa,CAAC,QAAQ,UAAU,EAAE,wBAAwB,EAAI,EAAE,MAAM,CAAC,KAAKA,EAAY,MAAM,aAAa,OAAO,OAAO7B,GAAOA,EAAM,MAAM,OAAO,EAAE,WAAW,CAAC,KAAK6B,EAAY,MAAM,aAAa,OAAO,OAAO7B,GAAOA,EAAM,MAAM,UAAU,EAAE,SAAS,CAAC,KAAK6B,EAAY,MAAM,aAAa,OAAO,OAAO7B,GAAOA,EAAM,MAAM,UAAU,EAAE,MAAM,CAAC,KAAK6B,EAAY,OAAO,aAAa,IAAI,IAAI,KAAK,IAAI,IAAI,KAAK,OAAO,OAAO7B,GAAOA,EAAM,MAAM,UAAU,CAAC,CAAC,EAAE,KAAK,CAAC,KAAK,OAAO,SAAS,WAAW,gBAAgB,aAAa,aAAa,CAAC,SAAS,GAAG,WAAW,CAAC,CAAC,EAAE,UAAU,CAAC,KAAK6B,EAAY,OAAO,KAAK,SAAS,SAAS,CAAC,QAAQ,CAAC,KAAKA,EAAY,KAAK,aAAa,cAAc,QAAQ,CAAC,SAAS,aAAa,EAAE,aAAa,CAAC,SAAS,eAAe,EAAE,wBAAwB,GAAK,0BAA0B,UAAU,EAAE,OAAO,CAAC,KAAKA,EAAY,QAAQ,aAAa,GAAK,OAAO7B,EAAM,CAAC,OAAOA,EAAM,UAAU,aAAc,CAAC,EAAE,WAAW,CAAC,KAAK6B,EAAY,UAAU,CAAC,CAAC,EAAE,OAAO,CAAC,KAAKA,EAAY,MAAM,EAAE,OAAO,CAAC,KAAKA,EAAY,MAAM,EAAE,WAAW,CAAC,KAAKA,EAAY,QAAQ,aAAa,EAAI,EAAE,QAAQ,CAAC,KAAKA,EAAY,OAAO,YAAY,UAAU,SAAS,CAAC,UAAU,CAAC,KAAKA,EAAY,QAAQ,aAAa,GAAM,YAAY,+BAA+B,EAAE,aAAa,CAAC,KAAKA,EAAY,QAAQ,aAAa,GAAM,YAAY,+DAA+D,CAAC,CAAC,CAAC,CAAC",
  "names": ["NumberAnimator", "props", "ref", "pe", "isInView", "useInView", "numberText", "setNumberText", "ye", "start", "end", "decimals", "commas", "rounding", "fontColor", "animation", "currentAnimation", "setCurrentAnimation", "isCanvas", "RenderTarget", "formatNumber", "value", "numberString", "runAnimation", "animate", "latest", "ue", "u", "motion", "addPropertyControls", "ControlType"]
}
