4NK_IA_front/public/assets/ExtractionView-DLlpsZdk.js
2025-09-18 15:31:16 +00:00

2 lines
10 KiB
JavaScript

import{r as b,d as V,u as H,j as e,s as N,c as k,h as O,n as G,m as W,x as q,y as F,B as c,C as U,T as i,K,L as J,M as Q}from"./index-DwyPw-ga.js";import{u as X,l as Y,c as w,L as I,A as P,B as Z,C as p,k as v,P as _}from"./Layout-BXCKqMhs.js";import{T as z,D as ee}from"./Description-D3TUU4JV.js";import{C as u}from"./CardContent-BABkM9oc.js";import{c as E,g as se,l as y,L as B,b as L,a as S}from"./ListItemText-DU5FWiy7.js";import{A as te}from"./Assessment-vIi1LBZu.js";import{L as re,B as ae,A as ie,a as ne,E as oe,b as le}from"./LocationOn-B18XNb8Q.js";import"./utils-CKR531ip.js";const ce=(s,a)=>{const{ownerState:o}=s;return[a.root,o.dense&&a.dense,o.alignItems==="flex-start"&&a.alignItemsFlexStart,o.divider&&a.divider,!o.disableGutters&&a.gutters]},de=s=>{const{alignItems:a,classes:o,dense:h,disabled:l,disableGutters:d,divider:m,selected:f}=s,r=O({root:["root",h&&"dense",!d&&"gutters",m&&"divider",l&&"disabled",a==="flex-start"&&"alignItemsFlexStart",f&&"selected"]},se,o);return{...o,...r}},xe=N(Y,{shouldForwardProp:s=>G(s)||s==="classes",name:"MuiListItemButton",slot:"Root",overridesResolver:ce})(W(({theme:s})=>({display:"flex",flexGrow:1,justifyContent:"flex-start",alignItems:"center",position:"relative",textDecoration:"none",minWidth:0,boxSizing:"border-box",textAlign:"left",paddingTop:8,paddingBottom:8,transition:s.transitions.create("background-color",{duration:s.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(s.vars||s).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${y.selected}`]:{backgroundColor:s.alpha((s.vars||s).palette.primary.main,(s.vars||s).palette.action.selectedOpacity),[`&.${y.focusVisible}`]:{backgroundColor:s.alpha((s.vars||s).palette.primary.main,`${(s.vars||s).palette.action.selectedOpacity} + ${(s.vars||s).palette.action.focusOpacity}`)}},[`&.${y.selected}:hover`]:{backgroundColor:s.alpha((s.vars||s).palette.primary.main,`${(s.vars||s).palette.action.selectedOpacity} + ${(s.vars||s).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:s.alpha((s.vars||s).palette.primary.main,(s.vars||s).palette.action.selectedOpacity)}},[`&.${y.focusVisible}`]:{backgroundColor:(s.vars||s).palette.action.focus},[`&.${y.disabled}`]:{opacity:(s.vars||s).palette.action.disabledOpacity},variants:[{props:({ownerState:a})=>a.divider,style:{borderBottom:`1px solid ${(s.vars||s).palette.divider}`,backgroundClip:"padding-box"}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:a})=>!a.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:a})=>a.dense,style:{paddingTop:4,paddingBottom:4}}]}))),pe=b.forwardRef(function(a,o){const h=V({props:a,name:"MuiListItemButton"}),{alignItems:l="center",autoFocus:d=!1,component:m="div",children:f,dense:j=!1,disableGutters:r=!1,divider:t=!1,focusVisibleClassName:n,selected:x=!1,className:C,...g}=h,$=b.useContext(E),T=b.useMemo(()=>({dense:j||$.dense||!1,alignItems:l,disableGutters:r}),[l,$.dense,j,r]),R=b.useRef(null);H(()=>{d&&R.current&&R.current.focus()},[d]);const M={...h,alignItems:l,dense:T.dense,disableGutters:r,divider:t,selected:x},A=de(M),D=X(R,o);return e.jsx(E.Provider,{value:T,children:e.jsx(xe,{ref:D,href:g.href||g.to,component:(g.href||g.to)&&m==="div"?"button":m,focusVisibleClassName:k(A.focusVisible,n),ownerState:M,className:k(A.root,C),...g,classes:A,children:f})})}),ue=w(e.jsx("path",{d:"M11.99 2C6.47 2 2 6.48 2 12s4.47 10 9.99 10C17.52 22 22 17.52 22 12S17.52 2 11.99 2m6.93 6h-2.95c-.32-1.25-.78-2.45-1.38-3.56 1.84.63 3.37 1.91 4.33 3.56M12 4.04c.83 1.2 1.48 2.53 1.91 3.96h-3.82c.43-1.43 1.08-2.76 1.91-3.96M4.26 14C4.1 13.36 4 12.69 4 12s.1-1.36.26-2h3.38c-.08.66-.14 1.32-.14 2s.06 1.34.14 2zm.82 2h2.95c.32 1.25.78 2.45 1.38 3.56-1.84-.63-3.37-1.9-4.33-3.56m2.95-8H5.08c.96-1.66 2.49-2.93 4.33-3.56C8.81 5.55 8.35 6.75 8.03 8M12 19.96c-.83-1.2-1.48-2.53-1.91-3.96h3.82c-.43 1.43-1.08 2.76-1.91 3.96M14.34 14H9.66c-.09-.66-.16-1.32-.16-2s.07-1.35.16-2h4.68c.09.65.16 1.32.16 2s-.07 1.34-.16 2m.25 5.56c.6-1.11 1.06-2.31 1.38-3.56h2.95c-.96 1.65-2.49 2.93-4.33 3.56M16.36 14c.08-.66.14-1.32.14-2s-.06-1.34-.14-2h3.38c.16.64.26 1.31.26 2s-.1 1.36-.26 2z"})),he=w(e.jsx("path",{d:"M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4m0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4"})),me=w(e.jsx("path",{d:"M2.5 4v3h5v12h3V7h5V4zm19 5h-9v3h3v7h3v-7h3z"})),fe=w(e.jsx("path",{d:"m23 12-2.44-2.79.34-3.69-3.61-.82-1.89-3.2L12 2.96 8.6 1.5 6.71 4.69 3.1 5.5l.34 3.7L1 12l2.44 2.79-.34 3.7 3.61.82L8.6 22.5l3.4-1.47 3.4 1.46 1.89-3.19 3.61-.82-.34-3.69zm-12.91 4.72-3.8-3.81 1.48-1.48 2.32 2.33 5.85-5.87 1.48 1.48z"}));function Le(){const s=q(),{folderResults:a,currentResultIndex:o,loading:h}=F(t=>t.document),{currentFolderHash:l}=F(t=>t.document),[d,m]=b.useState(o),f=a[d],j=t=>{t>=0&&t<a.length&&(m(t),s(Q(t)))};if(h)return e.jsx(I,{children:e.jsxs(c,{display:"flex",alignItems:"center",justifyContent:"center",minHeight:200,children:[e.jsx(U,{size:28,sx:{mr:2}}),e.jsx(i,{children:"Chargement des fichiers du dossier…"})]})});if(a.length===0)return e.jsx(I,{children:e.jsx(P,{severity:"info",children:"Aucun résultat d'extraction disponible. Veuillez d'abord téléverser des documents."})});if(!f)return e.jsx(I,{children:e.jsx(P,{severity:"error",children:"Erreur: Résultat d'extraction non trouvé."})});const r=f;return e.jsxs(I,{children:[e.jsxs(c,{sx:{mb:3},children:[e.jsx(i,{variant:"h4",gutterBottom:!0,children:"Résultats d'extraction"}),e.jsx(c,{sx:{display:"flex",justifyContent:"flex-end",mb:2},children:e.jsx(z,{title:"Re-traiter le dossier: vide le cache puis relance l'analyse de tous les fichiers présents dans uploads/<hash>.",children:e.jsx("span",{children:e.jsx(Z,{variant:"contained",color:"primary",disabled:!l,onClick:async()=>{if(l)try{const t=await K(l),n=await J(l);alert(`Cache vidé (${t.removed} éléments). Re-traitement lancé (${n.scheduled} fichiers).`)}catch(t){alert(`Erreur lors du re-traitement: ${t?.message||t}`)}},children:"Re-traiter le dossier"})})})})]}),e.jsxs(c,{sx:{display:"flex",gap:3},children:[e.jsx(p,{sx:{flex:"0 0 320px",maxHeight:"70vh",overflow:"auto"},children:e.jsx(u,{sx:{p:0},children:e.jsx(B,{dense:!0,disablePadding:!0,children:a.map((t,n)=>e.jsx(pe,{selected:n===d,onClick:()=>j(n),children:e.jsx(z,{title:t.document.fileName,placement:"right",children:e.jsx(L,{primaryTypographyProps:{sx:{display:"block",maxWidth:260,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},primary:t.document.fileName,secondary:new Date(t.document.uploadTimestamp).toLocaleString()})})},t.fileHash))})})}),e.jsxs(c,{sx:{flex:"1 1 auto",minWidth:0},children:[e.jsx(p,{sx:{mb:3},children:e.jsxs(u,{children:[e.jsxs(c,{sx:{display:"flex",alignItems:"center",gap:2,mb:2},children:[e.jsx(ee,{color:"primary"}),e.jsx(i,{variant:"h6",children:r.document.fileName}),e.jsx(v,{label:r.document.mimeType,size:"small",variant:"outlined"}),e.jsx(v,{label:`${(r.document.fileSize/1024/1024).toFixed(2)} MB`,size:"small",variant:"outlined"})]}),e.jsxs(c,{sx:{display:"flex",gap:1,flexWrap:"wrap"},children:[e.jsx(v,{icon:e.jsx(ue,{}),label:`Langue: ${r.classification.language}`,color:"info",variant:"outlined"}),e.jsx(v,{icon:e.jsx(fe,{}),label:`Type: ${r.classification.documentType}`,color:"success",variant:"outlined"}),e.jsx(v,{icon:e.jsx(te,{}),label:`Confiance: ${(r.metadata.quality.globalConfidence*100).toFixed(1)}%`,color:r.metadata.quality.globalConfidence>.8?"success":"warning",variant:"outlined"})]})]})}),e.jsx(p,{sx:{mb:3},children:e.jsxs(u,{children:[e.jsxs(i,{variant:"h6",gutterBottom:!0,children:[e.jsx(me,{sx:{mr:1,verticalAlign:"middle"}}),"Texte extrait"]}),e.jsx(_,{sx:{p:2,bgcolor:"grey.50",maxHeight:300,overflow:"auto"},children:e.jsx(i,{variant:"body2",sx:{whiteSpace:"pre-wrap"},children:r.extraction.text.raw})})]})}),e.jsxs(c,{sx:{display:"flex",gap:3,flexWrap:"wrap"},children:[r.extraction.entities.persons.length>0&&e.jsx(p,{sx:{flex:"1 1 300px"},children:e.jsxs(u,{children:[e.jsxs(i,{variant:"h6",gutterBottom:!0,children:[e.jsx(he,{sx:{mr:1,verticalAlign:"middle"}}),"Personnes (",r.extraction.entities.persons.length,")"]}),e.jsx(B,{dense:!0,children:r.extraction.entities.persons.map((t,n)=>{const x=typeof t=="string"?t:[t.firstName,t.lastName].filter(Boolean).join(" ")||t?.id||"Personne";return e.jsx(S,{children:e.jsx(L,{primary:x,secondary:"Personne détectée"})},n)})})]})}),r.extraction.entities.addresses.length>0&&e.jsx(p,{sx:{flex:"1 1 300px"},children:e.jsxs(u,{children:[e.jsxs(i,{variant:"h6",gutterBottom:!0,children:[e.jsx(re,{sx:{mr:1,verticalAlign:"middle"}}),"Adresses (",r.extraction.entities.addresses.length,")"]}),e.jsx(B,{dense:!0,children:r.extraction.entities.addresses.map((t,n)=>{const x=typeof t=="string"?t:[t.street,t.postalCode,t.city].filter(C=>!!C&&String(C).trim().length>0).join(" ")||t?.id||"Adresse";return e.jsx(S,{children:e.jsx(L,{primary:x,secondary:"Adresse détectée"})},n)})})]})}),r.extraction.entities.companies.length>0&&e.jsx(p,{sx:{flex:"1 1 300px"},children:e.jsxs(u,{children:[e.jsxs(i,{variant:"h6",gutterBottom:!0,children:[e.jsx(ae,{sx:{mr:1,verticalAlign:"middle"}}),"Entreprises (",r.extraction.entities.companies.length,")"]}),e.jsx(B,{dense:!0,children:r.extraction.entities.companies.map((t,n)=>{const x=typeof t=="string"?t:t?.name||t?.id||"Entreprise";return e.jsx(S,{children:e.jsx(L,{primary:x,secondary:"Entreprise détectée"})},n)})})]})})]}),e.jsx(p,{sx:{mt:3},children:e.jsxs(u,{children:[e.jsx(i,{variant:"h6",gutterBottom:!0,children:"Métadonnées détaillées"}),e.jsxs(ie,{children:[e.jsx(ne,{expandIcon:e.jsx(oe,{}),children:e.jsx(i,{children:"Informations de traitement"})}),e.jsx(le,{children:e.jsxs(c,{sx:{display:"flex",flexDirection:"column",gap:1},children:[e.jsxs(i,{variant:"body2",children:[e.jsx("strong",{children:"Hash du fichier:"})," ",r.fileHash]}),e.jsxs(i,{variant:"body2",children:[e.jsx("strong",{children:"Timestamp:"})," ",new Date(r.status.timestamp).toLocaleString()]}),e.jsxs(i,{variant:"body2",children:[e.jsx("strong",{children:"Confiance globale:"})," ",(r.metadata.quality.globalConfidence*100).toFixed(1),"%"]})]})})]})]})})]})]})]})}export{Le as default};