File: /www/server/panel/BTPanel/static/js/chat-utils.js
import{d as m}from"./marked.esm.js?v=1777008528";m.setOptions({breaks:!0,gfm:!0});const N=new m.Renderer;N.image=({href:t,title:e,text:d})=>'<img src="'.concat(t,'" alt="').concat(d,'" style="aspect-ratio:16/9; width:100%;" />');m.setOptions({renderer:N});function u(t){const e=document.createElement("div");e.textContent=t;const d=["p","br","strong","em","u","s","code","pre","h1","h2","h3","h4","h5","h6","ul","ol","li","blockquote","a","img","table","thead","tbody","tr","th","td","span","div","hr"],r={a:["href","title","target"],img:["src","alt","title","width","height"],code:["class"],pre:["class"],span:["class"],div:["class"]},p=new DOMParser().parseFromString(t,"text/html");function f(s){if(s.nodeType===Node.TEXT_NODE)return s.cloneNode(!0);if(s.nodeType===Node.ELEMENT_NODE){const n=s,i=n.tagName.toLowerCase();if(!d.includes(i))return null;const l=document.createElement(i),a=r[i]||[];for(const o of Array.from(n.attributes))if(a.includes(o.name))if(o.name==="href"||o.name==="src"){const c=o.value.trim().toLowerCase();(c.startsWith("http://")||c.startsWith("https://")||c.startsWith("mailto:")||c.startsWith("/")||c.startsWith("./")||c.startsWith("#"))&&(l.setAttribute(o.name,o.value),o.name==="src"&&i==="img"&&l.setAttribute("loading","lazy"))}else l.setAttribute(o.name,o.value);for(const o of Array.from(n.childNodes)){const c=f(o);c&&l.appendChild(c)}return l}return null}const h=document.createElement("div");for(const s of Array.from(p.body.childNodes)){const n=f(s);n&&h.appendChild(n)}return h.innerHTML}function y(t){try{const e=m.parse(t);return u(e)}catch(e){return t}}function b(t){try{const e=JSON.parse(t);return JSON.stringify(e,null,2)}catch(e){return t}}function M(t){try{const e=JSON.parse(t);return typeof e=="string"?e:JSON.stringify(e,null,2)}catch(e){return t}}function v(t){return!t.todoItems||t.todoItems.length===0?!1:t.todoItems.every(e=>e.status==="completed"||e.status==="cancelled")}function O(t,e,d){var f,h;if(e.length===0&&d.length===0)return y(t);let r=u(t);const g=new Map;for(const s of e){const n=u(s.value),i='<span class="file-tag truncate" title="'.concat(u(s.path),'">').concat(n,"</span>"),l=(f=g.get(n))!=null?f:0,a=r.indexOf(n,l);a!==-1&&(r=r.substring(0,a)+i+r.substring(a+n.length),g.set(n,a+i.length))}const p=new Map;for(const s of d){const n=u(s.value),i='<span class="site-tag truncate" title="'.concat(u(s.name),'">').concat(n,"</span>"),l=(h=p.get(n))!=null?h:0,a=r.indexOf(n,l);a!==-1&&(r=r.substring(0,a)+i+r.substring(a+n.length),p.set(n,a+i.length))}return r.replace(/\n/g,"<br>")}function T(t){if(t===0)return"0 B";const e=1024,d=["B","KB","MB","GB"],r=Math.floor(Math.log(t)/Math.log(e));return parseFloat((t/Math.pow(e,r)).toFixed(2))+" "+d[r]}function x(t){return t.replace(/[<>:"/\\|?*\x00-\x1f]/g,"_")}export{M as a,T as b,b as f,v as i,y as p,O as r,x as s};