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

2 lines
14 KiB
JavaScript

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