|
|
import{o as e,r as t}from"./chunk-jRWAZmH_.js";import{n,t as r}from"./jsx-runtime-CEixWuwE.js";import{Ct as i,G as a,On as o,ir as s,kn as c,t as l,vt as u}from"./axios-BAZB3l2q.js";import{t as d}from"./button-BwrlrBF7.js";import{t as f}from"./modal-ChM3JDNH.js";import{t as p}from"./input-vY_ggPFq.js";import{t as m}from"./spin-CnpRA3-Y.js";import{c as h}from"./chunk-62JRHF6Z-BvBbiO43.js";import{t as ee}from"./MessageOutlined-jOruwg0B.js";import{t as g}from"./slugify-C1iW7uj6.js";import{t as _}from"./menu.queries-IFR7O2LK.js";import{R as te,W as ne,ct as v,ot as re,ut as y,y as b}from"./index-vzToGWaQ.js";var x={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M899.1 869.6l-53-305.6H864c14.4 0 26-11.6 26-26V346c0-14.4-11.6-26-26-26H618V138c0-14.4-11.6-26-26-26H432c-14.4 0-26 11.6-26 26v182H160c-14.4 0-26 11.6-26 26v192c0 14.4 11.6 26 26 26h17.9l-53 305.6a25.95 25.95 0 0025.6 30.4h723c1.5 0 3-.1 4.4-.4a25.88 25.88 0 0021.2-30zM204 390h272V182h72v208h272v104H204V390zm468 440V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H416V674c0-4.4-3.6-8-8-8h-48c-4.4 0-8 3.6-8 8v156H202.8l45.1-260H776l45.1 260H672z`}}]},name:`clear`,theme:`outlined`};c();var S=e(n()),ie=S.forwardRef(function(e,t){return S.createElement(i,o(o({},e),{},{ref:t,icon:x}))}),C={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 00-26.5-5.4H273v428h.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM112 132v364c0 17.7 14.3 32 32 32h65V100h-65c-17.7 0-32 14.3-32 32z`}}]},name:`dislike`,theme:`filled`};c();var ae=S.forwardRef(function(e,t){return S.createElement(i,o(o({},e),{},{ref:t,icon:C}))}),oe={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M885.9 490.3c3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-28.3-9.3-55.5-26.1-77.7 3.6-12 5.4-24.4 5.4-37 0-51.6-30.7-98.1-78.3-118.4a66.1 66.1 0 00-26.5-5.4H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h129.3l85.8 310.8C372.9 889 418.9 924 470.9 924c29.7 0 57.4-11.8 77.9-33.4 20.5-21.5 31-49.7 29.5-79.4l-6-122.9h239.9c12.1 0 23.9-3.2 34.3-9.3 40.4-23.5 65.5-66.1 65.5-111 0-28.3-9.3-55.5-26.1-77.7zM184 456V172h81v284h-81zm627.2 160.4H496.8l9.6 198.4c.6 11.9-4.7 23.1-14.6 30.5-6.1 4.5-13.6 6.8-21.1 6.7a44.28 44.28 0 01-42.2-32.3L329 459.2V172h415.4a56.85 56.85 0 0133.6 51.8c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-13.9 25.4 21.9 19a56.76 56.76 0 0119.6 43c0 9.7-2.3 18.9-6.9 27.3l-14 25.5 21.9 19a56.76 56.76 0 0119.6 43c0 19.1-11 37.5-28.8 48.4z`}}]},name:`dislike`,theme:`outlined`};c();var se=S.forwardRef(function(e,t){return S.createElement(i,o(o({},e),{},{ref:t,icon:oe}))}),ce={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 00-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 00471 99.9c-52 0-98 35-111.8 85.1l-85.9 311h-.3v428h472.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM112 528v364c0 17.7 14.3 32 32 32h65V496h-65c-17.7 0-32 14.3-32 32z`}}]},name:`like`,theme:`filled`};c();var le=S.forwardRef(function(e,t){return S.createElement(i,o(o({},e),{},{ref:t,icon:ce}))}),ue={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M885.9 533.7c16.8-22.2 26.1-49.4 26.1-77.7 0-44.9-25.1-87.4-65.5-111.1a67.67 67.67 0 00-34.3-9.3H572.4l6-122.9c1.4-29.7-9.1-57.9-29.5-79.4A106.62 106.62 0 00471 99.9c-52 0-98 35-111.8 85.1l-85.9 311H144c-17.7 0-32 14.3-32 32v364c0 17.7 14.3 32 32 32h601.3c9.2 0 18.2-1.8 26.5-5.4 47.6-20.3 78.3-66.8 78.3-118.4 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7 0-12.6-1.8-25-5.4-37 16.8-22.2 26.1-49.4 26.1-77.7-.2-12.6-2-25.1-5.6-37.1zM184 852V568h81v284h-81zm636.4-353l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 16.5-7.2 32.2-19.6 43l-21.9 19 13.9 25.4a56.2 56.2 0 016.9 27.3c0 22.4-13.2 42.6-33.6 51.8H329V564.8l99.5-360.5a44.1 44.1 0 0142.2-32.3c7.6 0 15.1 2.2 21.1 6.7 9.9 7.4 15.2 18.6 14.6 30.5l-9.6 198.4h314.4C829 418.5 840 436.9 840 456c0 16.5-7.2 32.1-19.6 43z`}}]},name:`like`,theme:`outlined`};c();var de=S.forwardRef(function(e,t){return S.createElement(i,o(o({},e),{},{ref:t,icon:ue}))}),fe={icon:{tag:`svg`,attrs:{viewBox:`64 64 896 896`,focusable:`false`},children:[{tag:`path`,attrs:{d:`M931.4 498.9L94.9 79.5c-3.4-1.7-7.3-2.1-11-1.2a15.99 15.99 0 00-11.7 19.3l86.2 352.2c1.3 5.3 5.2 9.6 10.4 11.3l147.7 50.7-147.6 50.7c-5.2 1.8-9.1 6-10.3 11.3L72.2 926.5c-.9 3.7-.5 7.6 1.2 10.9 3.9 7.9 13.5 11.1 21.5 7.2l836.5-417c3.1-1.5 5.6-4.1 7.2-7.1 3.9-8 .7-17.6-7.2-21.6zM170.8 826.3l50.3-205.6 295.2-101.3c2.3-.8 4.2-2.6 5-5 1.4-4.2-.8-8.7-5-10.2L221.1 403 171 198.2l628 314.9-628.2 313.2z`}}]},name:`send`,theme:`outlined`};c();var pe=S.forwardRef(function(e,t){return S.createElement(i,o(o({},e),{},{ref:t,icon:fe}))}),me=t({checkHealth:()=>he,sendMessage:()=>ge}),w=l.create({baseURL:b.edge.url,timeout:b.edge.timeout}),he=async()=>{try{return await w.get(`/`),!0}catch{return!1}},ge=async e=>(await w.post(`/api/chat`,{model:b.edge.model,messages:e,stream:!1})).data.message,_e=t({checkHealth:()=>T,sendMessage:()=>E}),ve=e=>{let t=Object.values(e??{});if(t.length!==0)return{tokens_in:t.reduce((e,t)=>e+(t.input_tokens??0),0),tokens_out:t.reduce((e,t)=>e+(t.output_tokens??0),0),cost_usd:t.reduce((e,t)=>e+(t.cost_usd??0),0)}},ye=l.create({baseURL:`/matcha-api`,timeout:b.api.timeout,headers:{"Content-Type":`application/json`,"MATCHA-API-KEY":b.api.apiKey}}),T=async()=>!0,E=async e=>{let t=e[e.length-1],n=e.slice(0,-1),r=await ye.post(`/rest/api/v1/completions/?label=streaming_chat_response`,{mission_id:b.api.missionId,folder_id:b.api.folderId,file_id:-1,messages:[t],context:``,chat_history:n,options:{temperature:.1,useReasoning:!1,enableFocusMode:!0,includeSources:!1,includeUsageMetadata:!0},stream:!1});if(r.data.status===`error`)throw Error(r.data.error||`Erreur MatchaAI`);let i=r.data.output,a=i?.find(e=>e.role===`assistant`)||i?.[0],o;return o=typeof a?.content==`string`?a.content:Array.isArray(a?.content)?a.content.map(e=>e.text||e.content||``).join(``):`Pas de réponse du copilote.`,{role:`assistant`,content:o,usage:ve(r.data.usage_metadata)}},D=/\b\d{6,12}\b/,O=/\b[12]\s?\d{2}\s?\d{2}\s?\d{2}\s?\d{3}\s?\d{3}\s?\d{2}\b/,k=/[A-ZÀÂÉÈÊËÎÏÔÙÛÜÇ][A-Za-zàâéèêëîïôùûüç]+(?:\s+[A-ZÀÂÉÈÊËÎÏÔÙÛÜÇ][A-Za-zàâéèêëîïôùûüç]+)+(?:\s+[a-zàâéèêëîïôùûüç]+){0,4}\s+\d{2}[\/\-]\d{2}[\/\-]\d{4}/,A=/(?:\+33[\s.-]?[1-9]|\b0[1-9])(?:[\s.-]?\d{2}){4}\b/,j=/\b[\w.+-]+@[\w-]+\.[\w.-]+\b/i,M=/\b(?:BF|FAC|N°|No)[\s.-]?\d+\b/i,N=/\b(?:patient|né(?:e)?\s+le|date\s+de\s+naissance|dob|ipp|nip|nss|rpps|adeli|numéro\s+de\s+sécurité)/i,P=[{name:`NSS`,re:O},{name:`IPP/NIP`,re:D},{name:`NOM+DATE`,re:k},{name:`PHONE`,re:A},{name:`EMAIL`,re:j},{name:`INVOICE_NUM`,re:M}];function be(e){if(!e||typeof e!=`string`)return{hasPii:!1,matches:[]};let t=[];for(let{name:n,re:r}of P)r.test(e)&&t.push(n);return!t.includes(`NOM+DATE`)&&N.test(e)&&t.push(`KEYWORD_SENSIBLE`),{hasPii:t.length>0,matches:t}}var F={role:`assistant`,isLocalOnly:!0,content:`Votre message semble contenir des données personnelles (identifiant patient, numéro de sécurité sociale, téléphone, email, numéro de facture ou nom associé à une date). IRIS ne peut pas traiter ces informations. Reformulez votre question sans données identifiantes.`,suggestions:[]},I=`iris_session_id`,L=`iris_events`,R=500;function xe(){return Date.now().toString(36)+Math.random().toString(36).slice(2,7)}function z(){let e=sessionStorage.getItem(I);return e||(e=xe(),sessionStorage.setItem(I,e)),e}function B(e){let t={ts:new Date().toISOString(),session:z(),...e};try{let e=localStorage.getItem(L),n=e?JSON.parse(e):[];n.push(t),n.length>R&&n.splice(0,n.length-R),localStorage.setItem(L,JSON.stringify(n))}catch{}}function Se(){try{return JSON.parse(localStorage.getItem(L)??`[]`)}catch{return[]}}function Ce(){return`${s()}modules/outils/dashboard/iCTI_copiloteLog.php`}function we(e){return e.type===`error`?{ts:e.ts,session:e.session,type:`error`,has_error:!0}:e}async function V(){let e=Se();if(e.length===0)return;let t=e.map(we);try{(await fetch(Ce(),{method:`POST`,credentials:`include`,headers:{"Content-Type":`application/json`},body:JSON.stringify(t)})).ok&&localStorage.removeItem(L)}catch{}}var H=b.mode===`api`?_e:me;b.mode;var U=H.checkHealth;function Te(e){let t=[],n=0;for(;n<e.length-1;)e[n].role===`user`&&e[n+1].role===`assistant`?(t.push(e[n],e[n+1]),n+=2):n+=1;return t}var Ee=/---\s*suggestions?\s*\n/i;function De(e){let t=e.search(Ee);return t===-1?{content:e,suggestions:[]}:{content:e.slice(0,t).trimEnd(),suggestions:e.slice(e.indexOf(`
|
|
|
`).map(e=>e.replace(/^[-•*]\s*/,``).trim()).filter(e=>e.length>0)}}var Oe=async e=>{let t=e[e.length-1]?.content??``,{hasPii:n,matches:r}=be(t);if(n)return B({type:`pii_blocked`,pii_matches:r}),F;let i=e.filter(e=>!e.isLocalOnly),a=[...Te(i.slice(0,-1)),...i.slice(-1)],o;try{o=await H.sendMessage(a)}catch(e){throw B({type:`error`,error:e instanceof Error?e.message:String(e)}),e}let{content:s,suggestions:c}=De(o.content||``);return B({type:`message`,question:t.slice(0,500),response_chars:s.length,...o.usage}),{role:`assistant`,content:s,suggestions:c}},W=(e,t,n)=>Promise.resolve(),G=r(),K=`(?:ACTI|PMSI|RH|ECO|DPI|COMPTA|QUALITE)[A-Z]*\\d{6}`,ke=RegExp(`\\*{0,2}((?:[Ll]a |[Ll]e |[Ll]es? )?[Vv]ue\\s+)\\*{0,2}([\\wÀ-ÿ][\\wÀ-ÿ'']*\\.?(?:\\s+[\\wÀ-ÿ][\\wÀ-ÿ'']*\\.?){0,8})\\*{0,2}(?:\\s*\\*{1,2}[\\wÀ-ÿ][\\wÀ-ÿ'']*\\*{1,2})?\\s*\\(\\s*\\*{0,2}(${K})\\*{0,2}\\s*\\)\\*{0,2}|\\*{0,2}([A-ZÀ-Ü][\\wÀ-ÿ'']*\\.?(?:\\s+[\\wÀ-ÿ][\\wÀ-ÿ'']*\\.?){0,5}?)\\*{0,2}\\s*\\(\\s*\\*{0,2}(${K})\\*{0,2}\\s*\\)\\*{0,2}|\\*{0,2}\\(?\\s*\\*{0,2}(${K})\\*{0,2}\\s*\\)?\\*{0,2}`,`g`),q=``,J=``,Ae=e=>e.replace(/\*\*(.+?)\*\*/g,`${q}$1${J}`).replace(/\*\*/g,``).split(q).join(`**`).split(J).join(`**`),Y=(e,t)=>{let n=Ae(e),r=/\*\*(.+?)\*\*/g,i=[],a=0,o;for(;(o=r.exec(n))!==null;)o.index>a&&i.push(n.slice(a,o.index)),i.push((0,G.jsx)(`strong`,{children:o[1]},`${t}-b-${o.index}`)),a=o.index+o[0].length;return a<n.length&&i.push(n.slice(a)),i},X=(e,t,n)=>{let r=new RegExp(ke.source,`g`),i=[],a=0,o;for(;(o=r.exec(e))!==null;){o.index>a&&i.push(...Y(e.slice(a,o.index),`${n}-${a}`));let r,s,c;o[2]&&o[3]?(c=o[1]||``,r=o[2],s=o[3]):o[4]&&o[5]?(r=o[4].replace(/^(?:La|Le|Les|Un|Une|Des|Du)\s+/i,``),s=o[5]):(r=o[6],s=o[6]),c&&i.push(c),i.push((0,G.jsx)(t,{viewCode:s,children:r},`${s}-${o.index}`)),a=o.index+o[0].length}return a<e.length&&i.push(...Y(e.slice(a),`${n}-${a}`)),i},je=(e,t)=>{if(!e)return e;let n=e.split(`
|
|
|
`),r=[],i=[],a=()=>{i.length>0&&(r.push((0,G.jsx)(`ul`,{children:i},`ul-${r.length}`)),i=[])};return n.forEach((e,n)=>{let o=e.match(/^[-*]\s+(.*)/);if(o){let e=X(o[1],t,`li-${n}`);i.push((0,G.jsx)(`li`,{children:e},`li-${n}`))}else a(),e.trim().length>0?(r.length>0&&r.push((0,G.jsx)(`br`,{},`br-${n}`)),r.push(...X(e,t,`ln-${n}`))):r.length>0&&r.push((0,G.jsx)(`br`,{},`br-${n}`))}),a(),r.length>0?r:e},Me=e(g()),Ne=e=>{let t={},n={},r=(e,i)=>{Object.values(e).forEach(e=>{let a=i+`/`+(0,Me.default)(e.label,{lower:!0});e.children?r(e.children,a):e.name&&(t[e.name]=`/`+a+`/`+e.name,n[e.name]=e.label)})};return Object.entries(e).forEach(([e,t])=>{t.children&&r(t.children,e)}),{entries:t,labels:n}},Pe=({viewCode:e,children:t})=>{let n=h(),r=_().data??{},{entries:i,labels:a}=(0,S.useMemo)(()=>!r||Object.keys(r).length===0?{entries:{},labels:{}}:Ne(r),[r]),o=i[e],s=t===e?a[e]||e:t;return o?(0,G.jsx)(`a`,{className:`copilote-view-link`,href:o,onClick:t=>{t.preventDefault(),o&&(B({type:`view_click_from_copilote`,view_code:e,view_label:typeof s==`string`?s:e,view_url:o}),n(o))},children:s}):(0,G.jsx)(v,{className:`copilote-view-tag`,children:s})},Fe=({role:e,content:t,suggestions:n,onSuggestionClick:r,messageId:i,isLocalOnly:a})=>{let o=e===`user`,[s,c]=(0,S.useState)(null),[l,u]=(0,S.useState)(!1),[d,m]=(0,S.useState)(``),h=e=>{let t=s===e?null:e;c(t),e===`down`&&t===`down`?u(!0):(W(i,t,null),B({type:`feedback`,messageId:i,vote:t}))};return(0,G.jsxs)(`div`,{className:`copilote-message copilote-message--${o?`user`:`assistant`}`+(o&&a?` copilote-message--blocked`:``),children:[(0,G.jsx)(`div`,{className:`copilote-message__bubble`,children:o?t:je(t,Pe)}),!o&&!a&&(0,G.jsxs)(`div`,{className:`copilote-feedback`,children:[(0,G.jsx)(`button`,{className:`copilote-feedback-btn${s===`up`?` copilote-feedback-btn--up-active`:``}`,onClick:()=>h(`up`),title:`Réponse utile`,children:s===`up`?(0,G.jsx)(le,{}):(0,G.jsx)(de,{})}),(0,G.jsx)(`button`,{className:`copilote-feedback-btn${s===`down`?` copilote-feedback-btn--down-active`:``}`,onClick:()=>h(`down`),title:`Réponse non pertinente`,children:s===`down`?(0,G.jsx)(ae,{}):(0,G.jsx)(se,{})})]}),n?.length>0&&(0,G.jsx)(`div`,{className:`copilote-suggestions`,children:n.map((e,t)=>(0,G.jsx)(`button`,{className:`copilote-suggestion-chip`,onClick:()=>r?.(e),children:e},t))}),(0,G.jsx)(f,{title:`Qu'est-ce qui n'allait pas ?`,open:l,onCancel:()=>{W(i,`down`,null),B({type:`feedback_negative`,messageId:i,verbatim:null}),u(!1)},okText:`Envoyer`,cancelText:`Passer`,onOk:()=>{let e=d.trim();W(i,`down`,e||null),B({type:`feedback_negative`,messageId:i,verbatim:e||null}),u(!1),m(``)},width:380,okButtonProps:{disabled:d.trim().length===0},children:(0,G.jsx)(p.TextArea,{value:d,onChange:e=>m(e.target.value),placeholder:`Décrivez le problème avec cette réponse (facultatif)...`,autoSize:{minRows:3,maxRows:6},autoFocus:!0,maxLength:500,showCount:!0})})]})},{TextArea:Ie}=p,Z=S.forwardRef(({onSend:e,isLoading:t},n)=>{let[r,i]=(0,S.useState)(``),a=()=>{let n=r.trim();n&&!t&&(e(n),i(``))};return(0,G.jsxs)(`div`,{className:`copilote-input`,children:[(0,G.jsx)(Ie,{ref:n,value:r,onChange:e=>i(e.target.value),onKeyDown:e=>{e.key===`Enter`&&!e.shiftKey&&(e.preventDefault(),a())},placeholder:`Posez votre question...`,autoSize:{minRows:1,maxRows:4},disabled:t}),(0,G.jsx)(d,{type:`primary`,icon:(0,G.jsx)(pe,{}),onClick:a,disabled:!r.trim()||t,loading:t})]})});Z.displayName=`CopiloteInput`;var Q=`iris_disclaimer_accepted`,$=`dpo@harrisfrance.fr`,Le=()=>localStorage.getItem(Q)===`true`,Re=({onAccept:e})=>{let[t,n]=(0,S.useState)(!1);return(0,G.jsxs)(f,{title:`IRIS — Assistant IA iCTI`,open:!0,closable:!1,maskClosable:!1,footer:(0,G.jsx)(d,{type:`primary`,disabled:!t,onClick:()=>{localStorage.setItem(Q,`true`),B({type:`consent_accepted`}),e()},children:`Accéder à IRIS`}),width:560,children:[(0,G.jsxs)(`p`,{children:[(0,G.jsx)(`strong`,{children:`IRIS`}),` fonctionne grâce à une combinaison de techniques d'intelligence artificielle qui lui permettent de simuler une conversation naturelle. En interagissant avec lui, vous communiquez des données non pas à un opérateur humain mais à un système automatisé basé sur la technologie de traitement du langage naturel (NLP) qui fonctionne en analysant vos requêtes et en générant des réponses textuelles en temps réel.`]}),(0,G.jsx)(`p`,{children:`Le modèle sous-jacent a été entraîné sur un ensemble de données volumineux et diversifié, ce qui lui permet de produire des textes cohérents et pertinents. Cependant, il est important de garder à l'esprit qu'il peut parfois :`}),(0,G.jsxs)(`ul`,{children:[(0,G.jsx)(`li`,{children:`générer des informations incorrectes ou inappropriées,`}),(0,G.jsx)(`li`,{children:`produire du contenu biaisé,`}),(0,G.jsx)(`li`,{children:`mal interpréter les requêtes ou questions complexes.`})]}),(0,G.jsxs)(`p`,{children:[`Si vous constatez ce type de réponse, n'hésitez pas à le signaler à`,` `,(0,G.jsx)(`a`,{href:`mailto:${$}`,children:$}),`.`]}),(0,G.jsxs)(`p`,{children:[(0,G.jsx)(`strong`,{children:`IRIS`}),` est conçu pour répondre à vos questions sur le fonctionnement de l'application iCTI et les règles de gestion métier mais il ne pourra pas répondre avec précision aux questions relatives à une situation personnelle.`]}),(0,G.jsx)(`p`,{children:`Par conséquent, vous garantissez ne pas fournir de données personnelles (nom, prénom, coordonnées…) ou d'informations personnelles de toute nature (opinion politique, état de santé, orientation sexuelle…) dans cette interface dans la mesure où elles ne sont pas nécessaires pour obtenir une réponse.`}),(0,G.jsxs)(`p`,{style:{marginBottom:0},children:[`En tout état de cause, les réponses fournies par `,(0,G.jsx)(`strong`,{children:`IRIS`}),` sont générées à partir des données disponibles et constituent des informations à titre indicatif. Elles ne doivent pas être utilisées pour prendre des décisions importantes.`]}),(0,G.jsx)(y,{checked:t,onChange:e=>n(e.target.checked),style:{marginTop:16},children:`J'accepte les conditions d'utilisation de IRIS.`})]})},ze=()=>{let[e,t]=(0,S.useState)(!1),[n,r]=(0,S.useState)(Le),[i,o]=(0,S.useState)([]),[s,c]=(0,S.useState)(!1),[l,f]=(0,S.useState)(null),p=(0,S.useRef)(null),h=(0,S.useRef)(0),g=(0,S.useRef)(null),_=()=>`${z()}-${++h.current}`,v=async()=>{f(null),f(await U())};(0,S.useEffect)(()=>{v()},[]),(0,S.useEffect)(()=>{let e=setInterval(V,300*1e3);return()=>clearInterval(e)},[]),(0,S.useEffect)(()=>{p.current?.scrollIntoView({behavior:`smooth`})},[i]);let y=()=>{g.current?.focus({preventScroll:!0})};(0,S.useEffect)(()=>{e&&l&&n&&y()},[e,l,n]);let b=async e=>{let t={id:_(),role:`user`,content:e},n=[...i,t];o(n),c(!0);try{let e=await Oe(n);o(e===F?n=>[...n.map(e=>e===t?{...e,isLocalOnly:!0}:e),{...e,id:_()}]:t=>[...t,{...e,id:_()}])}catch(e){let t=e.code===`ECONNABORTED`?`Le copilote a mis trop de temps à répondre. Réessayez avec une question plus courte.`:`Erreur de communication avec le copilote. Vérifiez la configuration.`;o(e=>[...e,{id:_(),role:`assistant`,content:t,isLocalOnly:!0}])}finally{c(!1)}},x=()=>{B({type:`conversation_reset`,message_count:i.length}),o([])},C=()=>{V(),t(!1)};return te(`i`,()=>{e?C():t(!0)},{},[e]),(0,G.jsxs)(G.Fragment,{children:[e&&!n&&(0,G.jsx)(Re,{onAccept:()=>r(!0)}),!e&&(0,G.jsx)(d,{className:`copilote-fab`,type:`primary`,shape:`circle`,size:`large`,icon:(0,G.jsx)(ee,{}),onClick:()=>t(!0),title:`IRIS — Votre assistante iCTI`}),(0,G.jsxs)(re,{title:`IRIS`,placement:`right`,width:420,onClose:C,open:e,afterOpenChange:e=>{e&&n&&y()},className:`copilote-drawer`,closeIcon:(0,G.jsx)(a,{}),extra:(0,G.jsx)(d,{type:`text`,size:`small`,icon:(0,G.jsx)(ie,{}),onClick:x,disabled:i.length===0,title:`Réinitialiser la conversation`}),children:[(0,G.jsxs)(`div`,{className:`copilote-body`,children:[l===!1&&(0,G.jsxs)(`div`,{className:`copilote-unavailable`,children:[(0,G.jsx)(`p`,{children:`IRIS est momentanément indisponible.`}),(0,G.jsx)(d,{icon:(0,G.jsx)(ne,{}),onClick:v,size:`small`,children:`Réessayer`})]}),l===null&&(0,G.jsx)(`div`,{className:`copilote-unavailable`,children:(0,G.jsx)(`p`,{children:`Connexion à IRIS en cours...`})}),l&&i.length===0&&(0,G.jsx)(`div`,{className:`copilote-welcome`,children:(0,G.jsx)(`p`,{children:`Bonjour, je suis IRIS. Posez-moi vos questions sur les indicateurs, le paramétrage et les règles de gestion iCTI.`})}),(0,G.jsxs)(`div`,{className:`copilote-messages`,children:[i.map((e,t)=>(0,G.jsx)(Fe,{messageId:e.id,role:e.role,content:e.content,isLocalOnly:e.isLocalOnly,suggestions:!s&&t===i.length-1?e.suggestions:void 0,onSuggestionClick:b},e.id)),s&&(0,G.jsxs)(`div`,{className:`copilote-loading`,children:[(0,G.jsx)(m,{indicator:(0,G.jsx)(u,{spin:!0}),size:`small`}),(0,G.jsx)(`span`,{children:`Réflexion en cours...`})]}),(0,G.jsx)(`div`,{ref:p})]})]}),l&&(0,G.jsx)(Z,{ref:g,onSend:b,isLoading:s})]})]})};export{ze as default};
|