PageSourceSearch

https://thietbibangviet.com/assets/TestChecklistModule-DsP95T31.js

js thietbibangviet.com collected 2026-10-09 01:12:01 UTC 19,436 bytes, 1 lines download raw bytes

1var re=Object.defineProperty,ae=Object.defineProperties;var oe=Object.getOwnPropertyDescriptors;var q=Object.getOwnPropertySymbols;var de=Object.prototype.hasOwnProperty,ce=Object.prototype.propertyIsEnumerable;var V=(h,d,r)=>d in h?re(h,d,{enumerable:!0,configurable:!0,writable:!0,value:r}):h[d]=r,n=(h,d)=>{for(var r in d||(d={}))de.call(d,r)&&V(h,r,d[r]);if(q)for(var r of q(d))ce.call(d,r)&&V(h,r,d[r]);return h},o=(h,d)=>ae(h,oe(d));import{r as g,j as e}from"./react-vendor-BfWn7mO-.js";import{u as he,e as ge}from"./index-CuUAF55y.js";import"./i18n-vi-C8tq8Mhp.js";import"./vendor-B_rZVQz_.js";const b="/api/test-checklist";function j(){return{"Content-Type":"application/json",Authorization:`Bearer ${localStorage.getItem("tbbv_token")}`}}function be(){var F,H,K;const{user:h}=he(),{currentProject:d}=ge(),r=d==null?void 0:d.id,[G,J]=g.useState([]),[B,k]=g.useState("list"),[z,Q]=g.useState(null),[f,U]=g.useState(null),[m,R]=g.useState({}),[S,w]=g.useState(!1),[M,T]=g.useState(!1),[I,X]=g.useState([]),[v,C]=g.useState({title:"",description:"",module:"purchasing",version:"",template:"purchasing"}),[p,Y]=g.useState(null),P=(F=h==null?void 0:h.roles)==null?void 0:F.some(t=>t.name==="admin"||t.name==="super_admin"),W=g.useCallback(async()=>{if(r){T(!0);try{const t=await fetch(`${b}/sessions/${r}`,{headers:j()});t.ok&&J(await t.json())}catch(t){console.error(t)}T(!1)}},[r]);g.useEffect(()=>{W()},[W]);const O=g.useCallback(async()=>{if(r)try{const t=await fetch(`${b}/users/${r}`,{headers:j()});t.ok&&X(await t.json())}catch(t){console.error(t)}},[r]),E=g.useCallback(async(t,i)=>{T(!0);try{const l=await fetch(`${b}/sessions/${r}/${t}`,{headers:j()});if(!l.ok)throw new Error("Không tải được phiên test");const u=await l.json();U(u),Q(t);const y={};if((u.myResults||[]).forEach(x=>{y[x.item_id]={status:x.status,note:x.note||""}}),R(y),k(i),i==="dashboard")try{const x=await fetch(`${b}/dashboard/${r}/${t}`,{headers:j()});x.ok&&Y(await x.json())}catch(x){console.error(x)}}catch(l){console.error(l),alert("Lỗi: "+l.message)}T(!1)},[r]),Z=async()=>{if(!v.title.trim())return alert("Vui lòng nhập tiêu đề");w(!0);try{const t=await fetch(`${b}/sessions/${r}`,{method:"POST",headers:j(),body:JSON.stringify(v)});if(!t.ok){const i=await t.json();throw new Error(i.error||"Lỗi tạo phiên test")}C({title:"",description:"",module:"purchasing",version:"",template:"purchasing"}),k("list"),W()}catch(t){alert("Lỗi: "+t.message)}w(!1)},ee=async t=>{if(confirm("Xoá phiên test này và tất cả kết quả?"))try{await fetch(`${b}/sessions/${r}/${t}`,{method:"DELETE",headers:j()}),W()}catch(i){console.error(i)}},D=async t=>{const i=I.find(l=>l.id===t);if(i)try{await fetch(`${b}/sessions/${r}/${z}/assign`,{method:"POST",headers:j(),body:JSON.stringify({tester_id:i.id,tester_name:i.name})}),E(z,"dashboard")}catch(l){alert("Lỗi: "+l.message)}},$=async(t,i,l)=>{R(u=>{var y;return o(n({},u),{[t]:{status:i,note:l||((y=u[t])==null?void 0:y.note)||""}})});try{await fetch(`${b}/results/${r}`,{method:"PUT",headers:j(),body:JSON.stringify({session_id:z,item_id:t,status:i,note:l})})}catch(u){console.error(u)}},te=(t,i)=>{R(l=>{var u;return o(n({},l),{[t]:o(n({},l[t]),{status:((u=l[t])==null?void 0:u.status)||"pending",note:i})})})},_=async()=>{w(!0);try{const t=Object.entries(m).filter(([,i])=>i.status&&i.status!=="pending").map(([i,l])=>({item_id:parseInt(i),status:l.status,note:l.note}));t.length>0&&await fetch(`${b}/results-batch/${r}`,{method:"PUT",headers:j(),body:JSON.stringify({session_id:z,results:t})})}catch(t){console.error(t)}w(!1)},se=((H=f==null?void 0:f.items)==null?void 0:H.reduce((t,i)=>(t[i.section]||(t[i.section]=[]),t[i.section].push(i),t),{}))||{},A=((K=f==null?void 0:f.items)==null?void 0:K.length)||0,N=Object.values(m).filter(t=>t.status&&t.status!=="pending").length,ne=Object.values(m).filter(t=>t.status==="pass").length,ie=Object.values(m).filter(t=>t.status==="fail").length,s={page:{maxWidth:960,margin:"0 auto",padding:16,fontFamily:"-apple-system, sans-serif"},header:{display:"flex",alignItems:"center",gap:12,marginBottom:16},title:{fontSize:20,fontWeight:700,color:"#1e293b",flex:1},btn:{padding:"8px 16px",border:"none",borderRadius:8,cursor:"pointer",fontWeight:600,fontSize:13},btnPrimary:{background:"#1B3A57",color:"#fff"},btnGreen:{background:"#16a34a",color:"#fff"},btnRed:{background:"#ef4444",color:"#fff"},btnGray:{background:"#f1f5f9",color:"#475569"},card:{background:"#fff",border:"1px solid #e2e8f0",borderRadius:12,padding:16,marginBottom:12},progress:{height:8,background:"#e2e8f0",borderRadius:4,overflow:"hidden",margin:"8px 0"},progressFill:t=>({height:"100%",width:`${t}%`,background:t>=100?"#16a34a":"#1B3A57",borderRadius:4,transition:"width 0.3s"}),badge:t=>({display:"inline-block",padding:"2px 8px",borderRadius:10,fontSize:11,fontWeight:600,background:t==="green"?"#dcfce7":t==="red"?"#fee2e2":t==="blue"?"#D6E0EA":t==="yellow"?"#fef3c7":"#f1f5f9",color:t==="green"?"#166534":t==="red"?"#991b1b":t==="blue"?"#163049":t==="yellow"?"#92400e":"#475569"}),input:{width:"100%",padding:"8px 12px",border:"1px solid #d1d5db",borderRadius:8,fontSize:13,outline:"none",boxSizing:"border-box"},textarea:{width:"100%",padding:"8px 12px",border:"1px solid #d1d5db",borderRadius:8,fontSize:12,outline:"none",minHeight:60,resize:"vertical",boxSizing:"border-box"},section:{background:"#f8fafc",borderRadius:10,padding:12,marginBottom:12},sectionTitle:{fontSize:14,fontWeight:700,color:"#163049",marginBottom:8,display:"flex",alignItems:"center",gap:8},testItem:{background:"#fff",borderRadius:8,padding:"10px 12px",marginBottom:6,border:"1px solid #e2e8f0"}
1,testItemHeader:{display:"flex",alignItems:"flex-start",gap:8},stepCode:{fontWeight:700,color:"#1B3A57",minWidth:36,fontSize:12},testBtns:{display:"flex",gap:4,marginLeft:"auto",flexShrink:0},testBtn:(t,i)=>({padding:"4px 10px",borderRadius:6,border:"none",cursor:"pointer",fontSize:11,fontWeight:600,background:t?i==="green"?"#16a34a":i==="red"?"#ef4444":"#94a3b8":"#f1f5f9",color:t?"#fff":"#64748b",transition:"all 0.15s"}),statsGrid:{display:"grid",gridTemplateColumns:"repeat(4, 1fr)",gap:8,marginBottom:16},statCard:t=>({padding:12,borderRadius:10,textAlign:"center",background:t}),statNum:{fontSize:24,fontWeight:800},statLabel:{fontSize:10,opacity:.8}};if(B==="list")return e.jsxs("div",{style:s.page,children:[e.jsxs("div",{style:s.header,children:[e.jsx("div",{style:s.title,children:"🧪 Kiểm thử chất lượng (QA Testing)"}),P&&e.jsx("button",{style:n(n({},s.btn),s.btnPrimary),onClick:()=>{k("create"),O()},children:"+ Tạo phiên test"})]}),M&&e.jsx("div",{style:{textAlign:"center",padding:40,color:"#94a3b8"},children:"Đang tải..."}),!M&&G.length===0&&e.jsxs("div",{style:o(n({},s.card),{textAlign:"center",padding:40}),children:[e.jsx("div",{style:{fontSize:40,marginBottom:8},children:"🧪"}),e.jsx("div",{style:{fontWeight:600,marginBottom:4},children:"Chưa có phiên test nào"}),e.jsx("div",{style:{color:"#64748b",fontSize:13},children:"Tạo phiên test mới để kiểm tra tính năng hệ thống"})]}),G.map(t=>e.jsxs("div",{style:s.card,children:[e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,marginBottom:6},children:[e.jsx("div",{style:{fontSize:16,fontWeight:700,flex:1},children:t.title}),e.jsx("span",{style:s.badge(t.status==="active"?"blue":"green"),children:t.status==="active"?"Đang mở":"Hoàn tất"})]}),t.description&&e.jsx("div",{style:{fontSize:12,color:"#64748b",marginBottom:6},children:t.description}),e.jsxs("div",{style:{display:"flex",gap:16,fontSize:12,color:"#64748b",marginBottom:8},children:[e.jsxs("span",{children:["📋 ",t.item_count||t.total_items," bước test"]}),e.jsxs("span",{children:["👥 ",t.tester_count," người test"]}),e.jsxs("span",{children:["📅 ",new Date(t.created_at).toLocaleDateString("vi-VN",{day:"2-digit",month:"2-digit",year:"numeric"})]}),t.module&&e.jsxs("span",{children:["📦 ",t.module]})]}),e.jsxs("div",{style:{display:"flex",gap:6},children:[e.jsx("button",{style:n(n({},s.btn),s.btnPrimary),onClick:()=>E(t.id,"test"),children:"📝 Bắt đầu test"}),P&&e.jsx("button",{style:n(n({},s.btn),s.btnGreen),onClick:()=>{E(t.id,"dashboard"),O()},children:"📊 Xem kết quả"}),P&&e.jsx("button",{style:o(n(n({},s.btn),s.btnRed),{padding:"8px 12px"}),onClick:()=>ee(t.id),children:"🗑"})]})]},t.id))]});if(B==="create")return e.jsxs("div",{style:s.page,children:[e.jsxs("div",{style:s.header,children:[e.jsx("button",{style:n(n({},s.btn),s.btnGray),onClick:()=>k("list"),children:"← Quay lại"}),e.jsx("div",{style:s.title,children:"Tạo phiên test mới"})]}),e.jsxs("div",{style:s.card,children:[e.jsxs("div",{style:{display:"grid",gridTemplateColumns:"1fr 1fr",gap:12,marginBottom:12},children:[e.jsxs("div",{children:[e.jsx("label",{style:{fontSize:12,fontWeight:600,display:"block",marginBottom:4},children:"Tiêu đề *"}),e.jsx("input",{style:s.input,value:v.title,onChange:t=>C(i=>o(n({},i),{title:t.target.value})),placeholder:"VD: Test Purchasing Module v4.0"})]}),e.jsxs("div",{children:[e.jsx("label",{style:{fontSize:12,fontWeight:600,display:"block",marginBottom:4},children:"Module"}),e.jsxs("select",{style:s.input,value:v.module,onChange:t=>C(i=>o(n({},i),{module:t.target.value})),children:[e.jsx("option",{value:"purchasing",children:"Mua hàng (Purchasing)"}),e.jsx("option",{value:"marketing",children:"AI Marketing"}),e.jsx("option",{value:"crm",children:"CRM"}),e.jsx("option",{value:"warehouse",children:"Kho vận"}),e.jsx("option",{value:"hr",children:"Nhân sự"}),e.jsx("option",{value:"other",children:"Khác"})]})]}),e.jsxs("div",{children:[e.jsx("label",{style:{fontSize:12,fontWeight:600,display:"block",marginBottom:4},children:"Phiên bản"}),e.jsx("input",{style:s.input,value:v.version,onChange:t=>C(i=>o(n({},i),{version:t.target.value})),placeholder:"VD: v4.0"})]}),e.jsxs("div",{children:[e.jsx("label",{style:{fontSize:12,fontWeight:600,display:"block",marginBottom:4},children:"Template có sẵn"}),e.jsxs("select",{style:s.input,value:v.template,onChange:t=>C(i=>o(n({},i),{template:t.target.value})),children:[e.jsx("option",{value:"purchasing",children:"Purchasing Module (88 bước)"}),e.jsx("option",{value:"marketing",children:"AI Marketing Module (78 bước)"}),e.jsx("option",{value:"",children:"Trống — tự thêm bước test"})]})]})]}),e.jsxs("div",{style:{marginBottom:12},children:[e.jsx("label",{style:{fontSize:12,fontWeight:600,display:"block",marginBottom:4},children:"Mô tả"}),e.jsx("textarea",{style:s.textarea,value:v.description,onChange:t=>C(i=>o(n({},i),{description:t.target.value})),placeholder:"Mô tả mục tiêu test, phạm vi..."})]}),e.jsx("button",{style:n(n({},s.btn),s.btnPrimary),onClick:Z,disabled:S,children:S?"Đang tạo...":"🧪 Tạo phiên test"})]})]});if(B==="test"&&f){const t=A>0?Math.round(N/A*100):0;return e.jsxs("div",{style:s.page,children:[e.jsxs("div",{style:s.header,children:[e.jsx("button",{style:n(n({},s.btn),s.btnGray),onClick:()=>{k("list"),_()},children:"← Quay lại"}),e.jsx("div",{style:s.title,children:f.session.title}),e.jsx("button",{style:n(n({},s.btn),s.btnGreen),onClick:_,disabled:S,children:S?"⏳ Đang lưu...":"💾 Lưu"})]}),e.jsxs("div",{style:o(n({},s.card),{padding:"12px 16px"}),children:[e.jsxs("div",{style:{display:"flex",justifyContent:"space-between",fontSize:12,marginBottom:4},children:[e.jsxs("span",{children:["Người test: ",e.jsx("strong",{children:h.name})]}),e.jsxs("span",{children:[e.jsxs("strong",{children:[N,"/",A]})," (",t,"%)"]})]}),e.jsx("div",{style:s.progress,children:e.jsx("div",{style:s.progressFill(t)})}),e.jsxs("div",{style:{display:"flex",gap:12,fontSize:11,color:"#64748b",marginTop:4},children:[e.jsxs("span",{children:["✅ Đạt: ",e.jsx("strong",{style:{color:"#16a34a"},children:ne})]}),e.jsxs("span",{children:["❌ Lỗi: ",e.jsx("strong",{style:{color:"#ef4444"},children:ie})]}),e.jsxs("span",{children:["⬜ Chưa test: ",e.jsx("strong",{children:A-N})]})]})]}),Object.entries(se).map(([i,l])=>{const u=l.filter(c=>{var a;return((a=m[c.id])==null?void 0:a.status)==="pass"}).length,y=l.filter(c=>{var a;return((a=m[c.id])==null?void 0:a.status)==="fail"}).length,x=u+y+l.filter(c=>{var a;return((a=m[c.id])==null?void 0:a.status)==="skip"}).length;return e.jsxs("div",{style:s.section,children:[e.jsxs("div",{style:s.sectionTitle,children:[e.jsx("span",{children:i}),e.jsxs("span",{style:s.badge(x===l.length?y>0?"yellow":"green":"blue"),children:[x,"/",l.length]}),y>0&&e.jsxs("span",{style:s.badge("red"),children:[y," lỗi"]})]}),l.map(c=>{const a=m[c.id]||{status:"pending",note:""},L=a.status==="fail";return e.jsxs("div",{style:o(n({},s.testItem),{borderLeft:`3px solid ${a.status==="pass"?"#16a34a":a.status==="fail"?"#ef4444":a.status==="skip"?"#94a3b8":"#e2e8f0"}`}),children:[e.jsxs("div",{style:s.testItemHeader,children:[e.jsx("span",{style:s.stepCode,children:c.step_code}),e.jsxs("div",{style:{flex:1},children:[e.jsx("div",{style:{fontSize:13,fontWeight:500},children:c.description}),e.jsx("div",{style:{fontSize:11,color:"#64748b",marginTop:2},children:c.expected_result})]}),e.jsxs("div",{style:s.testBtns,children:[e.jsx("button",{style:s.testBtn(a.status==="pass","green"),onClick:()=>$(c.id,a.status==="pass"?"pending":"pass"),children:"✅ Đạt"}),e.jsx("button",{style:s.testBtn(a.status==="fail","red"),onClick:()=>$(c.id,a.status==="fail"?"pending":"fail"),children:"❌ Lỗi"}),e.jsx("button",{style:s.testBtn(a.status==="skip",""),onClick:()=>$(c.id,a.status==="skip"?"pending":"skip"),children:"⏭"})]})]}),(L||a.note)&&e.jsx("div",{style:{marginTop:6,marginLeft:44},children:e.jsx("input",{style:o(n({},s.input),{fontSize:12,borderColor:L?"#fca5a5":"#d1d5db",background:L?"#fef2f2":"#fff"}),placeholder:L?"Mô tả lỗi gặp phải...":"Ghi chú...",value:a.note,onChange:le=>te(c.id,le.target.value),onBlur:()=>{a.status!=="pending"&&$(c.id,a.status,a.note)}})})]},c.id)})]},i)}),e.jsxs("div",{style:{position:"sticky",bottom:0,background:"#fff",borderTop:"1px solid #e2e8f0",padding:12,display:"flex",gap:8,justifyContent:"center",borderRadius:"12px 12px 0 0",boxShadow:"0 -2px 8px rgba(0,0,0,0.05)"},children:[e.jsx("button",{style:o(n(n({},s.btn),s.btnGreen),{padding:"10px 24px"}),onClick:_,disabled:S,children:S?"⏳ Đang lưu...":"💾 Lưu tiến trình"}),t>=100&&e.jsx("button",{style:o(n(n({},s.btn),s.btnPrimary),{padding:"10px 24px"}),onClick:()=>{_(),alert("Đã hoàn thành test! Kết quả đã được gửi.")},children:"✅ Hoàn thành & Gửi"})]})]})}return B==="dashboard"&&f?e.jsxs("div",{style:s.page,children:[e.jsxs("div",{style:s.header,children:[e.jsx("button",{style:n(n({},s.btn),s.btnGray),onClick:()=>k("list"),children:"← Quay lại"}),e.jsxs("div",{style:s.title,children:["📊 ",f.session.title," — Kết quả"]})]}),p?e.jsxs(e.Fragment,{children:[e.jsxs("div",{style:s.statsGrid,children:[e.jsxs("div",{style:s.statCard("#D6E0EA"),children:[e.jsx("div",{style:o(n({},s.statNum),{color:"#163049"}),children:p.totalItems}),e.jsx("div",{style:s.statLabel,children:"Tổng bước test"})]}),e.jsxs("div",{style:s.statCard("#dcfce7"),children:[e.jsx("div",{style:o(n({},s.statNum),{color:"#166534"}),children:p.testers.length}),e.jsx("div",{style:s.statLabel,children:"Người test"})]}),e.jsxs("div",{style:s.statCard("#fef3c7"),children:[e.jsx("div",{style:o(n({},s.statNum),{color:"#92400e"}),children:p.testers.filter(t=>t.status==="completed").length}),e.jsx("div",{style:s.statLabel,children:"Hoàn thành"})]}),e.jsxs("div",{style:s.statCard("#fee2e2"),children:[e.jsx("div",{style:o(n({},s.statNum),{color:"#991b1b"}),children:p.bugs.length}),e.jsx("div",{style:s.statLabel,children:"Bugs phát hiện"})]})]}),e.jsxs("div",{style:s.card,children:[e.jsx("div",{style:{fontWeight:700,marginBottom:8},children:"👥 Tiến trình người test"}),p.testers.length===0?e.jsxs("div",{style:{fontSize:13,color:"#94a3b8",padding:12},children:["Chưa gán người test.",e.jsxs("div",{style:{display:"flex",gap:8,marginTop:8,alignItems:"center"},children:[e.jsxs("select",{id:"assign-user",style:o(n({},s.input),{width:200}),children:[e.jsx("option",{value:"",children:"— Chọn nhân viên —"}),I.map(t=>e.jsxs("option",{value:t.id,children:[t.name," (",t.email,")"]},t.id))]}),e.jsx("button",{style:n(n({},s.btn),s.btnPrimary),onClick:()=>{const t=document.getElementById("assign-user");t.value&&D(parseInt(t.value))},children:"+ Gán test"})]})]}):e.jsxs(e.Fragment,{children:[p.testers.map(t=>e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:12,padding:"8px 0",borderBottom:"1px solid #f1f5f9"},children:[e.jsx("div",{style:{fontWeight:600,minWidth:120},children:t.tester_name}),e.jsx("div",{style:{flex:1},children:e.jsx("div",{style:s.progress,children:e.jsx("div",{style:s.progressFill(t.progress)})})}),e.jsxs("div",{style:{fontSize:12,minWidth:60,textAlign:"right"},children:[t.progress,"%"]}),e.jsx("span",{style:s.badge(t.status==="completed"?"green":t.status==="in_progress"?"blue":"yellow"),children:t.status==="completed"?"Xong":t.status==="in_progress"?"Đang test":"Chờ"}),e.jsxs("div",{style:{fontSize:11,color:"#64748b"},children:["✅",t.pass," ❌",t.fail," ⏭",t.skip]})]},t.tester_id)),e.jsxs("div",{style:{display:"flex",gap:8,marginTop:8,alignItems:"center"},children:[e.jsxs("select",{id:"assign-user",style:o(n({},s.input),{width:200}),children:[e.jsx("option",{value:"",children:"— Thêm người test —"}),I.filter(t=>!p.testers.some(i=>i.tester_id===t.id)).map(t=>e.jsx("option",{value:t.id,children:t.name},t.id))]}),e.jsx("button",{style:o(n(n({},s.btn),s.btnPrimary),{padding:"6px 12px"}),onClick:()=>{const t=document.getElementById("assign-user");t.value&&D(parseInt(t.value))},children:"+ Gán"})]})]})]}),e.jsxs("div",{style:s.card,children:[e.jsx("div",{style:{fontWeight:700,marginBottom:8},children:"📋 Kết quả theo phần"}),p.sections.map(t=>e.jsxs("div",{style:{display:"flex",alignItems:"center",gap:8,padding:"6px 0",borderBottom:"1px solid #f1f5f9",fontSize:12},children:[e.jsx("div",{style:{flex:1,fontWeight:500},children:t.section}),e.jsxs("span",{style:{color:"#16a34a"},children:["✅ ",t.pass]}),e.jsxs("span",{style:{color:"#ef4444"},children:["❌ ",t.fail]}),e.jsxs("span",{style:{color:"#64748b"},children:["/ ",t.total]})]},t.section))]}),p.bugs.length>0&&e.jsxs("div",{style:o(n({},s.card),{borderColor:"#fca5a5"}),children:[e.jsxs("div",{style:{fontWeight:700,color:"#dc2626",marginBottom:8},children:["🐛 Bugs phát hiện (",p.bugs.length,")"]}),p.bugs.map((t,i)=>e.jsxs("div",{style:{background:"#fef2f2",borderRadius:8,padding:10,marginBottom:6,fontSize:12},children:[e.jsxs("div",{style:{display:"flex",gap:8,alignItems:"center",marginBottom:4},children:[e.jsx("span",{style:{fontWeight:700,color:"#1B3A57"},children:t.step_code}),e.jsx("span",{style:{fontWeight:600},children:t.item_description}),e.jsxs("span",{style:{marginLeft:"auto",color:"#64748b",fontSize:11},children:["— ",t.tester_name]})]}),t.note&&e.jsxs("div",{style:{color:"#991b1b",fontStyle:"italic"},children:["💬 ",t.note]}),e.jsx("div",{style:{color:"#94a3b8",fontSize:10,marginTop:2},children:t.section})]},i))]})]}):e.jsx("div",{style:{textAlign:"center",padding:40,color:"#94a3b8"},children:"Đang tải..."})]}):e.jsx("div",{style:{textAlign:"center",padding:40},children:"Đang tải..."})}export{be 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.