PageSourceSearch

https://repuestos-d6c3d.firebaseapp.com/_nuxt/QgBq2kVJ.js

js repuestos-d6c3d.firebaseapp.com collected 2026-10-03 08:14:22 UTC 18,007 bytes, 1 lines download raw bytes

1import{_ as it}from"./BsqTxom4.js";import{u as dt,r as D,q as ct,c,b as t,e as R,f as F,z as ut,d as gt,v as U,t as l,F as b,x as v,j as pt,o as u,p as q,A as I}from"#entry";const mt={class:"bg-white rounded-xl shadow-lg p-6 mb-6 border border-gray-100"},xt={class:"flex flex-wrap items-center gap-4"},ft={class:"flex-1 min-w-[200px]"},ht={key:0,class:"flex-1 min-w-[200px]"},bt={key:1,class:"flex-1 min-w-[200px]"},vt={class:"grid grid-cols-1 md:grid-cols-2 lg:grid-cols-4 gap-6 mb-6"},yt={class:"bg-white rounded-xl shadow-lg p-6 border border-gray-100"},_t={class:"flex items-center justify-between"},wt={class:"text-3xl font-bold text-gray-900 mt-1"},Mt={class:"text-xs text-green-600 mt-1"},Dt={class:"bg-white rounded-xl shadow-lg p-6 border border-gray-100"},kt={class:"flex items-center justify-between"},Pt={class:"text-3xl font-bold text-gray-900 mt-1"},Vt={class:"text-xs text-blue-600 mt-1"},Ct={class:"bg-white rounded-xl shadow-lg p-6 border border-gray-100"},At={class:"flex items-center justify-between"},jt={class:"text-3xl font-bold text-gray-900 mt-1"},Et={class:"bg-white rounded-xl shadow-lg p-6 border border-gray-100"},St={class:"flex items-center justify-between"},$t={class:"text-3xl font-bold text-gray-900 mt-1"},Tt={class:"text-xs text-orange-600 mt-1"},zt={class:"grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6"},Ft={class:"bg-white rounded-xl shadow-lg p-6 border border-gray-100"},Yt={class:"space-y-4"},Bt={class:"flex items-center space-x-3 flex-1"},Ht={class:"text-white font-bold"},Lt={class:"flex-1"},Nt={class:"font-medium text-gray-900"},Rt={class:"text-sm text-gray-500"},Ut={class:"text-right"},qt={class:"font-semibold text-gray-900"},It={class:"text-xs text-gray-500"},Ot={class:"mt-4 pt-4 border-t border-gray-200"},Wt={class:"flex items-center justify-between"},Gt={class:"text-lg font-bold text-gray-900"},Jt={class:"bg-white rounded-xl shadow-lg p-6 border border-gray-100"},Kt={class:"space-y-4"},Qt={class:"flex items-center space-x-3 flex-1"},Xt={class:"w-8 h-8 rounded-full bg-gray-100 flex items-center justify-center text-sm font-bold text-gray-600"},Zt={class:"flex-1"},te={class:"font-medium text-gray-900"},ee={class:"text-sm text-gray-500"},oe={class:"text-right"},se={class:"font-semibold text-gray-900"},ae={class:"w-32 bg-gray-200 rounded-full h-2 mt-1"},re={class:"grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6"},ne={class:"bg-white rounded-xl shadow-lg p-6 border border-gray-100"},le={class:"overflow-x-auto"},ie={class:"w-full"},de={class:"py-3 px-4"},ce={class:"font-medium text-gray-900"},ue={class:"text-xs text-gray-500"},ge={class:"py-3 px-4 text-right font-medium text-gray-900"},pe={class:"py-3 px-4 text-right font-semibold text-gray-900"},me={class:"bg-white rounded-xl shadow-lg p-6 border border-gray-100"},xe={class:"space-y-3"},fe={class:"font-medium text-gray-900"},he={class:"text-sm text-gray-500"},be={class:"text-right"},ve={class:"font-semibold text-gray-900"},ye={class:"text-xs text-gray-500"},_e={class:"bg-white rounded-xl shadow-lg p-6 mb-6 border border-gray-100"},we={class:"h-64 flex items-end justify-between gap-2"},Me=["title"],De={class:"text-xs text-gray-500 mt-2 transform -rotate-45 origin-top-left whitespace-nowrap"},ke={class:"bg-white rounded-xl shadow-lg p-6 border border-gray-100"},Pe={class:"overflow-x-auto"},Ve={class:"w-full"},Ce={class:"py-3 px-4"},Ae={class:"py-3 px-4 text-right font-medium text-gray-900"},je={class:"py-3 px-4 text-right font-semibold text-gray-900"},Ee={class:"py-3 px-4 text-right text-gray-600"},Fe={__name:"reportes",setup(Se){dt({title:"Reportes - Panel Admin",meta:[{name:"robots",content:"noindex, nofollow"}]});const Y=D(!1),y=D("mes_actual"),k=D(""),P=D(""),i=D({totalVentas:0,crecimientoVentas:0,totalPedidos:0,pedidosCompletados:0,ticketPromedio:0,totalProductos:0,marcasUnicas:0,ventasPorMetodo:[],topMarcas:[],productosMasVendidos:[],ventasPorCategoria:[],tendenciaDiaria:[],maxVentaDiaria:0,ventasPorEstado:[]}),p=r=>new Intl.NumberFormat("es-CL",{minimumFractionDigits:0,maximumFractionDigits:0}).format(r||0),O=r=>{if(!r)return"";const o=new Date(r);return`${o.getDate()}/${o.getMonth()+1}`},W=r=>({Web:"bg-blue-500",MercadoLibre:"bg-yellow-500",Presencial:"bg-green-500",Otro:"bg-gray-500"})[r]||"bg-gray-500",G=r=>({solicitud_enviada:"bg-yellow-100 text-yellow-800",producto_encontrado:"bg-blue-100 text-blue-800",pen
1diente_pago:"bg-orange-100 text-orange-800",producto_viajando:"bg-purple-100 text-purple-800",llegada_chile:"bg-indigo-100 text-indigo-800",despachando:"bg-pink-100 text-pink-800",entregado:"bg-green-100 text-green-800",cancelado:"bg-red-100 text-red-800"})[r]||"bg-gray-100 text-gray-800",J=r=>({solicitud_enviada:"Solicitud Enviada",producto_encontrado:"Producto Encontrado",pendiente_pago:"Pendiente de Pago",producto_viajando:"Producto Viajando",llegada_chile:"Llegada a Chile",despachando:"Despachando",entregado:"Entregado",cancelado:"Cancelado"})[r]||r,K=()=>{const r=new Date;let o,a;switch(y.value){case"mes_actual":o=new Date(r.getFullYear(),r.getMonth(),1),a=new Date(r.getFullYear(),r.getMonth()+1,0,23,59,59);break;case"mes_anterior":o=new Date(r.getFullYear(),r.getMonth()-1,1),a=new Date(r.getFullYear(),r.getMonth(),0,23,59,59);break;case"trimestre_actual":const f=Math.floor(r.getMonth()/3);o=new Date(r.getFullYear(),f*3,1),a=new Date(r.getFullYear(),(f+1)*3,0,23,59,59);break;case"año_actual":o=new Date(r.getFullYear(),0,1),a=new Date(r.getFullYear(),11,31,23,59,59);break;case"personalizado":o=k.value?new Date(k.value):null,a=P.value?new Date(P.value+"T23:59:59"):null;break;default:o=new Date(r.getFullYear(),r.getMonth(),1),a=new Date(r.getFullYear(),r.getMonth()+1,0,23,59,59)}return{inicio:o,fin:a}},_=async()=>{try{Y.value=!0;const{$firestore:r}=pt(),{collection:o,getDocs:a,query:f,where:$e}=await it(async()=>{const{collection:s,getDocs:e,query:n,where:g}=await import("#entry").then(x=>x.aC);return{collection:s,getDocs:e,query:n,where:g}},[],import.meta.url),{inicio:h,fin:w}=K();let $;h&&w?$=await a(o(r,"pedidos")):$=await a(o(r,"pedidos"));const d=[],B=[],Z=new Date;let T,V;if(h&&w){const s=w-h;V=new Date(h.getTime()-1),T=new Date(V.getTime()-s)}$.forEach(s=>{const e=s.data(),n=Q(e.createdAt),g=e.estado||e.status||"",x=typeof e.price=="number"&&!isNaN(e.price)&&e.price>0?e.price:0;h&&w&&n?n>=h&&n<=w?d.push({id:s.id,...e,createdAt:n,price:x,estado:g}):T&&V&&n>=T&&n<=V&&B.push({id:s.id,...e,createdAt:n,price:x,estado:g}):d.push({id:s.id,...e,createdAt:n,price:x,estado:g})});const m=d.reduce((s,e)=>s+(e.price||0),0),z=B.reduce((s,e)=>s+(e.price||0),0),tt=z>0?Math.round((m-z)/z*100):m>0?100:0,et=d.filter(s=>s.estado==="entregado").length,ot=d.length>0?m/d.length:0,C=new Map;d.forEach(s=>{const e=s.metodoVenta||s.origin||"Web";C.has(e)||C.set(e,{metodo:e,total:0,pedidos:0});const n=C.get(e);n.total+=s.price||0,n.pedidos++});const st=Array.from(C.values()).map(s=>({...s,porcentaje:m>0?Math.round(s.total/m*100):0})).sort((s,e)=>e.total-s.total),M=new Map;d.forEach(s=>{const e=s.vehicle?.marca||"Sin marca";M.has(e)||M.set(e,{marca:e,total:0,pedidos:0});const n=M.get(e);n.total+=s.price||0,n.pedidos++});const at=Array.from(M.values()).sort((s,e)=>e.total-s.total).slice(0,5),A=new Map;d.forEach(s=>{const e=s.descripcion||"Sin nombre",n=s.vehicle?.marca||"Sin marca",g=`${e}|${n}`;A.has(g)||A.set(g,{nombre:e,marca:n,cantidad:0,total:0});const x=A.get(g);x.cantidad++,x.total+=s.price||0});const H=Array.from(A.values()).sort((s,e)=>e.cantidad-s.cantidad).slice(0,10),j=new Map;d.forEach(s=>{const e=(s.descripcion||"").toLowerCase();let n="General";e.includes("freno")||e.includes("disco")||e.includes("pastilla")?n="Frenos":e.includes("motor")||e.includes("aceite")||e.includes("filtro")?n="Motor":e.includes("suspensión")||e.includes("amortiguador")?n="Suspensión":(e.includes("eléctrico")||e.includes("batería")||e.includes("alternador"))&&(n="Eléctrico"),j.has(n)||j.set(n,{categoria:n,total:0,pedidos:0});const g=j.get(n);g.total+=s.price||0,g.pedidos++});const rt=Array.from(j.values()).map(s=>({...s,porcentaje:m>0?Math.round(s.total/m*100):0})).sort((s,e)=>e.total-s.total),E=new Map,L=[];for(let s=6;s>=0;s--){const e=new Date(Z);e.setDate(e.getDate()-s),e.setHours(0,0,0,0),L.push(e),E.set(e.toDateString(),{fecha:e.toDateString(),total:0})}d.forEach(s=>{if(s.createdAt){const e=new Date(s.createdAt);e.setHours(0,0,0,0);const n=e.toDateString();if(E.has(n)){const g=E.get(n);g.total+=s.price||0}}});const N=L.map(s=>{const e=s.toDateString();return E.get(e)||{fecha:e,total:0}}),nt=Math.max(...N.map(s=>s.total),1),S=new Map;d.forEach(s=>{const e=s.estado||"sin_estado";S.has(e)||S.set(e,{estado:e,cantidad:0,total:0});const n=S.get(e);n.cantidad++,n.total+=s.price||0});const lt=Array.from(S.values()).map(s=>({...s,porcentaje:d.length>0?Math.round(s.cantidad/d.length*100):0})).sort((s,e)=>e.total-s.total);i.value={totalVentas:m,crecimientoVentas:tt,totalPedidos:d.length,pedidosCompletados:et,ticketPromedio:ot,totalProductos:H.reduce((s,e)=>s+e.cantidad,0),marcasUnicas:M.size,ventasPorMetodo:st,topMarcas:at,productosMasVen
1didos:H,ventasPorCategoria:rt,tendenciaDiaria:N,maxVentaDiaria:nt,ventasPorEstado:lt},console.log("📊 Reportes cargados:",i.value)}catch(r){console.error("Error cargando reportes:",r)}finally{Y.value=!1}},Q=r=>r?r.toDate?r.toDate():r instanceof Date?r:typeof r=="string"?new Date(r):r.seconds?new Date(r.seconds*1e3):null:null,X=()=>{alert("Función de exportación a Excel próximamente")};return ct(()=>{_()}),(r,o)=>(u(),c("div",null,[o[25]||(o[25]=t("div",{class:"mb-8"},[t("div",{class:"bg-gradient-to-r from-red-600 to-red-700 rounded-2xl p-8 text-white"},[t("h1",{class:"text-3xl font-bold"},"Reportes y Análisis"),t("p",{class:"text-red-100 mt-2 text-lg"},"Análisis completo de ventas, rendimiento y tendencias del negocio")])],-1)),t("div",mt,[t("div",xt,[t("div",ft,[o[4]||(o[4]=t("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Período",-1)),F(t("select",{"onUpdate:modelValue":o[0]||(o[0]=a=>y.value=a),onChange:_,class:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"},[...o[3]||(o[3]=[gt('<option value="mes_actual">Mes Actual</option><option value="mes_anterior">Mes Anterior</option><option value="trimestre_actual">Trimestre Actual</option><option value="año_actual">Año Actual</option><option value="personalizado">Personalizado</option>',5)])],544),[[ut,y.value]])]),y.value==="personalizado"?(u(),c("div",ht,[o[5]||(o[5]=t("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Desde",-1)),F(t("input",{"onUpdate:modelValue":o[1]||(o[1]=a=>k.value=a),onChange:_,type:"date",class:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"},null,544),[[U,k.value]])])):R("",!0),y.value==="personalizado"?(u(),c("div",bt,[o[6]||(o[6]=t("label",{class:"block text-sm font-medium text-gray-700 mb-2"},"Hasta",-1)),F(t("input",{"onUpdate:modelValue":o[2]||(o[2]=a=>P.value=a),onChange:_,type:"date",class:"w-full px-4 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-red-500 focus:border-transparent"},null,544),[[U,P.value]])])):R("",!0),t("div",{class:"flex items-end gap-2"},[t("button",{onClick:X,class:"px-4 py-2 bg-gray-600 text-white rounded-lg hover:bg-gray-700 transition-colors font-medium"}," Exportar Excel "),t("button",{onClick:_,class:"px-4 py-2 bg-red-600 text-white rounded-lg hover:bg-red-700 transition-colors font-medium"}," Actualizar ")])])]),t("div",vt,[t("div",yt,[t("div",_t,[t("div",null,[o[7]||(o[7]=t("p",{class:"text-sm font-medium text-gray-600"},"Total Ventas",-1)),t("p",wt,"$"+l(p(i.value.totalVentas)),1),t("p",Mt,"+"+l(i.value.crecimientoVentas)+"% vs período anterior",1)]),o[8]||(o[8]=t("div",{class:"p-3 bg-gradient-to-br from-green-500 to-green-600 rounded-xl"},[t("svg",{class:"w-6 h-6 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1"})])],-1))])]),t("div",Dt,[t("div",kt,[t("div",null,[o[9]||(o[9]=t("p",{class:"text-sm font-medium text-gray-600"},"Total Pedidos",-1)),t("p",Pt,l(i.value.totalPedidos),1),t("p",Vt,l(i.value.pedidosCompletados)+" completados",1)]),o[10]||(o[10]=t("div",{class:"p-3 bg-gradient-to-br from-blue-500 to-blue-600 rounded-xl"},[t("svg",{class:"w-6 h-6 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 5H7a2 2 0 00-2 2v10a2 2 0 002 2h8a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2"})])],-1))])]),t("div",Ct,[t("div",At,[t("div",null,[o[11]||(o[11]=t("p",{class:"text-sm font-medium text-gray-600"},"Ticket Promedio",-1)),t("p",jt,"$"+l(p(i.value.ticketPromedio)),1),o[12]||(o[12]=t("p",{class:"text-xs text-purple-600 mt-1"},"Por pedido",-1))]),o[13]||(o[13]=t("div",{class:"p-3 bg-gradient-to-br from-purple-500 to-purple-600 rounded-xl"}
1,[t("svg",{class:"w-6 h-6 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z"})])],-1))])]),t("div",Et,[t("div",St,[t("div",null,[o[14]||(o[14]=t("p",{class:"text-sm font-medium text-gray-600"},"Productos Vendidos",-1)),t("p",$t,l(i.value.totalProductos),1),t("p",Tt,l(i.value.marcasUnicas)+" marcas diferentes",1)]),o[15]||(o[15]=t("div",{class:"p-3 bg-gradient-to-br from-orange-500 to-orange-600 rounded-xl"},[t("svg",{class:"w-6 h-6 text-white",fill:"none",stroke:"currentColor",viewBox:"0 0 24 24"},[t("path",{"stroke-linecap":"round","stroke-linejoin":"round","stroke-width":"2",d:"M20 7l-8-4-8 4m16 0l-8 4m8-4v10l-8 4m0-10L4 7m8 4v10M4 7v10l8 4"})])],-1))])])]),t("div",zt,[t("div",Ft,[o[17]||(o[17]=t("h2",{class:"text-xl font-semibold text-gray-900 mb-4"},"Ventas por Método",-1)),t("div",Yt,[(u(!0),c(b,null,v(i.value.ventasPorMetodo,a=>(u(),c("div",{key:a.metodo,class:"flex items-center justify-between"},[t("div",Bt,[t("div",{class:q(["w-12 h-12 rounded-lg flex items-center justify-center",W(a.metodo)])},[t("span",Ht,l(a.metodo.charAt(0)),1)],2),t("div",Lt,[t("p",Nt,l(a.metodo),1),t("p",Rt,l(a.pedidos)+" pedidos",1)])]),t("div",Ut,[t("p",qt,"$"+l(p(a.total)),1),t("p",It,l(a.porcentaje)+"%",1)])]))),128)),t("div",Ot,[t("div",Wt,[o[16]||(o[16]=t("span",{class:"text-sm font-medium text-gray-700"},"Total",-1)),t("span",Gt,"$"+l(p(i.value.totalVentas)),1)])])])]),t("div",Jt,[o[18]||(o[18]=t("h2",{class:"text-xl font-semibold text-gray-900 mb-4"},"Top 5 Marcas",-1)),t("div",Kt,[(u(!0),c(b,null,v(i.value.topMarcas,(a,f)=>(u(),c("div",{key:a.marca,class:"flex items-center justify-between"},[t("div",Qt,[t("div",Xt,l(f+1),1),t("div",Zt,[t("p",te,l(a.marca||"Sin marca"),1),t("p",ee,l(a.pedidos)+" pedidos",1)])]),t("div",oe,[t("p",se,"$"+l(p(a.total)),1),t("div",ae,[t("div",{class:"bg-blue-600 h-2 rounded-full",style:I({width:`${a.total/i.value.totalVentas*100}%`})},null,4)])])]))),128))])])]),t("div",re,[t("div",ne,[o[20]||(o[20]=t("h2",{class:"text-xl font-semibold text-gray-900 mb-4"},"Productos Más Vendidos",-1)),t("div",le,[t("table",ie,[o[19]||(o[19]=t("thead",null,[t("tr",{class:"border-b border-gray-200"},[t("th",{class:"text-left py-3 px-4 font-medium text-gray-700"},"Producto"),t("th",{class:"text-right py-3 px-4 font-medium text-gray-700"},"Cantidad"),t("th",{class:"text-right py-3 px-4 font-medium text-gray-700"},"Total")])],-1)),t("tbody",null,[(u(!0),c(b,null,v(i.value.productosMasVendidos,a=>(u(),c("tr",{key:a.nombre,class:"border-b border-gray-100 hover:bg-gray-50"},[t("td",de,[t("p",ce,l(a.nombre||"Sin nombre"),1),t("p",ue,l(a.marca||"Sin marca"),1)]),t("td",ge,l(a.cantidad),1),t("td",pe,"$"+l(p(a.total)),1)]))),128))])])])]),t("div",me,[o[21]||(o[21]=t("h2",{class:"text-xl font-semibold text-gray-900 mb-4"},"Ventas por Categoría",-1)),t("div",xe,[(u(!0),c(b,null,v(i.value.ventasPorCategoria,a=>(u(),c("div",{key:a.categoria,class:"flex items-center justify-between p-3 bg-gray-50 rounded-lg"},[t("div",null,[t("p",fe,l(a.categoria||"Sin categoría"),1),t("p",he,l(a.pedidos)+" pedidos",1)]),t("div",be,[t("p",ve,"$"+l(p(a.total)),1),t("p",ye,l(a.porcentaje)+"%",1)])]))),128))])])]),t("div",_e,[o[22]||(o[22]=t("h2",{class:"text-xl font-semibold text-gray-900 mb-6"},"Tendencia de Ventas Diarias",-1)),t("div",we,[(u(!0),c(b,null,v(i.value.tendenciaDiaria,(a,f)=>(u(),c("div",{key:f,class:"flex-1 flex flex-col items-center"},[t("div",{class:"w-full bg-gradient-to-t from-red-500 to-red-600 rounded-t-lg hover:from-red-600 hover:to-red-700 transition-colors cursor-pointer",style:I({height:`${a.total/i.value.maxVentaDiaria*100}%`}),title:`${a.fecha}: $${p(a.total)}`},null,12,Me),t("p",De,l(O(a.fecha)),1)]))),128))])]),t("div",ke,[o[24]||(o[24]=t("h2",{class:"text-xl font-semibold text-gray-900 mb-4"},"Ventas por Estado",-1)),t("div",Pe,[t("table",Ve,[o[23]||(o[23]=t("thead",null,[t("tr",{class:"border-b border-gray-200"},[t("th",{class:"text-left py-3 px-4 font-medium text-gray-700"},"Estado"),t("th",{class:"text-right py-3 px-4 font-medium text-gray-700"},"Cantidad"),t("th",{class:"text-right py-3 px-4 font-medium text-gray-700"},"Total"),t("th",{class:"text-right py-3 px-4 font-medium text-gray-700"},"%")])],-1)),t("tbody",null,[(u(!0),c(b,null,v(i.value.ventasPorEstado,a=>(u(),c("tr",{key:a.estado,class:"border-b border-gray-100 hover:bg-gray-50"},[t("td",Ce,[t("span",{class:q(["inline-flex px-2 py-1 text-xs font-semibold rounded-full",G(a.estado)])},l(J(a.estado)),3)]),t("td",Ae,l(a.cantidad),1),t("td",je,"$"+l(p(a.total)),1),t("td",Ee,l(a.porcentaje)+"%",1)]))),128))])])])])]))}};export{Fe 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.