| 1 |
- import{d as s,Q as e,c as t,a,R as o,K as r,S as i,T as n,q as l}from"./element-plus.ea_38_Np.js";import{M as m}from"./markdown-it.DFKoXly8.js";import{m as p}from"./markdown-it-highlightjs.CgG0E7fP.js";import{H as c}from"./highlight.js.BFeCtowP.js";import{p as d}from"./dompurify.DyZDmeC5.js";import{u,_ as g}from"./index.Dwded2Oo.js";import{M as j,aL as h,u as f,au as y,v,I as b,bJ as k,bk as _,bb as w,s as M,t as x,F as L,aX as T,H as z,q as H}from"./@vue.DbmRtknU.js";import"./lodash-es.DaM9m3L-.js";import"./async-validator.j0i5Y79Y.js";import"./@popperjs.DxtSUbXb.js";import"./@ctrl.BEgk5vdO.js";import"./dayjs.DCWbrgJ0.js";import"./memoize-one.BAtLgO95.js";import"./normalize-wheel-es.TzhA1irr.js";import"./@floating-ui.8vigAAFV.js";import"./mdurl.Dwcmq5MZ.js";import"./uc.micro.CRGj88R_.js";import"./entities.zpoy7YfM.js";import"./linkify-it.xinbW_ni.js";import"./punycode.js.BkBFhtvi.js";import"./pinia.BlfmsheH.js";import"./@vueuse.Dnsd2JKX.js";import"./vue-i18n.DXLOBfKS.js";import"./@intlify.DPMNdUn_.js";import"./nprogress.BTjJXJ-u.js";import"./codemirror.CYSLATvI.js";import"./diff-match-patch.DkK4wJpa.js";import"./vue-web-terminal.D-rog7dz.js";import"./vue.MGxsMDTR.js";/* empty css */import"./vue-router.yxIMtaxH.js";import"./axios.Da-QW0H8.js";import"./qs.BQjOrGHM.js";import"./side-channel.4q28KFJj.js";import"./es-errors.DTEWvbA_.js";import"./object-inspect.DvQZIv3_.js";import"./side-channel-list.Do0-XmF5.js";import"./side-channel-map.DNHQ53lO.js";import"./get-intrinsic.Bbe5x-9b.js";import"./es-object-atoms.CyiuHMUS.js";import"./math-intrinsics.pM-JTNwN.js";import"./gopd.BudZp56J.js";import"./es-define-property.F0aoeP8o.js";import"./has-symbols.BcO-SUVM.js";import"./get-proto.Cb_fpw-j.js";import"./dunder-proto.WEH3rgQR.js";import"./call-bind-apply-helpers.DJjIjCF_.js";import"./function-bind.DrnB-baK.js";import"./hasown.BXcyoiLU.js";import"./call-bound.22gFUC2Q.js";import"./side-channel-weakmap.DpSeWE6i.js";import"./pinia-plugin-persistedstate.COWkwNh5.js";const A={class:"message-avatar"},B={key:0,class:"user-avatar"},C={key:1,class:"ai-avatar"},I={class:"message-content"},q={class:"message-header"},E={class:"sender-name"},D={class:"message-body"},F={key:0,class:"message-files"},G={class:"file-name"},K={class:"file-size"},S=["innerHTML"],W={key:2,class:"typing-indicator"},$=g(j({__name:"MessageItem",props:{message:{}},emits:["toggle-fold"],setup(g,{emit:j}){const $=g,J=j,O=u(),P=H(()=>O.basicInfo.name||"用户"),R=new m({html:!0,linkify:!0,typographer:!0,breaks:!0,highlight(s,e){if(e&&c.getLanguage(e))try{return`<pre class="hljs"><code>${c.highlight(s,{language:e,ignoreIllegals:!0}).value}</code></pre>`}catch{return`<pre class="hljs"><code>${R.utils.escapeHtml(s)}</code></pre>`}return`<pre class="hljs"><code>${R.utils.escapeHtml(s)}</code></pre>`}}).use(p),X=R.renderer.rules.link_open||function(s,e,t,a,o){return o.renderToken(s,e,t,a,o)};R.renderer.rules.link_open=function(s,e,t,a,o){return s[e].attrPush(["target","_blank"]),s[e].attrPush(["rel","noopener noreferrer"]),X(s,e,t,a,o)};const Q=H(()=>{if(!$.message.content)return"";const s=R.render($.message.content);return d.sanitize(s,{ALLOWED_TAGS:["a","abbr","acronym","b","blockquote","br","code","col","colgroup","dd","del","dl","dt","em","h1","h2","h3","h4","h5","h6","hr","i","img","li","ol","p","pre","s","span","strike","strong","sub","sup","table","tbody","td","tfoot","th","thead","tr","tt","u","ul","video","source","div"],ALLOWED_ATTR:["href","title","target","rel","src","alt","width","height","class","id","controls","poster","type","colspan","rowspan","span"]})}),U=()=>{J("toggle-fold")},V=async()=>{try{await navigator.clipboard.writeText($.message.content),l.success("已复制到剪贴板")}catch{const s=document.createElement("textarea");s.value=$.message.content,document.body.appendChild(s),s.select(),document.execCommand("copy"),document.body.removeChild(s),l.success("已复制到剪贴板")}},Y=s=>{if(0===s)return"0 B";const e=Math.floor(Math.log(s)/Math.log(1024));return Math.round(s/Math.pow(1024,e)*100)/100+" "+["B","KB","MB","GB"][e]};return(l,m)=>{const p=s,c=a;return h(),f("div",{class:y(["message-group",g.message.type])},[v("div",A,["user"===g.message.type?(h(),f("div",B,[b(p,null,{default:k(()=>[b(_(e))]),_:1})])):(h(),f("div",C,[b(p,null,{default:k(()=>[b(_(t))]),_:1})]))]),v("div",I,[v("div",q,[v("strong",E,w("user"===g.message.type?P.value:"FA助手"),1),g.message.content?(h(),M(c,{key:0,text:"",size:"small",icon:_(o),class:"copy-button",onClick:V},null,8,["icon"])):x("",!0)]),v("div",D,[g.message.files&&g.message.files.length>0?(h(),f("div",F,[(h(!0),f(L,null,T(g.message.files,s=>(h(),f("div",{key:s.id,class:"attached-file"},[b(p,{class:"file-icon"},{default:k(()=>[b(_(r))]),_:1}),v("span",G,w(s.name),1),v("span",K,w(Y(s.size)),1)]))),128))])):x("",!0),g.message.content.length>200?(h(),M(c,{key:1,text:"",size:"small",icon:g.message.collapsed?_(i):_(n),class:"fold-button",onClick:U},{default:k(()=>[z(w(g.message.collapsed?"展开":"收起"),1)]),_:1},8,["icon"])):x("",!0),v("div",{class:y(["message-text",{collapsed:g.message.collapsed}]),innerHTML:Q.value},null,10,S),"assistant"===g.message.type&&g.message.loading&&!g.message.content?(h(),f("div",W,[...m[0]||(m[0]=[v("div",{class:"typing-dots"},[v("span"),v("span"),v("span")],-1)])])):x("",!0)])])],2)}}}),[["__scopeId","data-v-8b473c24"]]);export{$ as default};
|