import{_ as e}from"./index.C4md7FlI.js";import{u as t,l as a,j as n,F as s,aa as l,an as i,a4 as r,ab as o,i as u,ah as d,g as c,S as v,a2 as g,x as m,a8 as p}from"./vue-vendor.CbU-cCHr.js";import{r as f,a_ as h,bl as b,ak as y,T as I}from"./index.BFRcEQe4.js";import{g as S,S as w,a as N}from"./client.CcS_NtGY.js";const _={class:"smart-reply-list"},T=["onClick"],k={class:"smart-reply-text"},M=f(t({__name:"SmartReplyList",props:{items:{default:()=>[]},loading:{type:Boolean,default:!1}},emits:["select"],setup(t,{emit:v}){const g=t,m=v,p=c(()=>g.items||[]);return(c,v)=>{const g=e;return r(),a("div",_,[t.loading?(r(),n(g,{key:0})):(r(!0),a(s,{key:1},l(i(p),(e,t)=>(r(),a("button",{key:`${t}-${e}`,type:"button",class:"smart-reply-item",onClick:t=>(e=>{const t=String(e||"").trim();t&&m("select",t)})(e)},[o(c.$slots,"prefix",{item:e},void 0,!0),u("span",k,d(e),1),o(c.$slots,"suffix",{item:e},void 0,!0)],8,T))),128))])}}}),[["__scopeId","data-v-f15cbd24"]]),x=e=>e.replace(/&/g,"&").replace(/</g,"<").replace(/>/g,">").replace(/"/g,""").replace(/'/g,"'"),$=e=>`<span class="dim">${x(e)}</span>`,E=[{pattern:/\r\n|\r|\n/g,render:()=>"<br>"},{pattern:/\*\*\*\*([\s\S]+?)\*\*\*\*/g,render:e=>`<strong><em>${x(e[1]||"")}</em></strong>`},{pattern:/\*\*([\s\S]+?)\*\*/g,render:e=>`<strong>${x(e[1]||"")}</strong>`},{pattern:/(^|[^A-Za-z0-9])'([^'\r\n]+)'(?![A-Za-z0-9])/g,render:e=>`${x(e[1]||"")}<em>${x(e[2]||"")}</em>`},{pattern:/\(([^()\r\n]+)\)/g,render:e=>`<em>${x(e[1]||"")}</em>`},{pattern:/"([^"\r\n]+)"/g,render:e=>x(e[1]||"")},{pattern:/\[([^\]\r\n]+)\]/g,render:e=>$(e[1]||"")},{pattern:/ã€([^】\r\n]+)】/g,render:e=>$(e[1]||"")}],U=/<\/?(?:em|strong)\s*>|<span\s+class=(["'])dim\1\s*>|<\/span\s*>|<br\s*\/?>/gi,C=(e,t)=>{let a=((e,t)=>{U.lastIndex=t;const a=U.exec(e);if(!a)return null;const n=(s=a[0],/^<em\s*>$/i.test(s)?"<em>":/^<\/em\s*>$/i.test(s)?"</em>":/^<strong\s*>$/i.test(s)?"<strong>":/^<\/strong\s*>$/i.test(s)?"</strong>":/^<br\s*\/?>$/i.test(s)?"<br>":/^<span\s+class=(["'])dim\1\s*>$/i.test(s)?'<span class="dim">':/^<\/span\s*>$/i.test(s)?"</span>":null);var s;return n?{index:a.index,length:a[0].length,html:n,priority:0}:null})(e,t);return E.forEach((n,s)=>{n.pattern.lastIndex=t;const l=n.pattern.exec(e);var i,r;l&&(i=a,r={index:l.index,length:l[0].length,html:n.render(l),priority:s+1},a=!i||r.index<i.index||r.index===i.index&&r.priority<i.priority?r:i)}),a},L=e=>(e=>{let t=0,a="";for(;t<e.length;){const n=C(e,t);if(!n){a+=x(e.slice(t));break}a+=x(e.slice(t,n.index)),a+=n.html,t=n.index+n.length}return a})(String(e??"")),A=["innerHTML"],D=f(t({__name:"index",props:{content:{}},setup(e){const t=e,n=c(()=>L(t.content));return(e,t)=>(r(),a("span",{class:"chat-rich-text",innerHTML:n.value},null,8,A))}}),[["__scopeId","data-v-a8520ff6"]]),O=f(t({__name:"index",props:{variant:{default:"interact"}},setup:e=>(t,n)=>(r(),a("div",{class:v(["chat-typing-indicator",`chat-typing-indicator--${e.variant}`])},[...n[0]||(n[0]=[u("div",{class:"chat-typing-indicator__content"},[u("span",{class:"chat-typing-indicator__dot"}),u("span",{class:"chat-typing-indicator__dot"}),u("span",{class:"chat-typing-indicator__dot"})],-1)])],2))}),[["__scopeId","data-v-ef8f9abc"]]),R=new Map,P=new Map;async function j(e,t=3e4){const a=R.get(e);if(a)return a;let n=P.get(e);return n||(n=(async()=>{const a=new AbortController,n=setTimeout(()=>a.abort(),t);try{const t=await fetch(e,{signal:a.signal});if(!t.ok)throw new Error(`Failed to fetch video: ${t.status}`);const n=await t.blob(),s=URL.createObjectURL(n);return R.set(e,s),s}finally{clearTimeout(n),P.delete(e)}})(),P.set(e,n),n)}function q(e){for(const[t,a]of R)if(a===e){R.delete(t);break}URL.revokeObjectURL(e)}function G(){for(const e of R.values())URL.revokeObjectURL(e);R.clear(),P.clear()}function H(e){return e.startsWith("blob:")}const F=1e3,Y=500,V=2e3,z=3e4,B=2e3,K=3e5,W=20,Z=50,Q=500,X=1e4;function J(e){const{botId:t,onNewMessages:a,onStatusChange:n,onGoldCoinsUpdate:s,onGreetingTrigger:l,onHotpointUpdate:i,onStageVideoParse:r,onFloatingNotice:o,onError:u,onIntimacyReset:d,onPullSignals:v}=e,f=(["1","true","on"].includes(String("false").trim().toLowerCase()),S()),_=p(null),T=p(0),k=p("idle"),M=p(!1),x=p(0),$=p(0),E=p(!1),U=p(!1),C=p([]),L=p([]),A=p(!1);let D=null;const O=c(()=>{if(!M.value)return B;if(Date.now()-$.value>=z)return V;const e=F+x.value*Y;return Math.min(e,V)}),R=e=>{switch(e.code){case N.MSG_NEW:{const a=e.data,n=Number((null==a?void 0:a.botId)??0),s=Number((null==a?void 0:a.msgType)??0),l=String((null==a?void 0:a.messageId)||"").trim(),i=String((null==a?void 0:a.interactionType)||"").trim(),r=String((null==a?void 0:a.interactionName)||"").trim();if(n!==t||!l)break;if(!(13!==s||i&&r))break;C.value.push(l);break}case N.STATUS_CHANGE:{const a=e.data;if((null==a?void 0:a.botId)===t&&(null==a?void 0:a.status)){const e=a.status;e!==k.value&&(k.value=e,n(e))}break}case N.STAGE_VIDEO_PARSE:{const a=e.data,n=Number((null==a?void 0:a.botId)??0),s=Number((null==a?void 0:a.msgType)??0),l=Number((null==a?void 0:a.sourceType)??0),i=String((null==a?void 0:a.videoUrl)||"").trim(),o=String((null==a?void 0:a.audioUrl)||"").trim(),u=null==a?void 0:a.isInserted;e.code,e.seq,n===t&&13===s&&2===l&&(i||o)&&"boolean"==typeof u&&(null==r||r({...a,signalSeq:e.seq,videoUrl:i||void 0,audioUrl:o||void 0}));break}case N.HOTPOINT_UPDATE:{const a=e.data;if(Number((null==a?void 0:a.botId)??0)!==t)break;const n=Number((null==a?void 0:a.hotpoint)??(null==a?void 0:a.heatValue)??NaN);Number.isFinite(n)&&n>=0&&(null==i||i(n));break}case N.FLOATING_NOTICE:{const a=e.data,n=Number((null==a?void 0:a.botId)??0);if(n!==t)break;const s=String((null==a?void 0:a.userName)??"").trim(),l=String((null==a?void 0:a.giftName)??"").trim(),i=String((null==a?void 0:a.interactionName)??"").trim(),r=String((null==a?void 0:a.announcementText)??"").trim();if(!l||!i||!r)break;null==o||o({botId:n,userName:s,giftName:l,interactionName:i,announcementText:r,scene:String((null==a?void 0:a.scene)??"").trim()||void 0,sessionId:String((null==a?void 0:a.sessionId)??"").trim()||void 0});break}case N.GOLD_COINS_UPDATE:{const t=e.data,a=Number((null==t?void 0:t.currentBalance)??NaN);Number.isFinite(a)&&a>=0&&(null==s||s(a,t));break}case N.SYS_NOTIFY:case N.SYS_KICK:break;case N.INTIMACY_RESET:null==d||d(e.data)}},P=function(e,t){const a=!!m(),{interval:n,immediate:s=!0,pauseOnHidden:l=!0}=t,i=p(!1),r=p(null),o=p(n),u=p(!1),d=p(!1),c=p(!1),v=()=>{i.value&&(r.value=window.setTimeout(f,o.value))},f=async()=>{if(i.value&&!d.value){d.value=!0;try{await e()}catch(t){}finally{d.value=!1}if(i.value)return c.value?(c.value=!1,void f()):void v()}},h=()=>{i.value||(i.value=!0,c.value=!1,s?f():v())},b=()=>{i.value=!1,c.value=!1,null!==r.value&&(clearTimeout(r.value),r.value=null)},y=()=>{if(document.hidden)return u.value=i.value,void(i.value&&b());u.value&&!i.value&&h()};return l&&(document.addEventListener("visibilitychange",y),a&&g(()=>{document.removeEventListener("visibilitychange",y)})),a&&g(b),{isPolling:i,currentInterval:o,start:h,stop:b,setInterval:e=>{o.value=e},triggerNow:async()=>{i.value&&(d.value?c.value=!0:(null!==r.value&&(clearTimeout(r.value),r.value=null),await f()))}}}(async()=>{try{const e=L.value.length>0?[...L.value]:void 0,t=!A.value,n=await w.pullSignals(T.value>0?T.value:void 0,W,e,t);if(t&&n.success&&(A.value=!0),e&&n.success&&(L.value=[]),!n.success){if(888===n.code||887===n.code||n.errMsg&&n.errMsg.toLowerCase().includes("token")){if(888===n.code)try{return await h(),void P.setInterval(B)}catch{}return P.stop(),b().showLoginDialog=!0,void(null==u||u(new Error("AUTH_EXPIRED")))}return void P.setInterval(B)}const i=n.signals||[];null==v||v(i,n),i.length>0&&(i.length,i.map(e=>e.code),n.hasMore,T.value),C.value=[];for(const a of i)R(a),a.seq>T.value&&(T.value=a.seq),a.seq&&L.value.push(a.seq);if(L.value.length>=Z)return void P.triggerNow();if(C.value.length>0&&await(async e=>{var t;if(0!==e.length&&!U.value){U.value=!0;try{const n=await w.fetchMessages(e);if(n.success&&(null==(t=n.data)?void 0:t.messages)){const e=n.data.messages;if(e.length>0){const t=e[e.length-1];t.id&&(_.value=t.id),a(e),void 0!==t.goldCoins&&s&&s(t.goldCoins)}}}catch(n){null==u||u(n)}finally{U.value=!1}}})(C.value),M.value){x.value++;if(Date.now()-$.value>=K)return null==l||l(),void q();if("idle"===k.value&&C.value.length>0)return void q()}if(n.hasMore)return void P.triggerNow();P.setInterval(O.value)}catch(e){if(888===(null==e?void 0:e.code)||887===(null==e?void 0:e.code))P.stop();else if(0===(null==e?void 0:e.code));else if(y(I))try{await h()}catch{}null==u||u(e),P.isPolling.value&&P.setInterval(B)}},{interval:B,immediate:!0,pauseOnHidden:!0}),j=()=>{M.value=!0,x.value=0,$.value=Date.now(),P.setInterval(F)},q=()=>{M.value=!1,x.value=0,P.setInterval(B)};return{botStatus:k,isActive:M,lastMsgId:_,deviceId:f,isPolling:P.isPolling,start:P.start,stop:P.stop,sendMessage:async(e,a=1,n)=>{var s;const l=`${Date.now()}-${(null==(s=crypto.randomUUID)?void 0:s.call(crypto))||Math.random().toString(36).substr(2,9)}`,i=await w.sendMessage(t,e,a,l,n);if(!i.success)throw new Error(i.errMsg||"Send message failed");j(),P.triggerNow();const r=i.data||{};return{messageId:r.messageId||"",taskId:r.taskId||"",status:r.status||"",clientMsgId:l}},setActiveMode:j,setIdleMode:q,setGiftMode:()=>{D&&(clearTimeout(D),D=null),M.value=!0,x.value=0,$.value=Date.now(),P.setInterval(Q),D=setTimeout(()=>{D=null,q()},X)},initLastMsgId:e=>{_.value=e},syncNewMessages:async()=>{var e;if(!E.value){E.value=!0;try{const n=await w.syncMessages(t,_.value||void 0,20);if(_.value,n.success&&(null==(e=n.data)?void 0:e.messages)){const e=n.data.messages;if(e.length>0){n.data.lastMsgId&&(_.value=n.data.lastMsgId),a(e);const t=e[e.length-1];void 0!==t.goldCoins&&s&&s(t.goldCoins)}}}catch(n){null==u||u(n)}finally{E.value=!1}}},ackRead:async e=>{try{await w.ackRead(t,e||_.value||void 0,Math.floor(Date.now()/1e3))}catch(a){}},reset:()=>{D&&(clearTimeout(D),D=null),_.value=null,T.value=0,k.value="idle",M.value=!1,x.value=0,$.value=0,C.value=[],L.value=[],A.value=!1,P.setInterval(B)},flushAndStop:()=>{if(L.value.length>0){const e=[...L.value];L.value=[],w.pullSignals(T.value>0?T.value:void 0,1,e,!1).catch(()=>{})}P.stop()}}}export{D as C,M as S,O as a,G as c,j as f,H as i,q as r,J as u};