PageSourceSearch

https://sentinel-365-c9d4f.web.app/assets/TorreSlaPage-DmF_qfX7.js

js sentinel-365-c9d4f.web.app collected 2026-10-03 12:36:28 UTC 4,917 bytes, 1 lines download raw bytes

1import{r as x,j as e}from"./react-vendor-pafHdoJx.js";import{b as h,d as v}from"./index-Db0fDLGN.js";import{T as w,L as B,E as O,c as g}from"./shared-DHvo53EK.js";import{B as S,br as L}from"./ui-vendor-DLXJn6s3.js";import"./map-vendor-Dr8zbd0c.js";import"./firebase-vendor-D3UzkAhn.js";const T={critical:"#EF4444",warn:"#F59E0B",info:"#10B981"};function k(){var s;const r=((s=h(()=>v.towerInsights().catch(()=>null),[]).data)==null?void 0:s.insights)||[];return r.length===0?null:e.jsxs("div",{className:"rounded-xl p-4 mb-3",style:{background:"rgba(99,102,241,0.06)",border:"1px solid rgba(99,102,241,0.25)"},children:[e.jsxs("p",{className:"text-sm font-semibold flex items-center gap-1.5 mb-2",style:{color:"var(--page-text)"},children:[e.jsx(L,{size:15,style:{color:"#6366F1"}})," Leituras do mês — análise da torre"]}),e.jsx("div",{className:"space-y-1.5",children:r.map((n,i)=>e.jsxs("div",{className:"flex items-start gap-2 text-xs",children:[e.jsx("span",{className:"mt-1 w-2 h-2 rounded-full shrink-0",style:{background:T[n.severity]||"#9CA3AF"}}),e.jsxs("span",{style:{color:"var(--page-text-secondary)"},children:[e.jsxs("strong",{style:{color:"var(--page-text)"},children:[n.carrierName,":"]})," ",n.text]})]},i))})]})}function u(t){const r=new Date;return r.setDate(15),r.setMonth(r.getMonth()-t),`${r.getFullYear()}-${String(r.getMonth()+1).padStart(2,"0")}`}const A=t=>{const[r,s]=t.split("-");return`${["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"][Number(s)-1]}/${r.slice(2)}`},o=(t,r="")=>t==null?"—":`${t}${r}`;function C(){var d,p;
1const[t,r]=x.useState(u(0)),s=h(()=>v.towerScorecard(t,6),[t]),n=((d=s.data)==null?void 0:d.carriers)||[],i=((p=s.data)==null?void 0:p.history)||{},y=x.useMemo(()=>[0,1,2,3,4,5].map(u),[]);return e.jsx(w,{icon:S,title:"SLA das Transportadoras",subtitle:"Ranking mensal com histórico — a mesma nota que cada parceiro vê no Connect",right:e.jsx("select",{value:t,onChange:a=>r(a.target.value),className:"text-sm rounded-lg px-2.5 py-1.5",style:{background:"var(--surface-secondary)",color:"var(--page-text)",border:"1px solid var(--border-primary)"},"aria-label":"Mês do scorecard",children:y.map(a=>e.jsx("option",{value:a,children:A(a)},a))}),children:s.loading&&!s.data?e.jsx(B,{}):e.jsxs("div",{className:"space-y-3",children:[e.jsx(k,{}),n.length===0&&e.jsx(O,{text:"Sem scorecard neste mês — a agregação roda diariamente às 03:30."}),n.map((a,c)=>{const m=i[a.networkId]||[],j=m.map(l=>l.otdRate),b=m.map(l=>l.podRate),f=[["OTD",o(a.otdRate,"%"),a.otdRate!=null&&a.otdRate<90?"#EF4444":"#10B981"],["POD",o(a.podRate,"%"),a.podRate!=null&&a.podRate<90?"#F59E0B":"#10B981"],["Lead",o(a.avgLeadHours,"h")],["Aceite",o(a.avgAcceptHours,"h")],["App",o(a.driverAppRate,"%")],["Canc.",o(a.cancelRate,"%"),a.cancelRate!=null&&a.cancelRate>5?"#EF4444":void 0],["POD lat.",o(a.avgPodLatencyMin," min")]];return e.jsxs("div",{className:"rounded-xl border p-4",style:{borderColor:"var(--border-primary)",background:"var(--surface-secondary)"},children:[e.jsxs("div",{className:"flex flex-wrap items-center justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-3 min-w-0",children:[e.jsxs("span",{className:"w-7 h-7 rounded-lg grid place-items-center text-xs font-bold shrink-0",style:{background:c===0?"#10B98120":"var(--surface-primary)",color:c===0?"#10B981":"var(--page-text-secondary)",border:"1px solid var(--border-primary)"},children:[c+1,"º"]}),e.jsxs("div",{className:"min-w-0",children:[e.jsx("p",{className:"text-sm font-bold truncate",style:{color:"var(--page-text)"},children:a.carrierName||a.carrierOrgId}),e.jsxs("p",{className:"text-[11px]",style:{color:"var(--page-text-secondary)"},children:[a.delivered," entregas / ",a.totalTrips," viagens · ",a.inTransit," em trânsito"]})]})]}),e.jsxs("div",{className:"flex items-center gap-5",children:[e.jsxs("div",{className:"text-center",children:[e.jsx(g,{points:j,color:"#10B981"}),e.jsx("p",{className:"text-[10px]",style:{color:"var(--page-text-secondary)"},children:"OTD 6m"})]}),e.jsxs("div",{className:"text-center",children:[e.jsx(g,{points:b,color:"#3B82F6"}),e.jsx("p",{className:"text-[10px]",style:{color:"var(--page-text-secondary)"},children:"POD 6m"})]})]})]}),e.jsx("div",{className:"flex flex-wrap gap-1.5 mt-3",children:f.map(([l,N,R])=>e.jsxs("span",{className:"text-[11px] px-2 py-1 rounded font-medium",style:{background:"var(--surface-primary)",border:"1px solid var(--border-primary)",color:"var(--page-text-secondary)"},children:[l," ",e.jsx("strong",{style:{color:R||"var(--page-text)"},children:N})]},l))})]},a.networkId)}),e.jsx("p",{className:"text-[11px]",style:{color:"var(--page-text-secondary)"},children:"OTD = entrega até o fim do dia da janela combinada · Aceite = tempo até a transportadora abraçar a viagem · POD lat. = minutos entre a chegada e o comprovante digital."})]})})}export{C as default};

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.