1import{r as v,j as a}from"./react-vendor-CJtUMPjh.js";import{u as O,t as k}from"./index-DtgeGXH9.js";import{u as G}from"./useEarningsSchedule-D5Bp3k5Y.js";import{S as I}from"./StockDetail-DVgWYt27.js";import"./supabase-vendor-De4Uq7j5.js";import"./earnings-D6vQG5Rg.js";import"./ErrorState-n9ERwI-b.js";import"./useCSSVariable-BYZ1g_t8.js";import"./recharts-vendor-BA3IeWbZ.js";import"./NotFound-DXtd6OXk.js";import"./stockApi-DayKeli-.js";import"./stocks-DCDTgyOh.js";const P="_card_1it1c_1",D="_cardLive_1it1c_29",H="_cardStartingSoon_1it1c_39",W="_header_1it1c_48",z="_quarter_1it1c_55",Z="_badge_1it1c_64",J="_badgeBeat_1it1c_74",K="_badgeMiss_1it1c_79",X="_badgeMet_1it1c_84",ee="_badgeUpcoming_1it1c_90",te="_badgeLive_1it1c_99",ne="_badgeStartingSoon_1it1c_115",se="_liveIcon_1it1c_132",ae="_startingSoonIcon_1it1c_139",ce="_content_1it1c_158",ie="_row_1it1c_165",re="_label_1it1c_171",oe="_value_1it1c_180",le="_labelActual_1it1c_189",ue="_valueActual_1it1c_198",de="_valuePositive_1it1c_207",ge="_valueNegative_1it1c_211",me="_valueMet_1it1c_215",_e="_countdownRow_1it1c_220",ve="_countdownLabel_1it1c_227",fe="_countdownTimer_1it1c_236",he="_dateValue_1it1c_245",s={card:P,cardLive:D,cardStartingSoon:H,header:W,quarter:z,badge:Z,badgeBeat:J,badgeMiss:K,badgeMet:X,badgeUpcoming:ee,badgeLive:te,badgeStartingSoon:ne,liveIcon:se,startingSoonIcon:ae,content:ce,row:ie,label:re,value:oe,labelActual:le,valueActual:ue,valuePositive:de,valueNegative:ge,valueMet:me,countdownRow:_e,countdownLabel:ve,countdownTimer:fe,dateValue:he};function pe(e){if(e>=1e12){const t=e/1e12;return t>=100?`$${Math.round(t)}T`:t>=10?`$${t.toFixed(1)}T`:`$${t.toFixed(1)}T`}if(e>=1e9){const t=e/1e9;return t>=100?`$${Math.round(t)}B`:t>=10?`$${t.toFixed(1)}B`:`$${t.toFixed(1)}B`}if(e>=1e6){const t=e/1e6;return t>=100?`$${Math.round(t)}M`:t>=10?`$${t.toFixed(1)}M`:`$${t.toFixed(1)}M`}return`$${e.toLocaleString()}`}function be(e){return`$${e.toFixed(2)}`}function $e(e){const i=new Date(e),r=i.toLocaleString("en-US",{month:"long",timeZone:"UTC"}),n=i.getUTCDate(),t=i.getUTCFullYear(),o=Se(n);return`${r} ${n}${o} ${t}`}function Se(e){if(e>=11&&e<=13)return"th";switch(e%10){case 1:return"st";case 2:return"nd";case 3:return"rd";default:return"th"}}function R(e){const i=new Date,n=new Date(e).getTime()-i.getTime();if(n<0)return null;const t=Math.floor(n/(3600*1e3)),o=Math.floor(t/24),c=t%24,m=Math.floor(n%(3600*1e3)/(60*1e3));return t<24?`${t}h ${m}m`:`${o}d ${c}h`}const xe=60*1e3,y=1800*1e3;function we({data:e,mode:i,loading:r=!1,earningsDate:n,onLiveClick:t}){const{quarter:o,status:c,predictedEps:m,actualEps:d,predictedRevenue:g,actualRevenue:f}=e,[b,h]=v.useState(()=>c==="upcoming"&&n?R(n):null),[x,l]=v.useState(!1),[u,p]=v.useState(()=>{if(c!=="upcoming"||!n)return!1;const $=new Date(n).getTime()-Date.now();return $>0&&$<y});v.useEffect(()=>{if(c!=="upcoming"||!n)return;const $=()=>{const B=Date.now(),E=new Date(n).getTime()-B;E<=0?(h(null),l(!0),p(!1)):(h(R(n)),p(E<y))};$();const V=setInterval($,xe);return()=>clearInterval(V)},[c,n]);const L=i==="eps"?m:g,w=i==="eps"?d:f,N=i==="eps"?be:pe,_=c==="live"||x,j=c==="upcoming"&&!x&&!u,A=c==="beat"?s.valuePositive:c==="miss"?s.valueNegative:c==="met"?s.valueMet:"";let T=s.card;_?T+=` ${s.cardLive}`:u&&(T+=` ${s.cardStartingSoon}`);const C=_||u,F=C?"button":"article",q=C?{type:"button",className:T,onClick:t,"aria-label":_?`Q${o} earnings - Listen Live`:`Q${o} earnings - Starting Soon`}:{className:T,role:"article"};return a.jsxs(F,{...q,children:[a.jsxs("div",{className:s.header,children:[a.jsxs("span",{className:s.quarter,children:["Q",o]}),c==="beat"&&a.jsx("span",{className:`${s.badge} ${s.badgeBeat}`,children:"BEAT"}),c==="miss"&&a.jsx("span",{className:`${s.badge} ${s.badgeMiss}`,children:"MISS"}),c==="met"&&a.jsx("span",{className:`${s.badge} ${s.badgeMet}`,children:"MET"}),j&&a.jsx("span",{className:`${s.badge} ${s.badgeUpcoming}`,children:"UPCOMING"}),u&&!_&&a.jsxs("span",{className:`${s.badge} ${s.badgeStartingSoon}`,children:["STARTING SOON",a.jsx("img",{src:"/icons/eventlive.svg",alt:"",className:s.startingSoonIcon,"aria-hidden":"true"})]}),_&&a.jsxs("span",{className:`${s.badge} ${s.badgeLive}`,children:["LISTEN LIVE",a.jsx("img",{src:"/icons/eventlive.svg",alt:"",className:s.liveIcon,"aria-hidden":"true"})]})]}),a.jsxs("div",{className:s.content,children:[a.jsxs("div",{className:s.row,children:[a.jsx("span",{className:s.label,children:"Predicted"}),a.jsx("span",{className:s.value,children:a.jsx(I,{loading:r,value:L,format:N,width:60,height:16})})]}),b&&(j||u)&&a.jsxs("div",{className:s.countdownRow,children:[a.jsx("span",{className:s.countdownLabel,children:"Live in"}),a.jsx("span",{className:s.countdownTimer,children:b})]}),!j&&!_&&!u&&c==="upcoming"&&n&&a.jsx("div",{className:s.row,children:a.jsx("span",{className:s.dateValue,children:$e(n)})}),!j&&!u&&!_&&a.jsxs("div",{className:s.row,children:[a.jsx("span",{className:s.labelActual,children:"Actual"}),a.jsx("span",{className:`${s.valueActual} ${A}`,children:a.jsx(I,{loading:r,value:w,format:N,width:60,height:16})})]})]})]})}const Ne="_container_817iz_1",je="_button_817iz_11",Te="_selected_817iz_25",S={container:Ne,button:je,selected:Te};function Me({mode:e,onChange:i}){const r=n=>{n!==e&&i(n)};return a.jsxs("div",{className:S.container,role:"group","aria-label":"Toggle between EPS and Revenue view",children:[a.jsx("button",{type:"button",className:`${S.button} ${e==="eps"?S.selected:""}`,onClick:()=>r("eps"),"aria-pressed":e==="eps",children:"EPS"}),a.jsx("button",{type:"button",className:`${S.button} ${e==="rev"?S.selected:""}`,onClick:()=>r("rev"),"aria-pressed":e==="rev",children:"REV"})]})}function Y(e=new Date){const i=e.getUTCMonth(),r=e.getUTCFullYear();return{quarter:Math.floor(i/3)+1,fiscalYear:r}}function U(e,i){return i*10+e}function Le(e){return e.length===0?[]:[...e].sort((i,r)=>{const n=U(i.quarter,i.fiscalYear);return U(r.quarter,r.fiscalYear)-n})}function Ce(e=new Date){const{quarter:i,fiscalYear:r}=Y(e),n=[];for(let t=0;t<4;t++){let o=i-t,c=r;for(;o<1;)o+=4,c-=1;n.push({quarter:o,fiscalYear:c,status:t===0?"upcoming":"beat",predictedEps:null,actualEps:null,predictedRevenue:null,actualRevenue:null})}return n}function Q(e,i){const r=new Date(e),{quarter:n,fiscalYear:t}=Y(r),o=[];for(let c=0;c<4;c++){let m=n-c,d=t;for(;m<1;)m+=4,d-=1;
1const g={quarter:m,fiscalYear:d,status:c===0?i:"beat"};c>0&&(g.predictedEps=null,g.actualEps=null,g.predictedRevenue=null,g.actualRevenue=null),o.push(g)}return o}const Ee="_earningsSection_s2m1y_1",Ie="_header_s2m1y_6",Re="_heading_s2m1y_13",ye="_cardsGrid_s2m1y_21",M={earningsSection:Ee,header:Ie,heading:Re,cardsGrid:ye};function He({ticker:e,companyName:i,quarters:r,nextEarningsDate:n,loading:t=!1}){const[o,c]=v.useState("eps"),{openWidget:m}=O(),{scheduledEvent:d}=G(e),g=v.useMemo(()=>r.length>0?r:d?Q(d.scheduledTime,d.state):n?Q(n,"upcoming"):Ce(),[r,d,n]),f=v.useMemo(()=>Le(g),[g]),b=v.useMemo(()=>{if(!d||d.state!=="live")return f;const l=f.findIndex(u=>u.status==="upcoming");return l===-1?f:f.map((u,p)=>p===l?{...u,status:"live"}:u)},[f,d]),h=d?.scheduledTime||n||null,x=l=>{k("earnings_card_click",{ticker:e,quarter:`Q${l.quarter} ${l.fiscalYear}`,status:l.status});const u={ticker:e,companyName:i,scheduledTime:h||new Date().toISOString(),quarter:`Q${l.quarter}`,fiscalYear:l.fiscalYear.toString()};m(u)};return a.jsxs("section",{className:M.earningsSection,role:"region","aria-labelledby":"earnings-heading",children:[a.jsxs("div",{className:M.header,children:[a.jsx("h3",{id:"earnings-heading",className:M.heading,children:"Earnings"}),a.jsx(Me,{mode:o,onChange:c})]}),a.jsx("div",{className:M.cardsGrid,children:b.map((l,u)=>{const p=b.findIndex(_=>_.status==="upcoming"),w=l.status==="upcoming"&&u===p&&d?.state!=="live",N=l.status==="live"||w&&h;return a.jsx(we,{data:l,mode:o,loading:t,earningsDate:w?h:void 0,onLiveClick:N?()=>x(l):void 0},`${l.fiscalYear}-Q${l.quarter}`)})})]})}export{He as EarningsSection};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.