PageSourceSearch

https://wealthy-technology-dev.io/assets/index-991f1a7e.js

js wealthy-technology-dev.io collected 2026-09-25 18:37:37 UTC 43,004 bytes, 1 lines download raw bytes

1import{r as f,j as e,P as ae,b as N,_ as y,a,B as b,e as z,X as et,F as ve}from"./index-0d16e32e.js";import{R as M,C as v}from"./Col-024c8063.js";import{C as le}from"./Card-4e15b445.js";import{C as ye}from"./CardBody-25e4bd09.js";import{P as Te}from"./Progress-0c01497c.js";import{M as ie,a as re,b as se}from"./ModalBody-41ff2047.js";import{M as ne}from"./ModalFooter-7a62815e.js";import{T as tt}from"./Table-205c0084.js";import{F as W}from"./FormGroup-3007695b.js";import{I as x}from"./Input-d4c0632d.js";import{L as F}from"./Label-14511742.js";import{P as at,a as oe,b as ce}from"./PaginationLink-5b58acde.js";import{A as de}from"./Alert-a148ac90.js";import{S as be}from"./Spinner-f42d74b9.js";import{R as Fe}from"./refresh-cw-8d6956ce.js";import{P as lt}from"./plus-347a210b.js";import{S as it}from"./search-d6e3c11c.js";import{F as rt}from"./filter-20cc7416.js";import{E as $e}from"./eye-7d7f2b36.js";import{D as we}from"./download-dccefca2.js";import{T as Ue}from"./trash-2-bb8e4e65.js";import{C as st}from"./chevron-left-7ece1234.js";import{C as nt}from"./chevron-right-351583e7.js";import{U as ot}from"./upload-4d2b38e1.js";import{A as Le}from"./alert-triangle-1fdbff1e.js";import{F as ke}from"./file-text-f21023b1.js";import"./Fade-65d537a0.js";typeof globalThis<"u"&&typeof globalThis.global>"u"&&(globalThis.global=globalThis);function ct(u,l){if(u==null)return{};var r=dt(u,l),d,n;if(Object.getOwnPropertySymbols){var m=Object.getOwnPropertySymbols(u);for(n=0;n<m.length;n++)d=m[n],!(l.indexOf(d)>=0)&&Object.prototype.propertyIsEnumerable.call(u,d)&&(r[d]=u[d])}return r}function dt(u,l){if(u==null)return{};var r={},d=Object.keys(u),n,m;for(m=0;m<d.length;m++)n=d[m],!(l.indexOf(n)>=0)&&(r[n]=u[n]);return r}var Ne=f.forwardRef(function(u,l){var r=u.color,d=r===void 0?"currentColor":r,n=u.size,m=n===void 0?24:n,h=ct(u,["color","size"]);return e("svg",{ref:l,xmlns:"http://www.w3.org/2000/svg",width:m,height:m,viewBox:"0 0 24 24",fill:"none",stroke:d,strokeWidth:"2",strokeLinecap:"round",strokeLinejoin:"round",...h,children:e("path",{d:"M12 22s8-4 8-10V5l-8-3-8 3v7c0 6 8 10 8 10z"})})});Ne.propTypes={color:ae.string,size:ae.oneOfType([ae.string,ae.number])};Ne.displayName="Shield";const ut=Ne,C="/apiv1/packeval";class mt{async getDeviceTypes(){return(await N.get(`${C}/device-types/`)).data}async getDeviceType(l){return(await N.get(`${C}/device-types/${l}/`)).data}async updateDeviceType(l,r){return(await N.patch(`${C}/device-types/${l}/`,r)).data}async getEvaluations(l={}){const r=Object.entries(l).reduce((n,[m,h])=>(h!==""&&h!==null&&h!==void 0&&(n[m]=h),n),{});return(await N.get(`${C}/evaluations/`,{params:r})).data}async getEvaluationDetails(l){return(await N.get(`${C}/evaluations/${l}/`)).data}async createEvaluation(l){return(await N.post(`${C}/evaluations/`,l,{headers:{"Content-Type":"multipart/form-data"}})).data}async updateEvaluation(l,r){return(await N.patch(`${C}/evaluations/${l}/`,r)).data}async deleteEvaluation(l){return(await N.delete(`${C}/evaluations/${l}/`)).data}async startSyncEvaluation(l){return(await N.post(`${C}/evaluations/${l}/start_sync_evaluation/`)).data}async getEvaluationStatus(l){return(await N.get(`${C}/evaluations/${l}/status/`)).data}async downloadReport(l){const r=await N.get(`${C}/evaluations/${l}/download_report/`,{responseType:"blob"}),d=window.URL.createObjectURL(new Blob([r.data])),n=document.createElement("a");n.href=d;const m=r.headers["content-disposition"];let h=`evaluation-${l}-report.pdf`;if(m){const D=m.match(/filename="?(.+)"?/);D&&D[1]&&(h=D[1])}return n.setAttribute("download",h),document.body.appendChild(n),n.click(),n.remove(),window.URL.revokeObjectURL(d),r.data}async getProgressUpdates(l){return(await N.get(`${C}/evaluations/${l}/progress_updates/`)).data}async getAllProgressUpdates(l={}){return(await N.get(`${C}/progress/`,{params:l})).data}async getProgressUpdate(l){return(await N.get(`${C}/progress/${l}/`)).data}async healthCheck(){return(await N.get(`${C}/evaluations/health_check/`)).data}async deleteMultipleEvaluations(l){const r=l.map(d=>this.deleteEvaluation(d).catch(n=>({error:n,id:d})));return Promise.all(r)}async downloadMultipleReports(l){const r=l.map(d=>this.downloadReport(d).catch(n=>({error:n,id:d})));return Promise.all(r)}async getStatistics(){try{const r=(await this.getEvaluations({page_size:1e3})).results||[],d={};return r.forEach(n=>
1{n.device_attributes&&Object.entries(n.device_attributes).forEach(([m,h])=>{h===!0&&(d[m]||(d[m]=0),d[m]++)})}),{total:r.length,pending:r.filter(n=>n.status==="pending").length,processing:r.filter(n=>n.status==="processing").length,completed:r.filter(n=>n.status==="completed").length,error:r.filter(n=>n.status==="error").length,averageScore:r.filter(n=>n.overall_score!==null).reduce((n,m,h,D)=>n+m.overall_score/D.length,0),deviceAttributesStats:d,evaluationsWithAttributes:r.filter(n=>n.device_attributes&&Object.values(n.device_attributes).some(m=>m===!0)).length}}catch(l){return console.error("Error getting statistics:",l),null}}async getEvaluationDeviceAttributes(l){try{return(await this.getEvaluationDetails(l)).device_attributes||{}}catch(r){return console.error("Error getting evaluation device attributes:",r),{}}}_getDefaultDeviceAttributes(){return{is_medical_device:!0,is_accessory:!0,serialized_production:!1,lot_controlled_production:!0,has_shelf_life:!0,invasive:!1,active:!1,implantable:!1,active_implantable:!1,electrical_equipment:!1,is_machine:!1,administers_substance:!1,includes_software:!1,software_type:"none",measuring_function:!1,layperson_usable:!1,reusable_surgical_instrument:!1,prescription_only:!0,internet_connected:!1,radio_frequency:!1,includes_ai:!1,single_use:!0,multiple_use_on_one_patient:!1,too_small_for_label:!0,direct_body_contact:!1,indirect_body_contact:!0,transient_contact:!1,contains_latex:!1,contains_human_derivatives:!1,contains_medicinal_substance:!1,contains_human_or_animal_tissues:!1,contains_cmr_or_endocrine_substances:!1,contains_nanomaterials:!1,sterile:!0,aseptic_sterilization:!1,sterilization_ethylene_oxide:!0,sterilization_irradiation:!1,sterilization_steam_or_dry_heat:!1,sterilization_vaporized_h2o2:!1,double_sterile_barrier:!1,single_sterile_barrier_with_protective_packaging:!0,eu_market_intended:!0,eu_manufacturer_outside_eu:!0,imported_to_country:!0,distributed_in_country:!0,modified_packaging_configuration:!1,fragile:!0,light_sensitive:!1,heat_sensitive:!1,moisture_sensitive:!0,temperature_limits_defined:!0,humidity_limits_defined:!0,pressure_limits_defined:!1,biological_risk:!1,requires_operational_caution:!1}}_combineDeviceAttributes(l){if(!l||l.length===0)return this._getDefaultDeviceAttributes();const r={...l[0].attributes};for(let d=1;d<l.length;d++){const n=l[d].attributes;for(const[m,h]of Object.entries(n))m==="software_type"?r[m]==="none"&&h!=="none"&&(r[m]=h):typeof h=="boolean"&&(r[m]=r[m]||h)}return r}}const q=new mt,ft="wealthy-technology-dev.io",We=({attributes:u,compact:l=!1})=>{const[r,d]=f.useState(!1);if(!u)return null;const n=p=>{const _=[];return p.is_medical_device&&_.push({key:"medical",label:"Medical Device",color:"primary"}),p.active&&_.push({key:"active",label:"Active",color:"warning"}),p.invasive&&_.push({key:"invasive",label:"Invasive",color:"danger"}),p.implantable&&_.push({key:"implantable",label:"Implantable",color:"info"}),p.sterile&&_.push({key:"sterile",label:"Sterile",color:"success"}),p.single_use&&_.push({key:"single_use",label:"Single Use",color:"secondary"}),p.includes_software&&_.push({key:"software",label:"Software",color:"dark"}),p.internet_connected&&_.push({key:"connected",label:"Connected",color:"info"}),p.includes_ai&&_.push({key:"ai",label:"AI",color:"warning"}),p.prescription_only&&_.push({key:"rx",label:"Rx Only",color:"danger"}),_},m=p=>{const _=[];return Object.entries(p).forEach(([J,E])=>{if(E===!0){const ue=J.replace(/_/g," ").replace(/\b\w/g,B=>B.toUpperCase());_.push({key:J,label:ue,color:"secondary"})}else J==="software_type"&&E&&E!=="none"&&_.push({key:"software_type",label:`Software: ${E}`,color:"info"})}),_},h=n(u),D=l?h.slice(0,3):h,w=m(u);return a("div",{className:"position-relative",children:[a("div",{className:"d-flex flex-wrap gap-1",onClick:()=>d(!r),style:{cursor:"pointer"},children:[D.map(p=>e(z,{color:p.color,className:"me-1 mb-1",children:p.label},p.key)),l&&e(z,{className:"me-1 mb-1",children:"+"})]}),r&&a("div",{className:"position-absolute bg-white border rounded shadow-lg p-3",style:{top:"100%",left:"0",zIndex:1050,minWidth:"320px",maxWidth:"450px",marginTop:"8px"},children:[a("div",{className:"d-flex justify-content-between align-items-center mb-2",children:[e("small",{className:"fw-bold text-muted",children:"All Active Device Attributes"}),a(z,{color:"info",className:"ms-2",children:[w.length," active"]})]}
1),e("div",{className:"d-flex flex-wrap gap-1",style:{maxHeight:"200px",overflowY:"auto"},children:w.map((p,_)=>e(z,{color:p.color,className:"me-1 mb-1 small",children:p.label},`${p.key}-${_}`))}),w.length===0&&e("small",{className:"text-muted",children:"No active attributes"})]})]})},ht=u=>window.location.hostname!=="localhost"?`ws://localhost:8088/ws/evaluate/${u}`:`ws://${ft}/ws/evaluate/${u}`,Wt=()=>{const[u,l]=f.useState([]),[r,d]=f.useState(!0),[n,m]=f.useState(null),[h,D]=f.useState(""),[w,p]=f.useState(1),[_,J]=f.useState(10),[E,ue]=f.useState(0),[B,qe]=f.useState(0),[$,xe]=f.useState(""),[H,Ce]=f.useState(""),[me,Se]=f.useState("-created_at"),[Be,G]=f.useState(!1),[He,V]=f.useState(!1),[Ve,X]=f.useState(!1),[Ye,Q]=f.useState(!1),[s,ze]=f.useState(null),[O,De]=f.useState(null),[U,fe]=f.useState("document"),[g,L]=f.useState({uploaded_file:null,device_name:"",manufacturer:"",model_number:"",regulatory_class:"",intended_use:""}),[Ee,Ae]=f.useState(!1),[A,Pe]=f.useState({is_medical_device:!1,is_accessory:!1,serialized_production:!1,lot_controlled_production:!1,has_shelf_life:!1,invasive:!1,active:!1,implantable:!1,active_implantable:!1,electrical_equipment:!1,is_machine:!1,administers_substance:!1,includes_software:!1,software_type:"none",measuring_function:!1,layperson_usable:!1,reusable_surgical_instrument:!1,prescription_only:!1,internet_connected:!1,radio_frequency:!1,includes_ai:!1,single_use:!1,multiple_use_on_one_patient:!1,too_small_for_label:!1,direct_body_contact:!1,indirect_body_contact:!1,transient_contact:!1,contains_latex:!1,contains_human_derivatives:!1,contains_medicinal_substance:!1,contains_human_or_animal_tissues:!1,contains_cmr_or_endocrine_substances:!1,contains_nanomaterials:!1,sterile:!1,aseptic_sterilization:!1,sterilization_ethylene_oxide:!1,sterilization_irradiation:!1,sterilization_steam_or_dry_heat:!1,sterilization_vaporized_h2o2:!1,double_sterile_barrier:!1,single_sterile_barrier_with_protective_packaging:!1,eu_market_intended:!1,eu_manufacturer_outside_eu:!1,imported_to_country:!1,distributed_in_country:!1,modified_packaging_configuration:!1,fragile:!1,light_sensitive:!1,heat_sensitive:!1,moisture_sensitive:!1,temperature_limits_defined:!1,humidity_limits_defined:!1,pressure_limits_defined:!1,biological_risk:!1,requires_operational_caution:!1}),[he,Me]=f.useState({}),K=f.useRef({}),Y=f.useCallback((t,c=0)=>{if(!t.session_id||he[t.id])return;const o=ht(t.session_id),i=new WebSocket(o);i.onopen=()=>{console.log("WebSocket connected for evaluation:",t.id)},i.onmessage=async k=>{let S=null;try{S=JSON.parse(k.data)}catch{console.warn("Invalid WS message:",k.data);return}l(I=>I.map(P=>P.id===t.id?{...P,status:S.status??P.status,progress:typeof S.progress=="number"?S.progress:P.progress,current_stage:S.current_stage??P.current_stage,completed_at:S.completed_at??P.completed_at,error_message:S.error_message??P.error_message}:P));const R=S.status&&S.status.toLowerCase()==="completed"||typeof S.progress=="number"&&S.progress>=100,T=S.status&&S.status.toLowerCase()==="error";if((R||T)&&!K.current[t.id]){K.current[t.id]=!0;try{const I=await q.getEvaluationStatus(t.id);l(P=>P.map(ge=>ge.id===t.id?{...ge,...I}:ge)),R?(y.success("Evaluation completed!"),j()):T&&y.error("Evaluation failed: "+((I==null?void 0:I.error_message)||"Unknown error"))}catch(I){console.error("Finalize status update failed:",I),R?(y.success("Evaluation completed (finalization pending)"),j()):T&&y.error("Evaluation failed (finalization pending)")}finally{try{i.close()}catch{}}}},i.onerror=k=>{console.error("WebSocket error:",k)},i.onclose=()=>{Me(R=>{const T={...R};return delete T[t.id],T});const k=u.find(R=>R.id===t.id);if(k?k.status==="processing"&&!K.current[t.id]:!K.current[t.id]){const R=Math.min(c+1,5),T=Math.min(1e3*Math.pow(2,c),1e4);setTimeout(()=>Y(t,R),T)}},Me(k=>({...k,[t.id]:i}))},[he,u]);f.useEffect(()=>{u.filter(t=>t.status==="processing"&&t.session_id).forEach(t=>Y(t))},[u,Y]);const j=f.useCallback(async()=>{try{d(!0),m(null);const t={page:w,page_size:_,search:h,status:$,device_attributes:H,ordering:me};console.log("Fetching evaluations with params:",t);const c=await q.getEvaluations(t);console.log("Received response:",c);let o=[],i=0;Array.isArray(c)?(o=c,i=c.length,console.log("Using direct array response:",o.length,"items")):c.results?(o=c.results,i=c.count||c.results.length,console.log("Using paginated response:",o.length,"items")):(o=[],i=0,console.warn("Unknown response format:",c)),l(o),ue(i),qe(Math.ceil(i/_)),console.log("State updated - evaluations:",o.length)}catch(t){console.error("Error fetching evaluations:",t),m("Failed to load evaluations. Please try again."),y.error("Failed to load evaluations")}finally{d(!1)}},[w,_,h,$,H,me]),Je=async()=>{var t,c;if(!g.uploaded_file){y.error("Please select a file");return}if(!g.device_name||!g.device_name.trim()){y.error("Please enter a device name");return}try{Ae(!0);const o=new FormData;o.append("uploaded_file",g.uploaded_file),o.append("device_name",g.device_name.trim()),o.append("attrs_json",JSON.stringify(A)),o.append("manufacturer",g.manufacturer),o.append("model_number",g.model_number),o.append("regulatory_class",g.regulatory_class),o.append("intended_use",g.intended_use);const i=await q.createEvaluation(o);y.success("Evaluation created successfully"),G(!1),L({uploaded_file:null,device_name:"",manufacturer:"",model_number:"",regulatory_class:"",intended_use:""}),Pe({is_medical_device:!1,is_accessory:!1,serialized_production:!1,lot_controlled_production:!1,has_shelf_life:!1,invasive:!1,active:!1,implantable:!1,active_implantable:!1,electrical_equipment:!1,is_machine:!1,administers_substance:!1,includes_software:!1,software_type:"none",measuring_function:!1,layperson_usable:!1,reusable_surgical_instrument:!1,prescription_only:!1,internet_connected:!1,radio_frequency:!1,includes_ai:!1,single_use:!1,multiple_use_on_one_patient:!1,too_small_for_label:!1,direct_body_contact:!1,indirect_body_contact:!1,transient_contact:!1,contains_latex:!1,contains_human_derivatives:!1,contains_medicinal_substance:!1,contains_human_or_animal_tissues:!1,contains_cmr_or_endocrine_substances:!1,contains_nanomaterials:!1,sterile:!1,aseptic_sterilization:!1,sterilization_ethylene_oxide:!1,sterilization_irradiation:!1,sterilization_steam_or_dry_heat:!1,sterilization_vaporized_h2o2:!1,double_sterile_barrier:!1,single_sterile_barrier_with_protective_packaging:!1,eu_market_intended:!1,eu_manufacturer_outside_eu:!1,imported_to_country:!1,distributed_in_country:!1,modified_packaging_configuration:!1,fragile:!1,light_sensitive:!1,heat_sensitive:!1,moisture_sensitive:!1,temperature_limits_defined:!1,humidity_limits_defined:!1,pressure_limits_defined:!1,biological_risk:!1,requires_operational_caution:!1}),j(),i.session_id&&(K.current[i.id]=!1,setTimeout(()=>Y(i),1e3))}catch(o){console.error("Error creating evaluation:",o),y.error(((c=(t=o.response)==null?void 0:t.data)==null?void 0:c.message)||"Failed to create evaluation")}finally{Ae(!1)}},Ge=t=>{De(t),X(!0)},Xe=async()=>
1{if(O)try{await q.deleteEvaluation(O.id),y.success("Evaluation deleted successfully"),X(!1),De(null),j()}catch(t){console.error("Error deleting evaluation:",t),y.error("Failed to delete evaluation")}},pe=async t=>{if(!t){y.error("Invalid evaluation");return}try{if(t.report_download_url){const c=document.createElement("a");c.href=t.report_download_url,c.download=t.report_filename||"report.pdf",document.body.appendChild(c),c.click(),document.body.removeChild(c),y.success("Report download started")}else await q.downloadReport(t.id),y.success("Report downloaded successfully")}catch(c){console.error("Error downloading report:",c),y.error("Failed to download report")}},Re=async(t,c="document")=>{if(!t){y.error("Invalid evaluation");return}ze(t),fe(c),Q(!0)},Ie=()=>s?U==="report"?s.report_file||null:s.uploaded_file||null:null,Ke=async t=>{try{const c=await q.getEvaluationDetails(t.id);ze(c),V(!0)}catch(c){console.error("Error fetching details:",c),y.error("Failed to load evaluation details")}},Qe=async t=>{try{const c=await q.getEvaluationStatus(t);l(o=>o.map(i=>i.id===t?{...i,...c}:i)),y.success("Status updated")}catch(c){console.error("Error refreshing status:",c),y.error("Failed to refresh status")}},Oe=t=>{switch(t==null?void 0:t.toLowerCase()){case"completed":return"success";case"processing":return"warning";case"error":return"danger";case"pending":return"info";default:return"secondary"}},Z=t=>t?new Date(t).toLocaleDateString("en-US",{year:"numeric",month:"short",day:"numeric",hour:"2-digit",minute:"2-digit"}):"N/A",Ze=()=>{D(""),xe(""),Ce(""),Se("-created_at"),p(1)},ee=(t,c)=>{Pe(o=>({...o,[t]:c}))},_e=t=>{p(t)},te=t=>t?t.status==="completed"&&(t.report_filename||t.report_preview_url||t.report_download_url):!1,je=t=>t?{classification:{title:"Medical Device Classification",items:[{key:"is_medical_device",label:"Medical Device",value:t.is_medical_device},{key:"is_accessory",label:"Accessory",value:t.is_accessory},{key:"software_type",label:"Software Type",value:t.software_type||"None"}]},deviceType:{title:"Device Type Classifications",items:[{key:"invasive",label:"Invasive",value:t.invasive},{key:"active",label:"Active",value:t.active},{key:"implantable",label:"Implantable",value:t.implantable},{key:"active_implantable",label:"Active Implantable",value:t.active_implantable},{key:"electrical_equipment",label:"Electrical Equipment",value:t.electrical_equipment},{key:"is_machine",label:"Machine",value:t.is_machine}]},usage:{title:"Usage Characteristics",items:[{key:"single_use",label:"Single Use",value:t.single_use},{key:"multiple_use_on_one_patient",label:"Multiple Use (One Patient)",value:t.multiple_use_on_one_patient},{key:"reusable_surgical_instrument",label:"Reusable Surgical Instrument",value:t.reusable_surgical_instrument},{key:"layperson_usable",label:"Layperson Usable",value:t.layperson_usable},{key:"prescription_only",label:"Prescription Only",value:t.prescription_only},{key:"administers_substance",label:"Administers Substance",value:t.administers_substance}]},technology:{title:"Technology Features",items:[{key:"includes_software",label:"Includes Software",value:t.includes_software},{key:"internet_connected",label:"Internet Connected",value:t.internet_connected},{key:"radio_frequency",label:"Radio Frequency",value:t.radio_frequency},{key:"includes_ai",label:"Includes AI",value:t.includes_ai},{key:"measuring_function",label:"Measuring Function",value:t.measuring_function}]},production:{title:"Production & Lifecycle",items:[{key:"serialized_production",label:"Serialized Production",value:t.serialized_production},{key:"lot_controlled_production",label:"Lot Controlled Production",value:t.lot_controlled_production},{key:"has_shelf_life",label:"Has Shelf Life",value:t.has_shelf_life},{key:"too_small_for_label",label:"Too Small for Label",value:t.too_small_for_label}]},sterilization:{title:"Sterilization",items:[{key:"sterile",label:"Sterile",value:t.sterile},{key:"aseptic_sterilization",label:"Aseptic Sterilization",value:t.aseptic_sterilization},{key:"sterilization_ethylene_oxide",label:"Ethylene Oxide",value:t.sterilization_ethylene_oxide},{key:"sterilization_irradiation",label:"Irradiation",value:t.sterilization_irradiation},{key:"sterilization_steam_or_dry_heat",label:"Steam/Dry Heat",value:t.sterilization_steam_or_dry_heat},{key:"sterilization_vaporized_h2o2",label:"Vaporized H2O2",value:t.sterilization_vaporized_h2o2},{key:"double_sterile_barrier",label:"Double Sterile Barrier",value:t.double_sterile_barrier},{key:"single_sterile_barrier_with_protective_packaging",label:"Single Sterile Barrier with Protective Packaging",value:t.single_sterile_barrier_with_protective_packaging}]},contact:{title:"Body Contact",items:[{key:"direct_body_contact",label:"Direct Body Contact",value:t.direct_body_contact},{key:"indirect_body_contact",label:"Indirect Body Contact",value:t.indirect_body_contact},{key:"transient_contact",label:"Transient Contact",value:t.transient_contact}]},materials:{title:"Material Composition",items:[{key:"contains_latex",label:"Contains Latex",value:t.contains_latex},{key:"contains_human_derivatives",label:"Human Derivatives",value:t.contains_human_derivatives},{key:"contains_medicinal_substance",label:"Medicinal Substance",value:t.contains_medicinal_substance},{key:"contains_human_or_animal_tissues",label:"Human/Animal Tissues",value:t.contains_human_or_animal_tissues},{key:"contains_cmr_or_endocrine_substances",label:"CMR/Endocrine Substances",value:t.contains_cmr_or_endocrine_substances},{key:"contains_nanomaterials",label:"Nanomaterials",value:t.contains_nanomaterials}]},storage:{title:"Storage & Handling",items:[{key:"fragile",label:"Fragile",value:t.fragile},{key:"light_sensitive",label:"Light Sensitive",value:t.light_sensitive},{key:"heat_sensitive",label:"Heat Sensitive",value:t.heat_sensitive},{key:"moisture_sensitive",label:"Moisture Sensitive",value:t.moisture_sensitive},{key:"temperature_limits_defined",label:"Temperature Limits Defined",value:t.temperature_limits_defined},{key:"humidity_limits_defined",label:"Humidity Limits Defined",value:t.humidity_limits_defined},{key:"pressure_limits_defined",label:"Pressure Limits Defined",value:t.pressure_limits_defined}]},distribution:{title:"Distribution & Market",items:[{key:"eu_market_intended",label:"EU Market Intended",value:t.eu_market_intended},{key:"eu_manufacturer_outside_eu",label:"EU Manufacturer Outside EU",value:t.eu_manufacturer_outside_eu},{key:"imported_to_country",label:"Imported to Country",value:t.imported_to_country},{key:"distributed_in_country",label:"Distributed in Country",value:t.distributed_in_country},{key:"modified_packaging_configuration",label:"Modified Packaging Configuration",value:t.modified_packaging_configuration}]},safety:{title:"Safety & Risk",items:[{key:"biological_risk",label:"Biological Risk",value:t.biological_risk},{key:"requires_operational_caution",label:"Requires Operational Caution",value:t.requires_operational_caution}
1]}}:{};return f.useEffect(()=>(j(),()=>{Object.values(he).forEach(t=>t.close())}),[]),f.useEffect(()=>{j()},[j]),f.useEffect(()=>{u.filter(t=>t.status==="processing"&&t.session_id).forEach(t=>Y(t))},[u,Y]),r&&u.length===0?e(le,{children:a(ye,{className:"text-center",children:[e(be,{color:"primary"}),e("p",{className:"mt-2",children:"Loading evaluations..."})]})}):n&&u.length===0?e(le,{children:e(ye,{children:a(de,{color:"danger",children:[e("h4",{className:"alert-heading",children:"Error Loading Evaluations"}),e("p",{className:"mb-0",children:n}),e("hr",{}),a(b,{color:"danger",outline:!0,onClick:j,children:[e(Fe,{size:14,className:"me-50"}),"Retry"]})]})})}):a("div",{className:"pack-eval-container",children:[e(le,{className:"shadow-sm mb-4 border-0 overflow-hidden",style:{borderRadius:"12px"},children:a("div",{className:"text-white",style:{background:"linear-gradient(135deg, #184874 0%, #1a5a8f 100%)",position:"relative",overflow:"hidden"},children:[e("div",{style:{position:"absolute",top:"-50px",right:"-50px",width:"200px",height:"200px",background:"rgba(255, 255, 255, 0.05)",borderRadius:"50%"}}),e("div",{style:{position:"absolute",bottom:"-30px",left:"-30px",width:"150px",height:"150px",background:"rgba(255, 255, 255, 0.03)",borderRadius:"50%"}}),a("div",{className:"d-flex align-items-stretch",style:{position:"relative",zIndex:1},children:[e("div",{style:{width:"6px",backgroundColor:"#ff9f43",borderRadius:"12px 0 0 12px"}}),e("div",{className:"flex-grow-1 p-4",children:a("div",{className:"d-flex align-items-start justify-content-between mb-3",children:[a("div",{className:"d-flex align-items-center",children:[e("div",{style:{width:"40px",height:"40px",background:"rgba(255,255,255,0.2)",borderRadius:"8px",display:"flex",alignItems:"center",justifyContent:"center",backdropFilter:"blur(10px)",border:"1px solid rgba(255,255,255,0.3)",marginRight:"12px"},children:e(ut,{size:24})}),a("div",{children:[e("h3",{className:"mb-0 fw-bold text-white",style:{fontSize:"1.75rem",letterSpacing:"-0.02em",lineHeight:"1.2"},children:"Document Evaluations FDA Control Device"}),e("p",{className:"mb-0 text-white",style:{opacity:.95,fontSize:"1rem",lineHeight:"1.6",fontWeight:"400"},children:"FDA compliance evaluation and device documentation management"})]})]}),a("div",{className:"d-flex align-items-center gap-3",children:[a("div",{className:"d-flex gap-3",children:[a("div",{className:"text-center",style:{padding:"0 10px"},children:[e("div",{style:{fontSize:"1.5rem",fontWeight:"bold",lineHeight:1,color:"white"},children:E}),e("div",{style:{fontSize:"0.75rem",opacity:.8,textTransform:"uppercase",letterSpacing:"0.5px"},children:"Total"})]}),a("div",{className:"text-center",style:{padding:"0 10px"},children:[e("div",{style:{fontSize:"1.5rem",fontWeight:"bold",lineHeight:1,color:"white"},children:u.filter(t=>t.status==="completed").length}),e("div",{style:{fontSize:"0.75rem",opacity:.8,textTransform:"uppercase",letterSpacing:"0.5px"},children:"Complete"})]}),a("div",{className:"text-center",style:{padding:"0 10px"},children:[e("div",{style:{fontSize:"1.5rem",fontWeight:"bold",lineHeight:1,color:"white"},children:u.filter(t=>t.status==="processing").length}),e("div",{style:{fontSize:"0.75rem",opacity:.8,textTransform:"uppercase",letterSpacing:"0.5px"},children:"Processing"})]})]}),e("div",{className:"ms-3",children:a(b,{color:"light",size:"sm",onClick:()=>G(!0),style:{background:"rgba(255,255,255,0.95)",color:"#184874",border:"none",fontWeight:"600",padding:"8px 16px",borderRadius:"8px",fontSize:"0.875rem",whiteSpace:"nowrap"},children:[e(lt,{size:16,className:"me-1"}),"Create Evaluation"]})})]})]})})]})]})}),e(M,{className:"h-100",children:e(v,{sm:"12",className:"h-100",children:e(le,{className:" h-100",style:{padding:0,borderRadius:"12px",border:"none",backgroundColor:"#ffffff"},children:a(ye,{className:"d-flex p-0 flex-column",children:[a(M,{className:"justify-content-between align-items-center mb-2 p-2",children:[a(v,{md:"6",children:[e("h5",{className:"mb-0",style:{color:"#184874",fontWeight:"600"},children:"Evaluation Management"}),a("small",{className:"text-muted",children:[E," total evaluation",E!==1?"s":""]})]}),e(v,{md:"6",className:"text-end",children:a(z,{color:"primary",style:{fontSize:"0.75rem",padding:"0.5rem 1rem"},children:[u.filter(t=>t.status==="completed").length," ","Completed"]})})]}),a(M,{className:"mb-2",children:[e(v,{md:"4",children:a("div",{className:"d-flex align-items-center",children:[e(it,{size:14,className:"me-50"}),e(x,{type:"text",placeholder:"Search evaluations...",value:h,onChange:t=>{D(t.target.value),p(1)}})]})}
1),e(v,{md:"2",children:a(x,{type:"select",value:$,onChange:t=>{xe(t.target.value),p(1)},children:[e("option",{value:"",children:"All Statuses"}),e("option",{value:"pending",children:"Pending"}),e("option",{value:"processing",children:"Processing"}),e("option",{value:"completed",children:"Completed"}),e("option",{value:"error",children:"Error"})]})}),e(v,{md:"3",children:a(x,{type:"select",value:H,onChange:t=>{Ce(t.target.value),p(1)},children:[e("option",{value:"",children:"All Attributes"}),e("option",{value:"active",children:"Active Devices"}),e("option",{value:"invasive",children:"Invasive Devices"}),e("option",{value:"implantable",children:"Implantable Devices"}),e("option",{value:"sterile",children:"Sterile Devices"}),e("option",{value:"single_use",children:"Single Use"}),e("option",{value:"includes_software",children:"With Software"}),e("option",{value:"internet_connected",children:"Connected Devices"})]})}),e(v,{md:"2",children:a(x,{type:"select",value:me,onChange:t=>Se(t.target.value),children:[e("option",{value:"-created_at",children:"Newest First"}),e("option",{value:"created_at",children:"Oldest First"}),e("option",{value:"-completed_at",children:"Recently Completed"})]})}),e(v,{md:"2",children:a(b,{color:"secondary",outline:!0,block:!0,onClick:Ze,children:[e(et,{size:14,className:"me-50"}),"Clear"]})})]}),(h||$||H)&&e(M,{className:"mb-2",children:e(v,{children:a("small",{className:"text-muted",children:[e(rt,{size:12,className:"me-50"}),"Active filters applied",h&&a(z,{color:"light",className:"ms-1",children:["Search: ",h]}),$&&a(z,{color:"light",className:"ms-1",children:["Status: ",$]}),H&&a(z,{color:"light",className:"ms-1",children:["Attr: ",H]})]})})}),e("div",{className:"table-responsive flex-grow-1 mb-2",style:{overflow:"auto"},children:a(tt,{hover:!0,children:[e("thead",{children:a("tr",{children:[e("th",{children:"Name"}),e("th",{children:"Device Attributes"}),e("th",{children:"Status"}),e("th",{children:"Progress"}),e("th",{children:"Created"}),e("th",{children:"Actions"})]})}),e("tbody",{children:u.length===0?e("tr",{children:e("td",{colSpan:"6",className:"text-center",style:{backgroundColor:"#ffffff"},children:h||$?"No evaluations found matching your criteria.":"No evaluations found. Create your first evaluation!"})}):u.filter(t=>t&&t.id).map(t=>a("tr",{children:[e("td",{style:{backgroundColor:"#ffffff"},children:a("div",{children:[e("span",{className:"fw-bold",children:t.device_name||t.original_filename||"Unnamed"}),t.manufacturer&&e("div",{className:"text-muted small",children:t.manufacturer})]})}),e("td",{style:{backgroundColor:"#ffffff"},children:e(We,{attributes:t.device_attributes||A,compact:!0})}),a("td",{style:{backgroundColor:"#ffffff"},children:[e(z,{color:Oe(t.status),children:t.status||"Unknown"}),t.current_stage&&e("div",{className:"text-muted small",children:t.current_stage})]}),e("td",{style:{backgroundColor:"#ffffff",minWidth:"120px"},children:t.status==="processing"?a("div",{children:[e(Te,{value:t.progress||0,className:"mb-50"}),a("small",{children:[t.progress||0,"%"]})]}):"-"}),e("td",{style:{backgroundColor:"#ffffff"},children:Z(t.created_at)}),e("td",{style:{backgroundColor:"#ffffff"},children:a("div",{className:"d-flex align-items-center",children:[e(b,{size:"sm",color:"info",outline:!0,className:"me-50",onClick:()=>Ke(t),title:"View Details",children:e($e,{size:14})}),t.status==="processing"&&e(b,{size:"sm",color:"primary",outline:!0,className:"me-50",onClick:()=>Qe(t.id),title:"Refresh Status",children:e(Fe,{size:14})}),te(t)&&e(b,{size:"sm",color:"success",outline:!0,className:"me-50",onClick:()=>pe(t),title:"Download Report",children:e(we,{size:14})}),e(b,{size:"sm",color:"danger",outline:!0,onClick:()=>Ge(t),title:"Delete",children:e(Ue,{size:14})})]})})]},t.id))})]})}),B>1&&e(M,{className:"mt-2",children:a(v,{className:"d-flex justify-content-between align-items-center",children:[e("div",{children:a("small",{className:"text-muted",children:["Showing ",(w-1)*_+1," to"," ",Math.min(w*_,E)," of"," ",E," entries"]})}
1),a(at,{className:"mb-0",children:[e(oe,{disabled:w===1,children:e(ce,{previous:!0,onClick:()=>_e(w-1),children:e(st,{size:14})})}),[...Array(B)].map((t,c)=>{const o=c+1;return o===1||o===B||o>=w-1&&o<=w+1?e(oe,{active:o===w,children:e(ce,{onClick:()=>_e(o),children:o})},o):o===w-2||o===w+2?e(oe,{disabled:!0,children:e(ce,{children:"..."})},o):null}),e(oe,{disabled:w===B,children:e(ce,{next:!0,onClick:()=>_e(w+1),children:e(nt,{size:14})})})]}),e("div",{children:a(x,{type:"select",value:_,onChange:t=>{J(Number(t.target.value)),p(1)},style:{width:"100px"},children:[e("option",{value:"10",children:"10 / page"}),e("option",{value:"25",children:"25 / page"}),e("option",{value:"50",children:"50 / page"}),e("option",{value:"100",children:"100 / page"})]})})]})})]})})})}),a(ie,{isOpen:Be,toggle:()=>G(!1),size:"lg",children:[e(re,{toggle:()=>G(!1),children:"Create New Evaluation"}),a(se,{children:[a(W,{children:[e(F,{for:"file",children:"Document File (PDF) *"}),e(x,{type:"file",id:"file",accept:".pdf",onChange:t=>L({...g,uploaded_file:t.target.files[0]}),required:!0}),e("small",{className:"text-muted",children:"Maximum file size: 50MB"})]}),a(M,{children:[e(v,{md:"6",children:a(W,{children:[e(F,{for:"device_name",children:"Device Name *"}),e(x,{type:"text",id:"device_name",value:g.device_name,onChange:t=>L({...g,device_name:t.target.value}),placeholder:"Enter device name",required:!0})]})}),e(v,{md:"6",children:a(W,{children:[e(F,{children:"Device Attributes"}),a("div",{className:"d-flex justify-content-between align-items-center",children:[e("small",{className:"text-info",children:"Configure device attributes below"}),a(z,{color:"info",children:[Object.values(A).filter(t=>t===!0).length," ","active attributes"]})]})]})})]}),a(M,{children:[e(v,{md:"6",children:a(W,{children:[e(F,{for:"manufacturer",children:"Manufacturer"}),e(x,{type:"text",id:"manufacturer",value:g.manufacturer,onChange:t=>L({...g,manufacturer:t.target.value}),placeholder:"Enter manufacturer"})]})}),e(v,{md:"6",children:a(W,{children:[e(F,{for:"model_number",children:"Model Number"}),e(x,{type:"text",id:"model_number",value:g.model_number,onChange:t=>L({...g,model_number:t.target.value}),placeholder:"Enter model number"})]})})]}),a(W,{children:[e(F,{for:"regulatory_class",children:"Regulatory Class"}),a(x,{type:"select",id:"regulatory_class",value:g.regulatory_class,onChange:t=>L({...g,regulatory_class:t.target.value}),children:[e("option",{value:"",children:"Select regulatory class"}),e("option",{value:"Class I",children:"Class I"}),e("option",{value:"Class II",children:"Class II"}),e("option",{value:"Class III",children:"Class III"})]})]}),a(W,{children:[e(F,{for:"intended_use",children:"Intended Use"}),e(x,{type:"textarea",id:"intended_use",value:g.intended_use,onChange:t=>L({...g,intended_use:t.target.value}),placeholder:"Describe the intended use of the device",rows:"3"})]}),a("div",{className:"mt-3",children:[a("div",{className:"d-flex justify-content-between align-items-center mb-2",children:[e(F,{className:"mb-0",children:"Device Attributes Configuration"}),a(z,{color:"info",children:[Object.values(A).filter(t=>t===!0).length," ","Active"]})]}),e("div",{className:"border rounded p-3 bg-light",style:{maxHeight:"400px",overflowY:"auto"},children:(()=>{const t=je(A);return a(M,{children:[e(v,{md:"6",children:Object.entries(t).slice(0,Math.ceil(Object.keys(t).length/2)).map(([c,o])=>a("div",{className:"mb-3",children:[e("small",{className:"text-muted d-block mb-2 fw-bold",children:o.title}),e("div",{className:"d-flex flex-column gap-1",children:o.items.map(i=>a("div",{className:"d-flex justify-content-between align-items-center",children:[a("span",{className:"small",children:[i.label,":"]}),i.key==="software_type"?a(x,{type:"select",size:"sm",value:A[i.key],onChange:k=>ee(i.key,k.target.value),style:{width:"80px"},children:[e("option",{value:"none",children:"None"}),e("option",{value:"SiMD",children:"SiMD"}),e("option",{value:"SaMD",children:"SaMD"})]}):e(x,{type:"checkbox",checked:A[i.key],onChange:k=>ee(i.key,k.target.checked)})]},i.key))})]},c))}),e(v,{md:"6",children:Object.entries(t).slice(Math.ceil(Object.keys(t).length/2)).map(([c,o])=>a("div",{className:"mb-3",children:[e("small",{className:"text-muted d-block mb-2 fw-bold",children:o.title}),e("div",{className:"d-flex flex-column gap-1",children:o.items.map(i=>a("div",{className:"d-flex justify-content-between align-items-center",children:[a("span",{className:"small",children:[i.label,":"]}
1),i.key==="software_type"?a(x,{type:"select",size:"sm",value:A[i.key],onChange:k=>ee(i.key,k.target.value),style:{width:"80px"},children:[e("option",{value:"none",children:"None"}),e("option",{value:"SiMD",children:"SiMD"}),e("option",{value:"SaMD",children:"SaMD"})]}):e(x,{type:"checkbox",checked:A[i.key],onChange:k=>ee(i.key,k.target.checked)})]},i.key))})]},c))})]})})()})]})]}),a(ne,{children:[e(b,{color:"secondary",onClick:()=>G(!1),children:"Cancel"}),e(b,{color:"primary",onClick:Je,disabled:Ee,children:Ee?a(ve,{children:[e(be,{size:"sm",className:"me-50"}),"Uploading..."]}):a(ve,{children:[e(ot,{size:14,className:"me-50"}),"Create Evaluation"]})})]})]}),a(ie,{isOpen:Ve,toggle:()=>X(!1),children:[a(re,{toggle:()=>X(!1),children:[e(Le,{size:20,className:"me-50 text-danger"}),"Confirm Deletion"]}),e(se,{children:O&&a("div",{children:[e("p",{children:"Are you sure you want to delete this evaluation?"}),a("div",{className:"bg-light p-3 rounded",children:[a("p",{className:"mb-1",children:[e("strong",{children:"Name:"})," ",O.device_name||O.original_filename||"Unnamed"]}),O.manufacturer&&a("p",{className:"mb-1",children:[e("strong",{children:"Manufacturer:"})," ",O.manufacturer]}),a("p",{className:"mb-0",children:[e("strong",{children:"Created:"})," ",Z(O.created_at)]})]}),e(de,{color:"warning",className:"mt-3 mb-0",children:e("small",{children:"This action cannot be undone."})})]})}),a(ne,{children:[e(b,{color:"secondary",onClick:()=>X(!1),children:"Cancel"}),a(b,{color:"danger",onClick:Xe,children:[e(Ue,{size:14,className:"me-50"}),"Delete Evaluation"]})]})]}),a(ie,{isOpen:Ye,toggle:()=>Q(!1),size:"xl",style:{maxWidth:"90vw"},children:[a(re,{toggle:()=>Q(!1),children:[U==="report"?"Report Preview":"Document Preview"," -"," ",(s==null?void 0:s.device_name)||(s==null?void 0:s.original_filename)||"Document"]}),e(se,{style:{height:"80vh",padding:0},children:Ie()?e("iframe",{src:Ie(),style:{width:"100%",height:"100%",border:"none"},title:U==="report"?"Report Preview":"PDF Preview"}):e("div",{className:"text-center p-5",children:a(de,{color:"warning",children:[e(Le,{size:20,className:"me-50"}),U==="report"?"Report preview not available":"Document preview not available"]})})}),a(ne,{children:[U==="document"&&te(s)&&a(b,{color:"success",outline:!0,onClick:()=>{fe("report")},children:[e(ke,{size:14,className:"me-50"}),"View Report Instead"]}),U==="report"&&(s==null?void 0:s.uploaded_file)&&a(b,{color:"primary",outline:!0,onClick:()=>{fe("document")},children:[e(ke,{size:14,className:"me-50"}),"View Document Instead"]}),e(b,{color:"secondary",onClick:()=>Q(!1),children:"Close"}),U==="report"&&te(s)&&a(b,{color:"success",onClick:()=>pe(s),children:[e(we,{size:14,className:"me-50"}),"Download Report"]})]})]}),a(ie,{isOpen:He,toggle:()=>V(!1),size:"lg",children:[e(re,{toggle:()=>V(!1),children:"Evaluation Details"}),e(se,{children:s?a("div",{children:[e("h5",{className:"mb-2",children:"Basic Information"}),a(M,{className:"mb-3",children:[a(v,{md:"6",children:[a("p",{children:[e("strong",{children:"File:"})," ",s.original_filename]}),a("p",{children:[e("strong",{children:"Device Name:"})," ",s.device_name||"N/A"]}),a("p",{children:[e("strong",{children:"Manufacturer:"})," ",s.manufacturer||"N/A"]}),a("p",{children:[e("strong",{children:"Model:"})," ",s.model_number||"N/A"]})]}),a(v,{md:"6",children:[a("p",{children:[e("strong",{children:"Status:"})," ",e(z,{color:Oe(s.status),children:s.status})]}),e("p",{children:e("strong",{children:"Device Attributes:"})}),e(We,{attributes:s.device_attributes||A,compact:!1}),a("p",{children:[e("strong",{children:"Regulatory Class:"})," ",s.regulatory_class||"N/A"]}),a("p",{children:[e("strong",{children:"Created:"})," ",Z(s.created_at)]})]})]}),s.intended_use&&a("div",{className:"mb-3",children:[e("h5",{children:"Intended Use"}),e("p",{children:s.intended_use})]}),s.device_attributes&&a("div",{className:"mb-3",children:[a("div",{className:"d-flex justify-content-between align-items-center mb-2",children:[e("h5",{className:"mb-0",children:"Device Attributes"}),a(z,{color:"info",className:"ms-2",children:[Object.values(s.device_attributes).filter(t=>t===!0).length," ","Active Attributes"]})]}),e("div",{className:"border rounded p-3 bg-light",style:{maxHeight:"300px",overflowY:"auto"},children:(()=>{const t=je(s.device_attributes);return a(M,{children:[e(v,{md:"6",children:Object.entries(t).slice(0,Math.ceil(Object.keys(t).length/2)).map(([c,o])=>a("div",{className:"mb-3",children:[e("small",{className:"text-muted d-block mb-2 fw-bold",children:o.title}),e("ul",{className:"list-unstyled small",children:o.items.filter(i=>typeof i.value=="boolean"?i.value:!0).map(i=>a("li",{className:"d-flex justify-content-between",children:[a("span",{children:[i.label,":"]}
1),e("span",{className:typeof i.value=="boolean"?i.value?"text-success fw-bold":"text-muted":"text-info fw-bold",children:typeof i.value=="boolean"?i.value?"Yes":"No":i.value})]},i.key))})]},c))}),e(v,{md:"6",children:Object.entries(t).slice(Math.ceil(Object.keys(t).length/2)).map(([c,o])=>a("div",{className:"mb-3",children:[e("small",{className:"text-muted d-block mb-2 fw-bold",children:o.title}),e("ul",{className:"list-unstyled small",children:o.items.filter(i=>typeof i.value=="boolean"?i.value:!0).map(i=>a("li",{className:"d-flex justify-content-between",children:[a("span",{children:[i.label,":"]}),e("span",{className:typeof i.value=="boolean"?i.value?"text-success fw-bold":"text-muted":"text-info fw-bold",children:typeof i.value=="boolean"?i.value?"Yes":"No":i.value})]},i.key))})]},c))})]})})()})]}),s.status==="processing"&&a("div",{className:"mb-3",children:[e("h5",{children:"Progress"}),e(Te,{value:s.progress||0,className:"mb-2"}),a("p",{children:[e("strong",{children:"Current Stage:"})," ",s.current_stage||"Initializing..."]}),a("p",{children:[e("strong",{children:"Progress:"})," ",s.progress||0,"%"]})]}),s.status==="completed"&&a("div",{className:"mb-3",children:[e("h5",{children:"Evaluation Results"}),a("p",{children:[e("strong",{children:"Completed:"})," ",Z(s.completed_at)]}),s.report_filename&&a("p",{children:[e("strong",{children:"Report:"})," ",s.report_filename]}),s.overall_score&&a("p",{children:[e("strong",{children:"Overall Score:"})," ",s.overall_score]})]}),s.error_message&&a(de,{color:"danger",children:[e("h6",{children:"Error Details"}),e("p",{className:"mb-0",children:s.error_message}),s.error_code&&a("small",{children:["Error Code: ",s.error_code]})]})]}):e("div",{className:"text-center",children:e(be,{color:"primary"})})}),a(ne,{children:[(s==null?void 0:s.uploaded_file)&&a(b,{color:"primary",outline:!0,onClick:()=>{V(!1),Re(s,"document")},children:[e(ke,{size:14,className:"me-50"}),"Preview Document"]}),te(s)&&a(ve,{children:[a(b,{color:"success",outline:!0,onClick:()=>{V(!1),Re(s,"report")},children:[e($e,{size:14,className:"me-50"}),"Preview Report"]}),a(b,{color:"success",onClick:()=>pe(s),children:[e(we,{size:14,className:"me-50"}),"Download Report"]})]}),e(b,{color:"secondary",onClick:()=>V(!1),children:"Close"})]})]})]})};export{ft as baseHost,Wt 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.