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

2 lines
12 KiB
JavaScript

import{r as v,d as P,u as O,j as e,s as W,c as E,h as G,n as q,m as K,x as U,y as H,B as o,D as J,T as d,K as Q,L as X,z as k,C as A,M as Y}from"./index-wde0U4qL.js";import{u as Z,l as _,c as $,L as w,A as M,B as h,C as m,k as C,P as ee}from"./Layout-aWSA1CnN.js";import{T as N,D as se}from"./Description-DZr4F8a_.js";import{C as f}from"./CardContent-CtiAdwle.js";import{c as F,g as te,l as b,L as I,b as ae,a as R}from"./ListItemText-MHCbhB9z.js";import{A as ie}from"./Assessment-EqCCjnQU.js";import{L as ne,B as re,A as le,a as oe,E as de,b as ce}from"./LocationOn-D6dNBkVX.js";import"./utils-ZQUdJD-K.js";const xe=(t,n)=>{const{ownerState:x}=t;return[n.root,x.dense&&n.dense,x.alignItems==="flex-start"&&n.alignItemsFlexStart,x.divider&&n.divider,!x.disableGutters&&n.gutters]},pe=t=>{const{alignItems:n,classes:x,dense:g,disabled:l,disableGutters:p,divider:j,selected:y}=t,c=G({root:["root",g&&"dense",!p&&"gutters",j&&"divider",l&&"disabled",n==="flex-start"&&"alignItemsFlexStart",y&&"selected"]},te,x);return{...x,...c}},ue=W(_,{shouldForwardProp:t=>q(t)||t==="classes",name:"MuiListItemButton",slot:"Root",overridesResolver:xe})(K(({theme:t})=>({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:t.transitions.create("background-color",{duration:t.transitions.duration.shortest}),"&:hover":{textDecoration:"none",backgroundColor:(t.vars||t).palette.action.hover,"@media (hover: none)":{backgroundColor:"transparent"}},[`&.${b.selected}`]:{backgroundColor:t.alpha((t.vars||t).palette.primary.main,(t.vars||t).palette.action.selectedOpacity),[`&.${b.focusVisible}`]:{backgroundColor:t.alpha((t.vars||t).palette.primary.main,`${(t.vars||t).palette.action.selectedOpacity} + ${(t.vars||t).palette.action.focusOpacity}`)}},[`&.${b.selected}:hover`]:{backgroundColor:t.alpha((t.vars||t).palette.primary.main,`${(t.vars||t).palette.action.selectedOpacity} + ${(t.vars||t).palette.action.hoverOpacity}`),"@media (hover: none)":{backgroundColor:t.alpha((t.vars||t).palette.primary.main,(t.vars||t).palette.action.selectedOpacity)}},[`&.${b.focusVisible}`]:{backgroundColor:(t.vars||t).palette.action.focus},[`&.${b.disabled}`]:{opacity:(t.vars||t).palette.action.disabledOpacity},variants:[{props:({ownerState:n})=>n.divider,style:{borderBottom:`1px solid ${(t.vars||t).palette.divider}`,backgroundClip:"padding-box"}},{props:{alignItems:"flex-start"},style:{alignItems:"flex-start"}},{props:({ownerState:n})=>!n.disableGutters,style:{paddingLeft:16,paddingRight:16}},{props:({ownerState:n})=>n.dense,style:{paddingTop:4,paddingBottom:4}}]}))),he=v.forwardRef(function(n,x){const g=P({props:n,name:"MuiListItemButton"}),{alignItems:l="center",autoFocus:p=!1,component:j="div",children:y,dense:u=!1,disableGutters:c=!1,divider:B=!1,focusVisibleClassName:a,selected:s=!1,className:i,...r}=g,z=v.useContext(F),V=v.useMemo(()=>({dense:u||z.dense||!1,alignItems:l,disableGutters:c}),[l,z.dense,u,c]),L=v.useRef(null);O(()=>{p&&L.current&&L.current.focus()},[p]);const T={...g,alignItems:l,dense:V.dense,disableGutters:c,divider:B,selected:s},S=pe(T),D=Z(L,x);return e.jsx(F.Provider,{value:V,children:e.jsx(ue,{ref:D,href:r.href||r.to,component:(r.href||r.to)&&j==="div"?"button":j,focusVisibleClassName:E(S.focusVisible,a),ownerState:T,className:E(S.root,i),...r,classes:S,children:y})})}),me=$(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"})),fe=$(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"})),ge=$(e.jsx("path",{d:"M2.5 4v3h5v12h3V7h5V4zm19 5h-9v3h3v7h3v-7h3z"})),je=$(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 t=U(),{folderResults:n,currentResultIndex:x,loading:g}=H(s=>s.document),{currentFolderHash:l}=H(s=>s.document),[p,j]=v.useState(x),y=n[p],[u,c]=v.useState(null),B=s=>{s>=0&&s<n.length&&(j(s),t(Y(s)))};if(g)return e.jsx(w,{children:e.jsxs(o,{display:"flex",alignItems:"center",justifyContent:"center",minHeight:200,children:[e.jsx(J,{size:28,sx:{mr:2}}),e.jsx(d,{children:"Chargement des fichiers du dossier…"})]})});if(n.length===0)return e.jsx(w,{children:e.jsx(M,{severity:"info",children:"Aucun résultat d'extraction disponible. Veuillez d'abord téléverser des documents."})});if(!y)return e.jsx(w,{children:e.jsx(M,{severity:"error",children:"Erreur: Résultat d'extraction non trouvé."})});const a=y;return e.jsxs(w,{children:[e.jsxs(o,{sx:{mb:3},children:[e.jsx(d,{variant:"h4",gutterBottom:!0,children:"Résultats d'extraction"}),e.jsx(o,{sx:{display:"flex",justifyContent:"flex-end",mb:2},children:e.jsx(N,{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(h,{variant:"contained",color:"primary",disabled:!l,onClick:async()=>{if(l)try{const s=await Q(l),i=await X(l);alert(`Cache vidé (${s.removed} éléments). Re-traitement lancé (${i.scheduled} fichiers).`)}catch(s){alert(`Erreur lors du re-traitement: ${s?.message||s}`)}},children:"Re-traiter le dossier"})})})})]}),e.jsxs(o,{sx:{display:"flex",gap:3},children:[e.jsx(m,{sx:{flex:"0 0 320px",maxHeight:"70vh",overflow:"auto"},children:e.jsx(f,{sx:{p:0},children:e.jsx(I,{dense:!0,disablePadding:!0,children:n.map((s,i)=>e.jsx(he,{selected:i===p,onClick:()=>B(i),children:e.jsx(N,{title:s.document.fileName,placement:"right",children:e.jsx(ae,{primaryTypographyProps:{sx:{display:"block",maxWidth:260,whiteSpace:"nowrap",overflow:"hidden",textOverflow:"ellipsis"}},primary:s.document.fileName,secondary:new Date(s.document.uploadTimestamp).toLocaleString()})})},s.fileHash))})})}),e.jsxs(o,{sx:{flex:"1 1 auto",minWidth:0},children:[e.jsx(m,{sx:{mb:3},children:e.jsxs(f,{children:[e.jsxs(o,{sx:{display:"flex",alignItems:"center",gap:2,mb:2},children:[e.jsx(se,{color:"primary"}),e.jsx(d,{variant:"h6",children:a.document.fileName}),e.jsx(C,{label:a.document.mimeType,size:"small",variant:"outlined"}),e.jsx(C,{label:`${(a.document.fileSize/1024/1024).toFixed(2)} MB`,size:"small",variant:"outlined"})]}),e.jsxs(o,{sx:{display:"flex",gap:1,flexWrap:"wrap"},children:[e.jsx(C,{icon:e.jsx(me,{}),label:`Langue: ${a.classification.language}`,color:"info",variant:"outlined"}),e.jsx(C,{icon:e.jsx(je,{}),label:`Type: ${a.classification.documentType}`,color:"success",variant:"outlined"}),e.jsx(C,{icon:e.jsx(ie,{}),label:`Confiance: ${(a.metadata.quality.globalConfidence*100).toFixed(1)}%`,color:a.metadata.quality.globalConfidence>.8?"success":"warning",variant:"outlined"})]})]})}),e.jsx(m,{sx:{mb:3},children:e.jsxs(f,{children:[e.jsxs(d,{variant:"h6",gutterBottom:!0,children:[e.jsx(ge,{sx:{mr:1,verticalAlign:"middle"}}),"Texte extrait"]}),e.jsx(ee,{sx:{p:2,bgcolor:"grey.50",maxHeight:300,overflow:"auto"},children:e.jsx(d,{variant:"body2",sx:{whiteSpace:"pre-wrap"},children:a.extraction.text.raw})})]})}),e.jsxs(o,{sx:{display:"flex",gap:3,flexWrap:"wrap"},children:[a.extraction.entities.persons.length>0&&e.jsx(m,{sx:{flex:"1 1 300px"},children:e.jsxs(f,{children:[e.jsxs(d,{variant:"h6",gutterBottom:!0,children:[e.jsx(fe,{sx:{mr:1,verticalAlign:"middle"}}),"Personnes (",a.extraction.entities.persons.length,")"]}),e.jsx(I,{dense:!0,children:a.extraction.entities.persons.map((s,i)=>e.jsx(R,{secondaryAction:e.jsxs(o,{sx:{display:"flex",gap:1},children:[e.jsx(h,{size:"small",variant:"outlined",disabled:u===`p-${i}`,onClick:async()=>{try{c(`p-${i}`),await k(l,a.fileHash,"person",{index:i,id:s.id,patch:{firstName:s.firstName,lastName:s.lastName}})}finally{c(null)}},children:"Enregistrer"}),e.jsx(h,{size:"small",color:"error",onClick:async()=>{await A(l,a.fileHash,"person",{index:i,id:s.id})},children:"Supprimer"})]}),children:e.jsxs(o,{sx:{display:"flex",gap:1},children:[e.jsx("input",{style:{padding:4,width:120},defaultValue:s.firstName,onChange:r=>s.firstName=r.target.value}),e.jsx("input",{style:{padding:4,width:140},defaultValue:s.lastName,onChange:r=>s.lastName=r.target.value})]})},`p-${i}`))})]})}),a.extraction.entities.addresses.length>0&&e.jsx(m,{sx:{flex:"1 1 300px"},children:e.jsxs(f,{children:[e.jsxs(d,{variant:"h6",gutterBottom:!0,children:[e.jsx(ne,{sx:{mr:1,verticalAlign:"middle"}}),"Adresses (",a.extraction.entities.addresses.length,")"]}),e.jsx(I,{dense:!0,children:a.extraction.entities.addresses.map((s,i)=>e.jsx(R,{secondaryAction:e.jsxs(o,{sx:{display:"flex",gap:1},children:[e.jsx(h,{size:"small",variant:"outlined",disabled:u===`a-${i}`,onClick:async()=>{try{c(`a-${i}`),await k(l,a.fileHash,"address",{index:i,id:s.id,patch:{street:s.street,city:s.city,postalCode:s.postalCode,country:s.country}})}finally{c(null)}},children:"Enregistrer"}),e.jsx(h,{size:"small",color:"error",onClick:async()=>{await A(l,a.fileHash,"address",{index:i,id:s.id})},children:"Supprimer"})]}),children:e.jsxs(o,{sx:{display:"flex",gap:1,flexWrap:"wrap"},children:[e.jsx("input",{style:{padding:4,width:220},defaultValue:s.street,onChange:r=>s.street=r.target.value}),e.jsx("input",{style:{padding:4,width:100},defaultValue:s.postalCode,onChange:r=>s.postalCode=r.target.value}),e.jsx("input",{style:{padding:4,width:160},defaultValue:s.city,onChange:r=>s.city=r.target.value}),e.jsx("input",{style:{padding:4,width:120},defaultValue:s.country||"",onChange:r=>s.country=r.target.value})]})},`a-${i}`))})]})}),a.extraction.entities.companies.length>0&&e.jsx(m,{sx:{flex:"1 1 300px"},children:e.jsxs(f,{children:[e.jsxs(d,{variant:"h6",gutterBottom:!0,children:[e.jsx(re,{sx:{mr:1,verticalAlign:"middle"}}),"Entreprises (",a.extraction.entities.companies.length,")"]}),e.jsx(I,{dense:!0,children:a.extraction.entities.companies.map((s,i)=>e.jsx(R,{secondaryAction:e.jsxs(o,{sx:{display:"flex",gap:1},children:[e.jsx(h,{size:"small",variant:"outlined",disabled:u===`c-${i}`,onClick:async()=>{try{c(`c-${i}`),await k(l,a.fileHash,"company",{index:i,id:s.id,patch:{name:s.name}})}finally{c(null)}},children:"Enregistrer"}),e.jsx(h,{size:"small",color:"error",onClick:async()=>{await A(l,a.fileHash,"company",{index:i,id:s.id})},children:"Supprimer"})]}),children:e.jsx(o,{sx:{display:"flex",gap:1},children:e.jsx("input",{style:{padding:4,width:260},defaultValue:s.name,onChange:r=>s.name=r.target.value})})},`c-${i}`))})]})})]}),e.jsx(m,{sx:{mt:3},children:e.jsxs(f,{children:[e.jsx(d,{variant:"h6",gutterBottom:!0,children:"Métadonnées détaillées"}),e.jsxs(le,{children:[e.jsx(oe,{expandIcon:e.jsx(de,{}),children:e.jsx(d,{children:"Informations de traitement"})}),e.jsx(ce,{children:e.jsxs(o,{sx:{display:"flex",flexDirection:"column",gap:1},children:[e.jsxs(d,{variant:"body2",children:[e.jsx("strong",{children:"Hash du fichier:"})," ",a.fileHash]}),e.jsxs(d,{variant:"body2",children:[e.jsx("strong",{children:"Timestamp:"})," ",new Date(a.status.timestamp).toLocaleString()]}),e.jsxs(d,{variant:"body2",children:[e.jsx("strong",{children:"Confiance globale:"})," ",(a.metadata.quality.globalConfidence*100).toFixed(1),"%"]})]})})]})]})})]})]})]})}export{Le as default};