{"version":3,"file":"StockTicker.C_hnnVBX.mjs","names":["useState","useRef","_Fragment","p"],"sources":["https:/framerusercontent.com/modules/sA40IuttSjNtfmAykIG4/FcLulfyRtBFXmkzGb4we/jiyAOZNbE.js","https:/framerusercontent.com/modules/siOziAk8XHVtESFciCRH/nPiFBoocATTokc4hRKfE/StockTicker.js"],"sourcesContent":["// Generated by Framer (6ca5d98)\nimport{jsx as _jsx}from\"react/jsx-runtime\";import{addPropertyControls,ControlType,cx,motion,useSVGTemplate,withCSS}from\"framer\";import*as React from\"react\";import{forwardRef}from\"react\";const mask=\"var(--framer-icon-mask)\";const Base=/*#__PURE__*/forwardRef(function(props,ref){return /*#__PURE__*/_jsx(\"svg\",{...props,ref:ref,children:props.children});});const MotionSVG=motion.create(Base);const SVG=/*#__PURE__*/forwardRef((props,ref)=>{const{animated,layoutId,children,...rest}=props;return animated?/*#__PURE__*/_jsx(MotionSVG,{...rest,layoutId:layoutId,ref:ref,children:children}):/*#__PURE__*/_jsx(\"svg\",{...rest,ref:ref,children:children});});const svg='<svg display=\"block\" role=\"presentation\" viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\"><path d=\"M 0 9 C 0 4.029 4.029 0 9 0 C 13.971 0 18 4.029 18 9 C 18 13.971 13.971 18 9 18 C 4.029 18 0 13.971 0 9 Z\" fill-opacity=\"var(--1m6trwb, 0)\" fill=\"var(--21h8s6, rgb(0, 0, 0))\" height=\"18px\" id=\"M2umBpORv\" transform=\"translate(3 3)\" width=\"18px\"/><path d=\"M 0 3 L 2.25 5.25 L 7.5 0\" fill=\"transparent\" height=\"5.25px\" id=\"SKKzYtdWd\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(8.25 9.75)\" width=\"7.5px\"/><path d=\"M 0 9 C 0 4.029 4.029 0 9 0 C 13.971 0 18 4.029 18 9 C 18 13.971 13.971 18 9 18 C 4.029 18 0 13.971 0 9 Z\" fill=\"transparent\" height=\"18px\" id=\"Ub0giwiXO\" stroke-dasharray=\"\" stroke-linecap=\"round\" stroke-linejoin=\"round\" stroke-width=\"var(--pgex8v, 1.5)\" stroke=\"var(--21h8s6, rgb(0, 0, 0))\" transform=\"translate(3 3)\" width=\"18px\"/></svg>';const getProps=({alpha,color,height,id,width,width1,...props})=>{return{...props,ezTt3ayMo:color??props.ezTt3ayMo??\"rgb(0, 0, 0)\",lschgej4H:width1??props.lschgej4H??1.5,qxTvv_EBh:alpha??props.qxTvv_EBh};};const Component=/*#__PURE__*/React.forwardRef(function(props,ref){const{style,className,layoutId,variant,ezTt3ayMo,lschgej4H,qxTvv_EBh,...restProps}=getProps(props);const href=useSVGTemplate(\"2883338743\",svg);return /*#__PURE__*/_jsx(SVG,{...restProps,className:cx(\"framer-30Bgq\",className),layoutId:layoutId,ref:ref,role:\"presentation\",style:{\"--1m6trwb\":qxTvv_EBh,\"--21h8s6\":ezTt3ayMo,\"--pgex8v\":lschgej4H,...style},viewBox:\"0 0 24 24\",children:/*#__PURE__*/_jsx(\"use\",{href:href})});});const css=[`.framer-30Bgq { -webkit-mask: ${mask}; aspect-ratio: 1; display: block; mask: ${mask}; width: 24px; }`];/**\n * This is a generated Framer component.\n * @framerIntrinsicWidth 24\n * @framerIntrinsicHeight 24\n * @framerSupportedLayoutWidth any-prefer-fixed\n * @framerSupportedLayoutHeight any-prefer-fixed\n * @framerVariables {\"ezTt3ayMo\":\"color\",\"lschgej4H\":\"width1\",\"qxTvv_EBh\":\"alpha\"}\n * @framerImmutableVariables true\n * @framerVector {\"name\":\"Check Circle\",\"color\":{\"type\":\"variable\",\"value\":\"21h8s6\"},\"set\":{\"localId\":\"vectorSet/NGVKdicsm\",\"id\":\"NGVKdicsm\",\"moduleId\":\"omX0gWFPqDwhaiWwf6ab\"}}\n * @framerDisableUnlink true\n */const Icon=withCSS(Component,css,\"framer-30Bgq\");Icon.displayName=\"Check Circle\";export default Icon;addPropertyControls(Icon,{ezTt3ayMo:{defaultValue:\"rgb(0, 0, 0)\",hidden:false,title:\"Color\",type:ControlType.Color},lschgej4H:{defaultValue:1.5,displayStepper:true,hidden:false,max:6,min:0,step:.5,title:\"Width\",type:ControlType.Number},qxTvv_EBh:{defaultValue:0,displayStepper:true,hidden:false,max:1,min:0,step:.1,title:\"Alpha\",type:ControlType.Number}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"Icon\",\"slots\":[],\"annotations\":{\"framerVector\":\"{\\\"name\\\":\\\"Check Circle\\\",\\\"color\\\":{\\\"type\\\":\\\"variable\\\",\\\"value\\\":\\\"21h8s6\\\"},\\\"set\\\":{\\\"localId\\\":\\\"vectorSet/NGVKdicsm\\\",\\\"id\\\":\\\"NGVKdicsm\\\",\\\"moduleId\\\":\\\"omX0gWFPqDwhaiWwf6ab\\\"}}\",\"framerSupportedLayoutWidth\":\"any-prefer-fixed\",\"framerVariables\":\"{\\\"ezTt3ayMo\\\":\\\"color\\\",\\\"lschgej4H\\\":\\\"width1\\\",\\\"qxTvv_EBh\\\":\\\"alpha\\\"}\",\"framerDisableUnlink\":\"true\",\"framerIntrinsicWidth\":\"24\",\"framerSupportedLayoutHeight\":\"any-prefer-fixed\",\"framerContractVersion\":\"1\",\"framerIntrinsicHeight\":\"24\",\"framerImmutableVariables\":\"true\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}","import{jsx as _jsx,jsxs as _jsxs,Fragment as _Fragment}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{useState,useEffect,useRef}from\"react\";/**\n * STOCK TICKER v15 — FINAL\n *\n * Fuentes:\n *   ^IBEX       → Alpha Vantage EWP via Worker /alpha/EWP\n *   GC=F        → Stooq gc.f via Worker /stooq/gc.f\n *   ECB:*       → BCE directo (CORS nativo) + Worker fallback\n *\n * @framerSupportedLayoutWidth auto\n * @framerSupportedLayoutHeight auto\n */const WORKER=\"https://wandering-brook-fca4.juliaribes98.workers.dev\";// Cada ticker tiene su ruta en el Worker y su currency\nconst TICKER_CONFIG={\"^IBEX\":{workerPath:\"/quote/%5EIBEX\",currency:\"EUR\"},\"GC=F\":{workerPath:\"/quote/GC%3DF\",currency:\"USD\"},\"EURUSD=X\":{workerPath:\"/quote/EURUSD%3DX\",currency:\"\"},\"^GSPC\":{workerPath:\"/quote/%5EGSPC\",currency:\"USD\"},\"BTC-USD\":{workerPath:\"/quote/BTC-USD\",currency:\"USD\"}};const ECB_SHORTCUTS={EURIBOR1W:\"FM/M.U2.EUR.RT.MM.EURIBOR1WD_.HSTA\",EURIBOR1M:\"FM/M.U2.EUR.RT.MM.EURIBOR1MD_.HSTA\",EURIBOR3M:\"FM/M.U2.EUR.RT.MM.EURIBOR3MD_.HSTA\",EURIBOR6M:\"FM/M.U2.EUR.RT.MM.EURIBOR6MD_.HSTA\",EURIBOR1Y:\"FM/M.U2.EUR.RT.MM.EURIBOR1YD_.HSTA\",EURIBOR12M:\"FM/M.U2.EUR.RT.MM.EURIBOR1YD_.HSTA\",ES10Y:\"IRS/M.ES.L.L40.CI.0000.EUR.N.Z\"};function resolveSize(val,fallback){if(val==null||val===\"\")return fallback;if(typeof val===\"number\")return`${val}px`;return String(val);}function formatNumberES(num,decimals=2){return num.toLocaleString(\"es-ES\",{minimumFractionDigits:decimals,maximumFractionDigits:decimals});}function abbreviateNumber(num){const a=Math.abs(num);if(a>=1e9)return(num/1e9).toFixed(2).replace(\".\",\",\")+\"B\";if(a>=1e6)return(num/1e6).toFixed(2).replace(\".\",\",\")+\"M\";if(a>=1e3)return(num/1e3).toFixed(2).replace(\".\",\",\")+\"K\";return formatNumberES(num);}function currencySymbol(c){return({USD:\"$\",EUR:\"€\",GBP:\"\\xa3\",JPY:\"\\xa5\"})[c]||\"\";}function parseCSV(text,ticker,currency){if(text.trim().startsWith(\"{\"))throw new Error(text.trim());if(text.trim().startsWith(\"<\")||!text.includes(\",\"))throw new Error(\"No es CSV\");const lines=text.trim().split(\"\\n\");if(lines.length<2)throw new Error(\"CSV vac\\xedo\");const headers=lines[0].split(\",\").map(h=>h.trim().toLowerCase());const values=lines[1].split(\",\").map(v=>v.trim());const idx=k=>headers.indexOf(k);const close=parseFloat(values[idx(\"close\")]);const open=parseFloat(values[idx(\"open\")]);if(isNaN(close)||close<=0)throw new Error(`Precio inv\\xe1lido: ${values[idx(\"close\")]}`);const prev=!isNaN(open)&&open>0?open:close;const change=close-prev;const changePercent=prev!==0?change/prev*100:0;return{symbol:ticker,shortName:values[idx(\"name\")]||ticker,price:close,change,changePercent,currency};}async function fetchViaWorker(ticker){const config=TICKER_CONFIG[ticker];if(!config)throw new Error(`Ticker no soportado: ${ticker}`);const url=`${WORKER}${config.workerPath}?t=${Date.now()}`;const res=await fetch(url);if(!res.ok){const body=await res.text();throw new Error(`Worker ${res.status}: ${body}`);}const text=await res.text();return parseCSV(text,ticker,config.currency);}async function fetchECBData(ticker){const ecbInput=ticker.substring(4).toUpperCase();const path=ECB_SHORTCUTS[ecbInput]??(ticker.substring(4).includes(\"/\")?ticker.substring(4):null);if(!path)throw new Error(`ECB shortcut no reconocido: ${ecbInput}`);const directUrl=`https://data-api.ecb.europa.eu/service/data/${path}?format=jsondata&lastNObservations=2`;const workerUrl=`${WORKER}/ecb/${path}?t=${Date.now()}`;let json=null;for(const url of[directUrl,workerUrl]){try{const res=await fetch(url);if(res.ok){json=await res.json();break;}}catch{}}if(!json)throw new Error(\"BCE no responde\");const series=json?.dataSets?.[0]?.series;if(!series||Object.keys(series).length===0)throw new Error(\"Sin series BCE\");const observations=series[Object.keys(series)[0]]?.observations;if(!observations)throw new Error(\"Sin observaciones BCE\");const obsKeys=Object.keys(observations).map(k=>parseInt(k)).filter(n=>!isNaN(n)).sort((a,b)=>a-b);if(obsKeys.length===0)throw new Error(\"Sin datos BCE\");const lastValue=Number(observations[String(obsKeys[obsKeys.length-1])]?.[0]);let prevValue=lastValue;if(obsKeys.length>1){const pv=observations[String(obsKeys[obsKeys.length-2])]?.[0];if(pv!=null)prevValue=Number(pv);}const change=lastValue-prevValue;const changePercent=prevValue!==0?change/prevValue*100:0;return{symbol:ecbInput,shortName:\"BCE\",price:lastValue,change,changePercent,currency:\"PCT\"};}async function fetchMarketData(ticker){if(ticker.toUpperCase().startsWith(\"ECB:\"))return fetchECBData(ticker);return fetchViaWorker(ticker);}export default function StockTicker(props){const{ticker,displayName,font,fontColor,background,radius,padding,gap,showIcon,iconBg,iconSize,iconRadius,showSymbol,showLabel,showPrice,showChange,showPercent,abbreviate,changeUpColor,changeDownColor,refreshSeconds}=props;const[data,setData]=useState(null);const[loading,setLoading]=useState(true);const[errorMsg,setErrorMsg]=useState(\"\");const intervalRef=useRef(null);const fetchData=async()=>{try{const result=await fetchMarketData(ticker);setData(result);setErrorMsg(\"\");}catch(e){setErrorMsg(e?.message||\"Error\");}finally{setLoading(false);}};useEffect(()=>{fetchData();if(intervalRef.current)window.clearInterval(intervalRef.current);intervalRef.current=window.setInterval(fetchData,Math.max(10,refreshSeconds)*1e3);return()=>{if(intervalRef.current)window.clearInterval(intervalRef.current);};},[ticker,refreshSeconds]);const containerStyle={display:\"inline-flex\",alignItems:\"baseline\",gap:`${gap}px`,padding:padding?`${padding}px ${padding*1.25}px`:0,background,borderRadius:`${radius}px`,fontFamily:font?.fontFamily||\"Work Sans, Inter, sans-serif\",fontWeight:font?.fontWeight||600,fontSize:resolveSize(font?.fontSize,\"32px\"),letterSpacing:resolveSize(font?.letterSpacing,\"-0.015em\"),lineHeight:font?.lineHeight||\"1.1\",fontStyle:font?.fontStyle||\"normal\",color:fontColor,whiteSpace:\"nowrap\",width:\"fit-content\"};if(loading)return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,children:[showSymbol&&/*#__PURE__*/_jsx(\"span\",{children:displayName||ticker}),/*#__PURE__*/_jsx(\"span\",{style:{opacity:.4,fontWeight:400},children:\"cargando…\"})]});if(errorMsg&&!data)return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,children:[showSymbol&&/*#__PURE__*/_jsx(\"span\",{children:displayName||ticker}),/*#__PURE__*/_jsx(\"span\",{style:{opacity:.5,fontSize:\"0.6em\",fontWeight:400},title:errorMsg,children:\"sin datos\"})]});if(!data)return null;const isRate=data.currency===\"PCT\";const isUp=data.change>=0;const sign=isUp?\"+\":\"\";const priceDisplay=isRate?`${formatNumberES(data.price,3)}%`:abbreviate?`${currencySymbol(data.currency)}${abbreviateNumber(data.price)}`:`${currencySymbol(data.currency)}${formatNumberES(data.price)}`;const changeDisplay=isRate?`${sign}${formatNumberES(data.change,3)}%`:abbreviate?`${sign}${abbreviateNumber(Math.abs(data.change))}`:`${sign}${formatNumberES(data.change)}`;return /*#__PURE__*/_jsxs(\"div\",{style:containerStyle,children:[showIcon&&/*#__PURE__*/_jsx(\"div\",{style:{width:`${iconSize}px`,height:`${iconSize}px`,borderRadius:`${iconRadius}px`,background:iconBg,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexShrink:0,alignSelf:\"center\"},children:/*#__PURE__*/_jsx(\"svg\",{width:iconSize*.5,height:iconSize*.5,viewBox:\"0 0 24 24\",fill:\"none\",children:/*#__PURE__*/_jsx(\"path\",{d:\"M3 12L7 8L11 14L15 6L21 12\",stroke:\"white\",strokeWidth:\"2.2\",strokeLinecap:\"round\",strokeLinejoin:\"round\"})})}),(showSymbol||showPrice)&&/*#__PURE__*/_jsxs(\"span\",{style:{display:\"inline-flex\",alignItems:\"baseline\",gap:`${Math.max(6,gap*.5)}px`},children:[showSymbol&&/*#__PURE__*/_jsx(\"span\",{children:displayName||data.symbol}),showLabel&&/*#__PURE__*/_jsx(\"span\",{style:{opacity:.6,fontSize:\"0.7em\"},children:data.shortName}),showPrice&&/*#__PURE__*/_jsx(\"span\",{children:priceDisplay})]}),showChange&&/*#__PURE__*/_jsxs(\"span\",{style:{color:isUp?changeUpColor:changeDownColor},children:[changeDisplay,showPercent&&!isRate&&/*#__PURE__*/_jsxs(_Fragment,{children:[\" \",\"(\",sign,data.changePercent.toFixed(2).replace(\".\",\",\"),\"%)\"]})]})]});}StockTicker.defaultProps={ticker:\"^IBEX\",displayName:\"\",fontColor:\"#0A0A0A\",background:\"rgba(0,0,0,0)\",radius:0,padding:0,gap:12,showIcon:false,iconBg:\"#0A0A0A\",iconSize:32,iconRadius:0,showSymbol:true,showLabel:false,showPrice:true,showChange:true,showPercent:true,abbreviate:false,changeUpColor:\"#16A34A\",changeDownColor:\"#FC608F\",refreshSeconds:7200};addPropertyControls(StockTicker,{ticker:{type:ControlType.String,title:\"Stock Ticker\",defaultValue:\"^IBEX\",placeholder:\"^IBEX, GC=F, ECB:EURIBOR12M, ECB:ES10Y…\",description:\"^IBEX, GC=F via Worker — ECB:* via BCE directo\"},displayName:{type:ControlType.String,title:\"Display Name\",defaultValue:\"\",placeholder:\"ORO, IBEX, EURIBOR 12M, BONO 10Y…\"},font:{type:ControlType.Font,title:\"Font\",controls:\"extended\",defaultFontType:\"sans-serif\",defaultValue:{fontSize:\"32px\",fontWeight:600,letterSpacing:\"-0.015em\",lineHeight:\"1.1\"}},fontColor:{type:ControlType.Color,title:\"Font Color\",defaultValue:\"#0A0A0A\"},background:{type:ControlType.Color,title:\"Background\",defaultValue:\"rgba(0,0,0,0)\"},radius:{type:ControlType.Number,title:\"Radius\",defaultValue:0,min:0,max:100,step:1},padding:{type:ControlType.Number,title:\"Padding\",defaultValue:0,min:0,max:64,step:1},gap:{type:ControlType.Number,title:\"Gap\",defaultValue:12,min:0,max:48,step:1},showIcon:{type:ControlType.Boolean,title:\"Show Icon\",defaultValue:false,enabledTitle:\"Show\",disabledTitle:\"Hide\"},iconBg:{type:ControlType.Color,title:\"Icon BG\",defaultValue:\"#0A0A0A\",hidden:p=>!p.showIcon},iconSize:{type:ControlType.Number,title:\"Icon Size\",defaultValue:32,min:12,max:96,step:1,hidden:p=>!p.showIcon},iconRadius:{type:ControlType.Number,title:\"Icon Radius\",defaultValue:0,min:0,max:50,step:1,hidden:p=>!p.showIcon},showSymbol:{type:ControlType.Boolean,title:\"Show Symbol\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},showLabel:{type:ControlType.Boolean,title:\"Show Label\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\"},showPrice:{type:ControlType.Boolean,title:\"Show Price\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\"},abbreviate:{type:ControlType.Boolean,title:\"Abbreviate\",defaultValue:false,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:p=>!p.showPrice},showChange:{type:ControlType.Boolean,title:\"Show Change\",defaultValue:true,enabledTitle:\"Show\",disabledTitle:\"Hide\"},showPercent:{type:ControlType.Boolean,title:\"Show %\",defaultValue:true,enabledTitle:\"Yes\",disabledTitle:\"No\",hidden:p=>!p.showChange},changeUpColor:{type:ControlType.Color,title:\"Up Color\",defaultValue:\"#16A34A\",hidden:p=>!p.showChange},changeDownColor:{type:ControlType.Color,title:\"Down Color\",defaultValue:\"#FC608F\",hidden:p=>!p.showChange},refreshSeconds:{type:ControlType.Number,title:\"Refresh (s)\",defaultValue:7200,min:3600,max:14400,step:60}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"StockTicker\",\"slots\":[],\"annotations\":{\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./StockTicker.map"],"mappings":"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"}