Files
qhmes/web-dist/js/ThinkText-Dnh5CAci.js
2026-06-16 18:19:57 +08:00

3 lines
3.2 KiB
Java

import{M as S,m as U,a as A,H as m}from"./style-D_IZwlkj.js";import{useAppInject as M}from"./useAppInject-DPZGPcR3.js";import{a1 as $,au as z}from"./index-X7Y8jykP.js";import{e as H,o as R,aa as q,d as j,C as F,H as J,c as K,z as N,Q as y,T as k,J as w,u as V,r as i}from"./vue-vendor-DNhG1Cve.js";import"./emoji-mart-vue-fast-R0uJEDq-.js";const D=["innerHTML"],G=H({__name:"ThinkText",props:["dateTime","text","inversion","error","loading","referenceKnowledge"],setup(c){const s=i(),{getIsMobile:x}=M(),u=c,o=i(),l=new S({html:!0,linkify:!0,highlight(t,e){if(!!(e&&m.getLanguage(e))){const n=e!=null?e:"";return h(m.highlight(t,{language:n}).value,n)}return h(m.highlightAuto(t).value,"")}});l.use(U,{attrs:{target:"_blank",rel:"noopener"}}),l.use(A,{blockClass:"katexmath-block rounded-md p-[10px]",errorColor:" #cc0000"});const p=K(()=>{var e;let t=(e=u.text)!=null?e:"";return u.inversion!="user"?(t=C(t),t=E(t),l.render(t)):t.replace(`
`,"<br>")}),C=t=>{const e=/!\[([^\]]*)\]\(([^)]+)=([0-9]+)\)/g;return t.replace(e,(r,n,a,W)=>{let I=/#\s*{\s*domainURL\s*}/g;return a=a.replace(I,v),`<div><img src='${a}' alt='${n}' width='${W}' /></div>`})},{domainUrl:v}=$(),E=t=>{const e=/!\[([^\]]*)\]\(.*?#\s*{\s*domainURL\s*}.*?\)/g;return t.replace(e,r=>{let n=/#\s*{\s*domainURL\s*}/g;return r.replace(n,v)})},b=i(!1),_=i("");function h(t,e){return`<pre class="code-block-wrapper"><div class="code-block-header"><span class="code-block-header__lang">${e}</span><span class="code-block-header__copy">复制代码</span></div><code class="hljs code-block-body ${e}">${t}</code></pre>`}function f(){o.value&&o.value.querySelectorAll(".code-block-header__copy").forEach(e=>{e.addEventListener("click",()=>{var n,a;const r=(a=(n=e.parentElement)==null?void 0:n.nextElementSibling)==null?void 0:a.textContent;r&&B(r).then(()=>{e.textContent="复制成功",setTimeout(()=>{e.textContent="复制代码"},1e3)})})})}function L(){o.value&&o.value.querySelectorAll(".code-block-header__copy").forEach(e=>{e.removeEventListener("click",()=>{})})}function g(){o.value&&o.value.querySelectorAll("img").forEach(e=>{e.addEventListener("click",()=>{_.value=e.src,b.value=!0})})}function T(){o.value&&o.value.querySelectorAll("img").forEach(e=>{e.removeEventListener("click",()=>{})})}function d(){window.innerWidth>600&&window.innerWidth<1024?s.value=window.innerWidth-120+"px":window.innerWidth<600&&(s.value=window.innerWidth-60+"px")}R(()=>{f(),g(),d(),window.addEventListener("resize",d)}),q(()=>{f(),g()}),j(()=>{L(),T(),window.removeEventListener("resize",d)});function B(t){return new Promise((e,r)=>{try{const n=document.createElement("textarea");n.setAttribute("readonly","readonly"),n.value=t,document.body.appendChild(n),n.select(),document.execCommand("copy")&&document.execCommand("copy"),document.body.removeChild(n),e(t)}catch(n){r(n)}})}return(t,e)=>p.value!=""?(N(),F("div",{key:0,class:w(["textWrap",[c.inversion==="user"?"self":"chatgpt"]]),ref_key:"textRef",ref:o},[y("div",{style:k({width:V(x)?s.value:"auto"})},[y("div",{class:w(["markdown-body",{"markdown-body-generate":c.loading}]),style:k({color:c.error?"#FF4444 !important":""}),innerHTML:p.value},null,14,D)],4)],2)):J("",!0)}}),Z=z(G,[["__scopeId","data-v-2f6ff381"]]);export{Z as default};