{"version":3,"file":"Counter.DLNIIOPo.mjs","names":["useState","useRef"],"sources":["https:/framerusercontent.com/modules/zvoZNP8UJAAdZSUdUn7X/TYhrdITsgnQQnXbuKsei/Counter.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{useState,useEffect,useRef}from\"react\";import{motion}from\"framer-motion\";import{addPropertyControls,ControlType}from\"framer\";const NumberCounterStyles={display:\"flex\",justifyContent:\"left\",alignItems:\"center\"};export function NumberCounter(props){const{showNumber,startNumber,endNumber,speed,prefix,suffix,loop,decimalSeparator,fontSize,font,fontColor}=props;const[count,setCount]=useState(startNumber);const[isVisible,setIsVisible]=useState(false);const ref=useRef(null);useEffect(()=>{const node=ref.current;const observer=new IntersectionObserver(entries=>{setIsVisible(entries[0].isIntersecting);});if(node)observer.observe(node);return()=>{if(node)observer.unobserve(node);};},[]);// reset al cambiar el rango\nuseEffect(()=>{setCount(startNumber);},[startNumber,endNumber]);useEffect(()=>{if(isVisible&&showNumber&&startNumber!==endNumber){const intervalId=setInterval(()=>{if(count<endNumber){setCount(prevCount=>prevCount+1);}else if(loop){setCount(startNumber);}},speed);return()=>clearInterval(intervalId);}},[count,startNumber,endNumber,loop,isVisible,speed,showNumber]);const formatCount=number=>{if(decimalSeparator===\"comma\"){return number.toLocaleString(\"en-US\");}else if(decimalSeparator===\"period\"){return number.toLocaleString(\"en-US\").replace(/,/g,\".\");}else{return number.toFixed(0);}};return /*#__PURE__*/_jsx(motion.div,{ref:ref,style:{...NumberCounterStyles,gap:`${fontSize/2}px`,flexDirection:\"row\",fontSize:`${fontSize}px`,fontFamily:font?.fontFamily,fontWeight:font?.fontWeight,color:fontColor},children:/*#__PURE__*/_jsxs(\"span\",{style:{color:fontColor},children:[prefix,showNumber&&formatCount(count),suffix]})});}NumberCounter.defaultProps={showNumber:true,startNumber:0,endNumber:8,speed:100,prefix:\"\",suffix:\"\",loop:false,decimalSeparator:\"comma\",fontSize:16,font:{fontFamily:\"Arial\",fontWeight:400,systemFont:true},fontColor:\"#E5EBFF\"};addPropertyControls(NumberCounter,{showNumber:{type:ControlType.Boolean,title:\"Show number\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},font:{title:\"Font\",type:ControlType.Font,defaultValue:{fontFamily:\"Arial\",fontWeight:400,systemFont:true}},fontSize:{title:\"Font Size\",type:ControlType.Number,min:8,max:200,step:1,defaultValue:16},fontColor:{type:ControlType.Color,title:\"Font Color\",defaultValue:\"#E5EBFF\"},startNumber:{type:ControlType.Number,title:\"Start Number\",defaultValue:0,displayStepper:true},endNumber:{type:ControlType.Number,title:\"End Number\",defaultValue:10,displayStepper:true},decimalSeparator:{type:ControlType.Enum,title:\"Decimal Separator\",defaultValue:\"comma\",options:[\"comma\",\"period\",\"none\"],optionTitles:[\"Comma (1,000)\",\"Period (1.000)\",\"None\"]},speed:{type:ControlType.Number,title:\"Speed (ms)\",defaultValue:100,min:0,max:1e3,step:10},prefix:{type:ControlType.String,title:\"Prefix\",defaultValue:\"\"},suffix:{type:ControlType.String,title:\"Suffix\",defaultValue:\"\"},loop:{type:ControlType.Boolean,title:\"Loop Animation\",defaultValue:false,enabledTitle:\"On\",disabledTitle:\"Off\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"NumberCounter\":{\"type\":\"reactComponent\",\"name\":\"NumberCounter\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./Counter.map"],"mappings":"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"}