k2-im 0.1.39 → 0.1.40

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- import {h,C,p,i,q,m,z,B,o,j,g}from'./chunk-I7RLO6MT.js';import {f,h as h$2,i as i$1,g as g$1}from'./chunk-A5WA7S7J.js';import'./chunk-5KHSKIN3.js';import'./chunk-SRMSBFOP.js';import'./chunk-54HSPG2Z.js';import'./chunk-WOT6VMZA.js';import {defineComponent,h as h$1,ref,provide,watch,nextTick,onMounted,onBeforeUnmount,computed,inject,isVNode,cloneVNode,Fragment,reactive}from'vue';function $t(t){let i=0,p=0;for(let u of t)u.kind==="video"?p+=1:i+=1;return {imageCount:i,videoCount:p}}function Xt(t){return {systemMessage:i=>i.body.system!==void 0?g$1(i.body.system,{locale:t.locale(),resolveName:t.resolveName,selfId:t.selfId()}):"",mediaPlaceholder:i=>i$1(i.contentType,{locale:t.locale(),durationMs:i.body.voice?.durationMs,stickerImageType:i.body.sticker?.imageType,gameType:i.body.game?.gameType,callKind:i.body.call?.callKind,...i.body.filesAlbum===void 0?{}:{filesAlbum:{count:i.body.filesAlbum.items.length,caption:i.body.filesAlbum.caption}},...i.body.mediaAlbum===void 0?{}:{mediaAlbum:$t(i.body.mediaAlbum.items)}}),lastMessage:i=>i.lastMessageSummary!==void 0?h$2(i.lastMessageSummary,{locale:t.locale(),resolveName:t.resolveName,selfId:t.selfId()}):i.lastMessagePreview,failureText:i=>i.failure?.displayCode!==void 0?f(i.failure.displayCode,{locale:t.locale(),mediaKind:i.failure.mediaKind,params:i.failure.params}):i.failure?.message??""}}var Ct=Symbol("ImThreadReadActions");function Nt(t){provide(Ct,t);}function Zt(){return inject(Ct,void 0)}var rt=defineComponent({name:"ImThreadBodySwitch",inheritAttrs:false,props:{message:{type:Object,required:true},rendererRegistry:{type:Object,required:true},presentation:{type:Object,default:void 0},readActions:{type:Object,default:void 0}},setup(t,{attrs:i,slots:p}){return Nt(t.readActions),()=>{let u=h(t.message),m=t.rendererRegistry.resolve(u);return m!==void 0?h$1(m,{...i,message:t.message,presentation:t.presentation}):p["unsupported-body"]!==void 0?p["unsupported-body"]({kind:u,message:t.message}):h$1("span",{"data-im-thread-unsupported-body":u,"aria-hidden":"true"})}}});var ot=Symbol("ImThreadViewportRegistration");function Ht(){return inject(ot,void 0)}var it=defineComponent({name:"ImThreadItems",props:{items:{type:Array,required:true},rendererRegistry:{type:Object,required:true},presentation:{type:Object,default:void 0},readActions:{type:Object,default:void 0}},setup(t,{slots:i}){let p=Ht();function u(o,v){let B=Array.isArray(v)?v:[v];return B.length===1&&isVNode(B[0])?cloneVNode(B[0],{key:o}):h$1(Fragment,{key:o},B)}function m(o){return v=>{p?.registerMessageNode(o,v instanceof HTMLElement?v:null);}}function N(o,v){return B=>{p?.registerDateNode(o,v,B instanceof HTMLElement?B:null);}}function j(o){return i.encryption?.({item:o})??h$1("div",{"data-im-thread-encryption":o.key})}function h(o){let v=N(o.key,o.label);return i["date-separator"]?.({item:o,setElement:v})??h$1("div",{ref:v,"data-im-thread-date-separator":o.key},o.label)}function P(o){p?.registerEntryUnreadNode(o instanceof HTMLElement?o:null);}function T(o){return i["entry-unread"]?.({item:o,setElement:P})??h$1("div",{ref:P,"data-im-thread-entry-unread":o.key,...o.count===void 0?{}:{"data-count":String(o.count)}})}function O(o){let v=m(o.message.id);return i.item!==void 0?i.item({item:o,setElement:v}):i.message!==void 0?i.message({item:o,setElement:v}):o.message.deletedForEveryone!==void 0?i["deleted-message"]?.({item:o,setElement:v})??h$1("article",{ref:v,"data-im-thread-message-id":o.message.id,"data-im-thread-message-terminal":"deleted-for-everyone"},[h$1("span",{"data-im-thread-anchor-point":""})]):o.message.recalled!==void 0?i["recalled-message"]?.({item:o,setElement:v})??h$1("article",{ref:v,"data-im-thread-message-id":o.message.id,"data-im-thread-message-terminal":"recalled"},[h$1("span",{"data-im-thread-anchor-point":""})]):o.kind==="system"&&i.system!==void 0?i.system({item:o,setElement:v}):h$1("article",{ref:v,"data-im-thread-message-id":o.message.id,"data-first-of-run":o.kind==="message"?String(o.firstOfRun):void 0},[h$1("span",{"data-im-thread-anchor-point":""}),h$1(rt,{message:o.message,rendererRegistry:t.rendererRegistry,presentation:t.presentation,readActions:t.readActions},{"unsupported-body":i["unsupported-body"]===void 0?void 0:B=>i["unsupported-body"]?.(B)})])}return ()=>h$1("div",{"data-im-thread-items":""},t.items.map(o=>{switch(o.kind){case "encryption":return i.item!==void 0?u(o.key,i.item({item:o})):u(o.key,j(o));case "date-separator":return i.item!==void 0?u(o.key,i.item({item:o,setElement:N(o.key,o.label)})):u(o.key,h(o));case "entry-unread":return i.item!==void 0?u(o.key,i.item({item:o,setElement:P})):u(o.key,T(o));case "system":case "message":return u(o.key,O(o))}return o}))}});var Ft=120,fn=500,Ue=.5,mn=8;function at(t){let i=t.ownerDocument.defaultView?.devicePixelRatio;return 1+1/(i!==void 0&&Number.isFinite(i)&&i>0?i:1)}var st=defineComponent({name:"ImThreadViewport",props:{messageIds:{type:Array,required:true},contentKey:{type:String,default:""},loadingOlder:{type:Boolean,default:false},hasNewer:{type:Boolean,default:false},loadingNewer:{type:Boolean,default:false},followThreshold:{type:Number,default:120},olderPrefetchThreshold:{type:Number,default:120},followNewMessages:{type:Boolean,default:true},shouldFollowAppendedMessage:{type:Function,default:void 0},visibleMargin:{type:Number,default:8},resizeFollowEnabled:{type:Boolean,default:true},activeDateOffset:{type:Number,default:16},activeDateEnabled:{type:Boolean,default:false}},emits:{"reach-start":()=>true,"reach-end":()=>true,"visible-range":t=>true,settled:t=>true,"new-message-count":t=>true,"user-scroll":()=>true,"active-date-change":t=>true},setup(t,{emit:i,expose:p$1,slots:u}){let m$1=ref(null),N=ref(null),j$1=new Map,h,P=new Map,T=new Set,O=new Map,o$1=0,v=[],B$1,S,E,k,$=false,W,Q=new Set,G=false,U,Z="",ie=1,z$1=false,ne=false,H=true,K=false,te=false,re=false,X=0,s=-1,ae=-1,Y,L,ee,V,C$1,f=ref(true),I=ref(0),y=C(e=>{I.value=e,i("new-message-count",e);});function D(e){let r=Number.isFinite(t.followThreshold)?Math.max(0,t.followThreshold):0;return e.scrollHeight-e.clientHeight-e.scrollTop<=r}function b(e=t.messageIds){return e.flatMap(r=>{let a=j$1.get(r);if(a===void 0)return [];let g=a.getBoundingClientRect(),M=a.querySelector("[data-im-thread-anchor-point]");return [{id:r,top:g.top,bottom:g.bottom,anchorTop:M?.getBoundingClientRect().top??g.top}]})}function J(e="",r=1){let a=Math.min(1,Math.max(0,r));Z!==""&&Z!==e&&O.get(Z)?.element.style.removeProperty("opacity"),Z=e,ie=a,e!==""&&O.get(e)?.element.style.setProperty("opacity",String(a));}function A(){J();}function q$1(){let e=m$1.value;if(G||e===null||!t.activeDateEnabled)return;let r=[...O.entries()].filter(([,_])=>e.contains(_.element)).map(([_,x])=>{let le=x.element.getBoundingClientRect();return {key:_,label:x.label,top:le.top,height:le.height}}).sort((_,x)=>_.top-x.top),a=e.getBoundingClientRect(),g$1=r.find(_=>_.height>0)?.height??28,M=g({markers:r,viewportTop:a.top,overlayTop:Number.isFinite(t.activeDateOffset)?Math.max(0,t.activeDateOffset):0,overlayHeight:g$1});if(M===null){A(),i("active-date-change",null);return}J(M.inlineDateKey,M.inlineOpacity),i("active-date-change",M);}function We(e){S={scrollTop:e.scrollTop,scrollHeight:e.scrollHeight,width:e.clientWidth,height:e.clientHeight};}function Ve(e){let r=S;if(r===void 0)return false;let a=Math.max(0,e.scrollHeight-e.clientHeight);return a<r.scrollHeight-r.height&&r.scrollTop>a&&Math.abs(e.scrollTop-a)<=at(e)}function Qe(e){return Ve(e)||U!==void 0&&(U.behavior==="smooth"||Math.abs(e.scrollTop-U.targetTop)<=at(e))?0:e.scrollTop-o$1}function Ge(e,r){r!==0&&(o$1=e.scrollTop-r,U=void 0,Ke());}function ze(e,r){let a=Qe(e);if(V!==void 0)return V.expectedOffset-=a,qe(),Ge(e,a),K||He(),false;let g=S;if(g===void 0)return false;let M=B$1,_=M===void 0?void 0:b([M.id])[0],x=e.scrollTop-g.scrollTop,le=Ve(e)?0:x,be=M===void 0||_===void 0?0:(_.anchorTop??_.top)-r.top-M.offset+x;return g.scrollHeight!==e.scrollHeight||g.width!==e.clientWidth||g.height!==e.clientHeight||Math.abs(be)>Ue?(S=void 0,!z$1&&!t.loadingNewer&&!t.hasNewer&&t.resizeFollowEnabled&&f.value&&Math.abs(le)<=Ue?(Fe(),true):(M!==void 0&&ge({...M,offset:M.offset-le}),Ge(e,a),false)):false}function Ce(){let e=m$1.value;if(G||e===null)return;let r=e.getBoundingClientRect();if(ze(e,r))return;let a=k!==void 0&&$?t.messageIds.filter(x=>T.has(x)):t.messageIds,g=b(a);if(k!==void 0&&$&&g.length===0){f.value=D(e);return}let M=g.filter(x=>B({viewportTop:r.top,viewportBottom:r.bottom,messageTop:x.top,messageBottom:x.bottom,margin:t.visibleMargin})).map(x=>x.id),_=M.length!==v.length||M.some((x,le)=>v[le]!==x);v=Object.freeze(M),B$1=o(g,{top:r.top,bottom:r.bottom}),We(e),y.acknowledgeVisible(M),f.value=D(e),_&&i("visible-range",v),i("settled",{visibleMessageIds:v,...v.length===0?{}:{newestVisibleMessageId:v[v.length-1]},isAtBottom:f.value,newMessageCount:I.value});}function ce(e){if(Q.add(e),W!==void 0)return;let r=()=>{W=void 0;let a=[...Q];Q.clear(),a.forEach(g=>g());};typeof globalThis.requestAnimationFrame=="function"?W=globalThis.requestAnimationFrame(r):W=globalThis.setTimeout(r,0);}function _e(){W!==void 0&&(typeof W=="number"&&typeof globalThis.cancelAnimationFrame=="function"?globalThis.cancelAnimationFrame(W):globalThis.clearTimeout(W),W=void 0,Q.clear());}function pe(){ce(Ce);}function Ze(){let e=m$1.value;if(e===null)return;let r=e.getBoundingClientRect(),a=o(b(),{top:r.top,bottom:r.bottom});a!==void 0&&(B$1=a,We(e));}function Ye(){return H&&V===void 0&&!ne&&!t.loadingOlder}function je(){Ze(),H=false,s=X,ne=true,i("reach-start"),ce(()=>{t.loadingOlder||(ne=false);});}function oe(e){return t.hasNewer&&!z$1&&!t.loadingOlder&&!t.loadingNewer&&D(e)}function Ne(){z$1=true,f.value=false,ae=X,i("reach-end"),ce(()=>{t.loadingNewer||(z$1=false);});}function ke(){let e=m$1.value;e===null||X===ae||!oe(e)||Ne();}function Ke(){let e=m$1.value;if(G||e===null)return;let r=e.scrollTop,a=Ve(e),g=U,M=false;if(g!==void 0){let x=Math.abs(r-g.targetTop)<=at(e);M=g.behavior==="smooth"||x,(g.behavior!=="smooth"||x)&&(U=void 0);}!M&&!a&&!K&&V===void 0&&r!==o$1&&(K=true,te=true,X+=1);let _=K&&!M&&!a&&r!==o$1;if(_&&(i("user-scroll"),ce(q$1)),K&&!re&&l(),!H&&te&&X!==s&&r<o$1&&r>Pe()&&(H=true),V!==void 0&&!M)if(K){let x=se();x!==void 0&&(V.expectedOffset=x);}else qe(),He();Ye()&&_&&r>=0&&m({previousScrollTop:o$1,currentScrollTop:r,topThreshold:t.olderPrefetchThreshold})&&je(),_&&oe(e)&&z({previousScrollTop:o$1,currentScrollTop:r,isAtBottom:D(e),isHistoryWindow:t.hasNewer,isPageSettling:M})&&Ne(),o$1=r,pe();}function Me(e,r="auto"){U={targetTop:e,behavior:r};}function Re(e){let r=V,a=N.value;if(!(r===void 0||a===null)){if(r.visualOffset=Math.abs(e)<=Ue?0:e,r.visualOffset===0){a.style.removeProperty("transform"),a.style.removeProperty("will-change");return}a.style.setProperty("transform",`translate3d(0, ${r.visualOffset}px, 0)`),a.style.setProperty("will-change","transform");}}function ye(){C$1!==void 0&&(clearTimeout(C$1),C$1=void 0),V!==void 0&&V.visualOffset!==0&&(B$1=void 0,S=void 0);let e=N.value;e?.style.removeProperty("transform"),e?.style.removeProperty("will-change"),V=void 0,U=void 0;}function se(){let e=m$1.value,r=V;if(e===null||r===void 0)return;let a=b().find(g=>g.id===r.anchor.id);if(a!==void 0)return (a.anchorTop??a.top)-e.getBoundingClientRect().top}function qe(){let e=V,r=se();if(e===void 0||r===void 0)return;let a=e.expectedOffset-r;Math.abs(a)<=Ue||(Re(e.visualOffset+a),e.committed=false,e.attempts=0);}function Te(){C$1!==void 0&&clearTimeout(C$1),C$1=setTimeout(()=>{C$1=void 0,!(K||V?.committed!==true)&&ye();},fn);}function Se(){let e=m$1.value,r=V;if(G||e===null||r===void 0||K)return;let a=r.visualOffset;if(Math.abs(a)<=Ue){r.committed=true,Te();return}let g=Math.max(0,e.scrollHeight-e.clientHeight),M=Math.min(g,Math.max(0,e.scrollTop-a));if(Me(M),e.scrollTop=M,Math.abs(e.scrollTop-M)>Ue){U=void 0,r.committed=false,r.attempts+=1,r.attempts<mn?He():(ye(),U=void 0,o$1=e.scrollTop);return}Re(0),o$1=e.scrollTop,r.expectedOffset=se()??r.expectedOffset,r.committed=true,r.attempts=0,Te();}function He(){C$1!==void 0&&clearTimeout(C$1),C$1=setTimeout(()=>{C$1=void 0,Se();},Ft);}function Le(e){e!==void 0&&(V===void 0&&(V={anchor:e,expectedOffset:e.offset,visualOffset:0,committed:false,attempts:0}),qe(),!K&&Se());}function ge(e){let r=m$1.value;if(r===null||e===void 0)return;let a=r.getBoundingClientRect(),g=q(e,b(),{top:a.top,bottom:a.bottom});if(g!==void 0){let M=Math.max(0,r.scrollHeight-r.clientHeight),_=Math.min(M,Math.max(0,r.scrollTop+g));Me(_),r.scrollTop=_,o$1=r.scrollTop,S=void 0;}}function Pe(){return Number.isFinite(t.olderPrefetchThreshold)?Math.max(0,t.olderPrefetchThreshold):0}function De(){U?.behavior==="smooth"&&(U=void 0),te=false,K||(K=true,X+=1),Y!==void 0&&(clearTimeout(Y),Y=void 0);}function xe(){let e=m$1.value;e===null||X===s||(V!==void 0&&ye(),H=true,e.scrollTop<=Pe()&&Ye()&&je());}function n(){B$1=void 0,S=void 0,Y!==void 0&&(clearTimeout(Y),Y=void 0),ye(),K=false,te=false,re=false,L=void 0,ee=void 0,X+=1,s=-1,ae=-1,H=true,ne=false,z$1=false,U=void 0;}function d(){re||(Y!==void 0&&(clearTimeout(Y),Y=void 0),K=false,te=false,V!==void 0&&(V.attempts=0),Se());}function l(){re||(Y!==void 0&&clearTimeout(Y),Y=setTimeout(()=>{Y=void 0,d();},Ft));}function c(){U=void 0,d();}function w(e){re=true,De(),L=e.touches?.[0]?.clientY;}function R(e){let r=e.touches?.[0]?.clientY;r!==void 0&&(L!==void 0&&r>L?xe():L!==void 0&&r<L&&ke(),L=r);}function F(){re=false,L=void 0,l();}function ve(e){De(),e.deltaY<0?xe():e.deltaY>0&&ke(),l();}function he(e){e.pointerType!=="touch"&&(De(),ee=e.clientY,l());}function Ee(e){e.pointerType==="touch"||!K||ee===void 0||(e.clientY<ee?xe():e.clientY>ee&&ke(),ee=e.clientY,l());}function fe(e){e.pointerType!=="touch"&&(ee=void 0,l());}function Oe(e){["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," "].includes(e.key)&&(De(),e.key==="ArrowUp"||e.key==="PageUp"||e.key==="Home"||e.key===" "&&e.shiftKey?xe():ke(),l());}function Fe(e="auto"){let r=m$1.value;if(r===null)return;S=void 0,ye();let a=Math.max(0,r.scrollHeight-r.clientHeight);Me(a,e),r.scrollTo?.({top:a,behavior:e}),r.scrollTop!==a&&(r.scrollTop=a),o$1=r.scrollTop,y.clear(),Ce();}function gt(){let e=m$1.value;return e!==null&&e.clientWidth>0&&e.clientHeight>0}function Ut(){let e=m$1.value;return gt()&&e!==null&&e.scrollHeight>e.clientHeight+1}function _t(e,r={}){return vt(j$1.get(e),r)}function vt(e,r){let a=m$1.value;if(a===null||e===void 0||!a.contains(e)||a.clientHeight<=0)return false;ye();let g=a.getBoundingClientRect(),M=e.getBoundingClientRect(),_=r.block??"center",x;_==="start"?x=a.scrollTop+M.top-g.top:_==="end"?x=a.scrollTop+M.bottom-g.bottom:_==="nearest"?M.top>=g.top&&M.bottom<=g.bottom?x=a.scrollTop:M.top<g.top?x=a.scrollTop+M.top-g.top:x=a.scrollTop+M.bottom-g.bottom:x=j({currentScrollTop:a.scrollTop,scrollHeight:a.scrollHeight,targetHeight:M.height,targetTop:M.top,viewportHeight:a.clientHeight,viewportTop:g.top});let le=Math.max(0,a.scrollHeight-a.clientHeight),be=Math.min(le,Math.max(0,x));S=void 0;let Be=r.behavior??"auto";return Me(be,Be),a.scrollTo?.({top:be,behavior:Be}),a.scrollTop!==be&&(a.scrollTop=be),o$1=a.scrollTop,Ce(),true}function jt(){let e=m$1.value;if(e===null||h===void 0||!e.contains(h)||e.clientHeight<=0)return null;let r=h.getBoundingClientRect(),a=e.scrollTop+r.top-e.getBoundingClientRect().top+r.height/2,g=e.clientHeight/2;return {older:a<g-1,newer:e.scrollHeight-a<g-1}}function Kt(){y.clear();}function qt(){z$1=true,f.value=false;}function Wt(){z$1=false,pe();}function Gt(e,r){let a=j$1.get(e);if(a!==void 0&&a!==r&&(k?.unobserve(a),E?.unobserve?.(a),P.delete(a),T.delete(e)),r===null){j$1.delete(e),T.delete(e);return}j$1.set(e,r),P.set(r,e),k?.observe(r),E?.observe(r),pe();}function zt(e,r,a){let g=O.get(e);if(a===null){O.delete(e);return}O.set(e,{element:a,label:r}),Z===e&&a.style.setProperty("opacity",String(ie)),g?.element!==a&&(a.dataset.imThreadDateSeparator=e);}return provide(ot,{registerMessageNode:Gt,registerDateNode:zt,registerEntryUnreadNode:e=>{h=e??void 0;}}),watch(()=>t.contentKey,(e,r)=>{if(e===r)return;n();let a=m$1.value;a!==null&&(o$1=a.scrollTop);},{flush:"sync"}),watch(()=>t.messageIds,async(e,r)=>{let a=m$1.value;if(a===null)return;let g=new Set(r);r.length>0&&e.length>0&&!e.some(Ae=>g.has(Ae))&&n();let _=a.getBoundingClientRect(),x=p(B$1,b(),{top:_.top,bottom:_.bottom}),le=f.value,be=r[r.length-1],Be=be===void 0?-1:e.indexOf(be),et=Be<0?[]:e.slice(Be+1).filter(Ae=>!g.has(Ae)),ht=z$1||t.loadingNewer,Yt=e.length===r.length&&e.every(Ae=>g.has(Ae))&&e.some((Ae,tt)=>Ae!==r[tt]);if(await nextTick(),G)return;if(Yt&&le&&t.followNewMessages&&t.resizeFollowEnabled&&!t.hasNewer&&!ht){Fe();return}let pt=r[0];if(pt!==void 0&&e.indexOf(pt)>0&&(ne=false,Le(x)),et.length>0){if(ht){z$1=false,V===void 0&&ge(x),f.value=false,pe();return}(le||et.some(tt=>t.shouldFollowAppendedMessage?.(tt)===true))&&t.followNewMessages?Fe():y.add(et);}pe();},{flush:"pre"}),watch(()=>t.loadingNewer,(e,r)=>{e||!r||!z$1||ce(()=>{t.loadingNewer||(z$1=false);});},{flush:"pre"}),watch(()=>t.loadingOlder,(e,r)=>{e||!r||!ne||ce(()=>{t.loadingOlder||(ne=false);});},{flush:"pre"}),onMounted(()=>{let e=m$1.value;if(e!==null){if(o$1=e.scrollTop,e.addEventListener("scroll",Ke,{passive:true}),e.addEventListener("scrollend",c,{passive:true}),e.addEventListener("touchstart",w,{passive:true}),e.addEventListener("touchmove",R,{passive:true}),e.addEventListener("touchend",F,{passive:true}),e.addEventListener("touchcancel",F,{passive:true}),e.addEventListener("wheel",ve,{passive:true}),e.addEventListener("pointerdown",he,{passive:true}),e.addEventListener("pointermove",Ee,{passive:true}),e.addEventListener("pointerup",fe,{passive:true}),e.addEventListener("pointercancel",fe,{passive:true}),e.addEventListener("keydown",Oe),typeof globalThis.ResizeObserver=="function"){E=new globalThis.ResizeObserver(()=>{G||m$1.value===null||Ce();}),E.observe(e),N.value!==null&&E.observe(N.value);for(let r of j$1.values())E.observe(r);}if(typeof globalThis.IntersectionObserver=="function"){k=new globalThis.IntersectionObserver(r=>{for(let a of r){let g=P.get(a.target);g!==void 0&&(a.isIntersecting?T.add(g):T.delete(g));}$=true,pe();},{root:e,rootMargin:`${Number.isFinite(t.visibleMargin)?Math.max(0,t.visibleMargin):0}px 0px`});for(let r of j$1.values())k.observe(r);}pe();}}),onBeforeUnmount(()=>{G=true;let e=m$1.value;e!==null&&e.removeEventListener("scroll",Ke),e!==null&&(e.removeEventListener("scrollend",c),e.removeEventListener("touchstart",w),e.removeEventListener("touchmove",R),e.removeEventListener("touchend",F),e.removeEventListener("touchcancel",F),e.removeEventListener("wheel",ve),e.removeEventListener("pointerdown",he),e.removeEventListener("pointermove",Ee),e.removeEventListener("pointerup",fe),e.removeEventListener("pointercancel",fe),e.removeEventListener("keydown",Oe)),Y!==void 0&&clearTimeout(Y),ye(),_e(),E?.disconnect(),k?.disconnect(),A(),h=void 0,j$1.clear(),P.clear(),T.clear(),O.clear(),y.clear();}),p$1({getViewportElement:()=>m$1.value,clearNewMessageBadge:Kt,clearActiveDate:A,isAtBottom:computed(()=>f.value),isMeasurable:gt,isScrollable:Ut,newMessageCount:computed(()=>I.value),prepareHistoryPageAppend:qt,cancelHistoryPageAppend:Wt,trackRemoteMessageIds:(e,r)=>y.trackRemote(e,r),scrollToLatest:Fe,scrollToMessage:_t,scrollToEntryUnread:()=>vt(h,{block:"center",behavior:"auto"}),getEntryUnreadCenteringNeeds:jt,focusViewport:()=>m$1.value?.focus({preventScroll:true})}),()=>h$1("div",{ref:m$1,"data-im-thread-viewport":"",role:"log",tabindex:-1},[h$1("div",{ref:N,"data-im-thread-viewport-content":""},u.default?.())])}});var Bt=Symbol("ImThreadSurfaceContext");function hn(t){if(typeof t.getState!="function")throw new TypeError("ImThreadSurfaceContext.getState \u5FC5\u987B\u662F\u51FD\u6570");if(typeof t.actions?.loadOlder!="function")throw new TypeError("ImThreadSurfaceContext.actions.loadOlder \u5FC5\u987B\u662F\u51FD\u6570");if(typeof t.formatDate!="function")throw new TypeError("ImThreadSurfaceContext.formatDate \u5FC5\u987B\u662F\u51FD\u6570");return Object.freeze({...t,actions:Object.freeze({...t.actions})})}function pn(t){provide(Bt,t);}function lt(){let t=inject(Bt);if(t===void 0)throw new Error("ImThreadSurface \u9700\u8981\u663E\u5F0F context prop \u6216 provideImThreadSurfaceContext");return t}var ut=Object.freeze({followThreshold:120,olderPrefetchThreshold:120,visibleReadDelay:300,visibleMargin:8,activeDateOffset:16,activeDateIdleDelay:1500}),ct=Object.freeze({enabled:true,maxFillPages:8}),bn=8,In=160;function wn(t,i){return t?.conversationType===i.conversationType&&t.conversationId===i.conversationId}var Mn=defineComponent({name:"ImThreadSurface",props:{conversation:{type:Object,required:true},context:{type:Object,default:void 0},rendererRegistry:{type:Object,required:true},presentation:{type:Object,default:void 0},readActions:{type:Object,default:void 0},viewportOptions:{type:Object,default:()=>({})},initialViewportOptions:{type:Object,default:()=>({})},hooks:{type:Object,default:void 0}},setup(t,{expose:i$1,slots:p}){let u=t.context??lt(),m=ref(null),N=ref(0),j=ref(false),h=ref(false),P,T,O=ref(false),o=ref(false),v=ref(false),B=false,S,E=ref(true),k=[],$,W=0,Q=0,G=null,U="",Z="",ie="",z=false,ne=false,H=ref(false),K=ref(""),te=ref(false),re,X,s=computed(()=>u.getState()),ae=computed(()=>s.value.pageVisible??u.isPageVisible?.()??true),Y=computed(()=>s.value.pageEngaged??u.isPageEngaged?.()??true),L=computed(()=>wn(s.value.activeConversation,t.conversation)),ee=computed(()=>({...ut,...t.viewportOptions})),V=computed(()=>{let n=t.initialViewportOptions.maxFillPages??ct.maxFillPages;return {enabled:t.initialViewportOptions.enabled??ct.enabled,maxFillPages:Number.isFinite(n)?Math.max(0,Math.floor(n)):ct.maxFillPages}}),C=computed(()=>!L.value||!s.value.ready?"":`${t.conversation.conversationType}\0${t.conversation.conversationId}`),f=computed(()=>L.value?i({messages:s.value.messages,entryUnread:s.value.entryUnread,formatDate:u.formatDate,leadingItems:u.leadingItems?.(),beforeMessageItems:u.beforeMessageItems}):[]),I=computed(()=>f.value.flatMap(n=>n.kind==="message"||n.kind==="system"?[n.message.id]:[]));function y(){re!==void 0&&(clearTimeout(re),re=void 0),X!==void 0&&(clearTimeout(X),X=void 0);}function D(n=false){if(y(),te.value=false,n){m.value?.clearActiveDate(),K.value="";return}X=setTimeout(()=>{X=void 0,!te.value&&(m.value?.clearActiveDate(),K.value="");},In);}function b(n){if(n===null){D();return}y(),K.value=n.label,te.value=true;let d=ee.value.activeDateIdleDelay,l=Number.isFinite(d)?Math.max(0,d):ut.activeDateIdleDelay;re=setTimeout(()=>{re=void 0,D();},l);}async function J(n,d,l){t.hooks?.beforeAction?.(n);try{let c=await d();return l?.()!==!1&&t.hooks?.afterAction?.(n,c),c}catch(c){throw l?.()!==false&&t.hooks?.onError?.(n,c),c}}function A(n="automatic",d){return !L.value||s.value.loading||!s.value.hasOlder?Promise.resolve(0):J({kind:"load-older",source:n},()=>u.actions.loadOlder(),d)}function q(){return We()}function We(n){let d=u.actions.loadNewer,l=s.value.loadingNewer??s.value.loading;return !L.value||l||!s.value.hasNewer||d===void 0?Promise.resolve(0):J({kind:"load-newer"},()=>d(),n)}async function Ve(n){for(let d=0;d<bn;d+=1){if(!L.value)return;let l=n==="older"?s.value.hasOlder:s.value.hasNewer,c=n==="older"?s.value.olderError:s.value.newerError;if(!l||c!==null||(n==="older"?await A("user-scroll"):await q())>0)return;let R=n==="older"?s.value.hasOlder:s.value.hasNewer,F=n==="older"?s.value.olderError:s.value.newerError;if(!R||F!==null)return}}async function Qe(){return !L.value||u.actions.loadNewer===void 0?0:ze({kind:"load-newer"},()=>u.actions.retryNewer?.()??u.actions.loadNewer?.({force:true})??Promise.resolve(0))}async function Ge(){return L.value?ze({kind:"retry-older"},()=>u.actions.retryOlder?.()??u.actions.loadOlder({force:true})):0}async function ze(n,d){let l=C.value,c=++W;G=null,ie="";let w;try{w=await J(n,d);}catch(R){throw se(l,c)&&(ie=l),R}return se(l,c)&&!H.value&&(G=null,Le()),w}async function Ce(){if(!L.value)return false;let n=C.value;Pe();let d=++Q;return ge(true),z=true,U=n,Z=Se(Te()),!await J({kind:"jump-to-latest"},()=>u.actions.jumpToLatest?.()??Promise.resolve(!s.value.isHistoryWindow))||!oe(n,d)||(await nextTick(),!oe(n,d))?false:(m.value?.scrollToLatest(),j.value=true,v.value=false,_e(),true)}function ce(n=false){let d=m.value,l=d?.getViewportElement();o.value=d?.isScrollable()===true;let c=s.value.entryUnreadNavigation;O.value=c?.state==="located"&&k.includes(c.firstMessageId),H.value&&O.value&&(j.value=true);let w=l==null?0:Math.max(0,l.scrollHeight-l.clientHeight-l.scrollTop);v.value=c!==void 0&&w>50,n&&c!==void 0&&l!==null&&l!==void 0&&l.clientHeight>0&&w>=l.clientHeight&&(j.value=true);}function _e(){let n=u.actions.markConversationRead;if(n===void 0||!Y.value||!L.value||!H.value||h.value||B&&(!E.value||s.value.hasNewer)||S!==void 0||s.value.error!==null)return;let d=C.value,l=n().then(()=>{S===l&&d===C.value&&(B=true);}).catch(c=>{!ne&&S===l&&d===C.value&&t.hooks?.onError?.({kind:"mark-conversation-read"},c);}).finally(()=>{S===l&&(S=void 0);});S=l;}async function pe(){let n=u.actions.loadEntryUnread;if(!L.value||h.value||n===void 0)return "cancelled";let d=C.value,l=++Q,c=new AbortController;T=c,P=l,h.value=true,ge(true),z=true;try{let w=await J({kind:"jump-to-entry-unread"},()=>n({signal:c.signal}),()=>oe(d,l));if(!oe(d,l))return "cancelled";if(!w||s.value.entryUnread.state!=="located")return "unavailable";let F=await Ze(d,l);return F&&(j.value=!0),F?"located":oe(d,l)?"unavailable":"cancelled"}catch(w){if(!oe(d,l))return "cancelled";throw w}finally{P===l&&(P=void 0,T=void 0,h.value=false);}}async function Ze(n,d){await nextTick();for(let l=0;l<60;l+=1){if(!oe(n,d))return false;if(m.value?.scrollToEntryUnread())return true;await nextTick(),typeof window<"u"&&typeof window.requestAnimationFrame=="function"&&await new Promise(c=>window.requestAnimationFrame(()=>c()));}return false}function Ye(n){E.value=n.isAtBottom,N.value=n.newMessageCount,ce(),Le();}function je(n,d){return m.value?.scrollToMessage(n,d)??false}function oe(n,d){return !ne&&Q===d&&C.value===n&&L.value}async function Ne(n,d,l,c){for(let w=0;w<60;w+=1){if(!oe(n,d))return false;if(je(l,c))return true;await nextTick(),typeof window<"u"&&typeof window.requestAnimationFrame=="function"&&await new Promise(R=>window.requestAnimationFrame(()=>R()));}return false}async function ke(n,d,l){let c=m.value;if(c===null||!c.isMeasurable()||c.isScrollable())return true;let w=0,R=!s.value.hasOlder,F=!s.value.hasNewer||u.actions.loadNewer===void 0,ve=async()=>(await nextTick(),await nextTick(),Ne(n,d,l,{behavior:"auto",block:"center"})),he=async fe=>{if(!oe(n,d)||w>=V.value.maxFillPages)return false;let Oe=0;if(fe==="older"){if(R||!s.value.hasOlder)return false;Oe=await A(),R=!s.value.hasOlder;}else {if(F||!s.value.hasNewer)return false;c.prepareHistoryPageAppend();try{Oe=await q();}catch(Fe){throw c.cancelHistoryPageAppend(),Fe}Oe<=0&&!s.value.hasNewer&&c.cancelHistoryPageAppend(),F=!s.value.hasNewer;}return w+=1,Oe>0?ve():!(fe==="older"?R:F)};!R&&!await he("older")&&(R=true),!F&&!await he("newer")&&(F=true);let Ee="older";for(;oe(n,d)&&w<V.value.maxFillPages&&c.isMeasurable()&&!c.isScrollable()&&(!R||!F);){let fe=Ee==="older"?R?"newer":"older":F?"older":"newer";Ee=fe==="older"?"newer":"older",await he(fe)||(fe==="older"?R=true:F=true);}return oe(n,d)}async function Ke(n,d={behavior:"auto",block:"center"}){if(!L.value||n==="")return false;let l=C.value;Pe();let c=++Q;if(!I.value.includes(n)){let F=u.actions.loadAround;if(F===void 0||!await J({kind:"locate-message",messageId:n},()=>F(n))||!oe(l,c))return false}return !await Ne(l,c,n,{...d,behavior:"auto"})||!await ke(l,c,n)?false:Ne(l,c,n,d)}function Me(){$!==void 0&&(clearTimeout($),$=void 0);}function Re(){if(Me(),!H.value)return;let n=t.readActions;if(n===void 0&&u.actions.markVisibleMessages===void 0)return;let d=Number.isFinite(ee.value.visibleReadDelay)?Math.max(0,ee.value.visibleReadDelay):ut.visibleReadDelay;$=setTimeout(()=>{if($=void 0,!L.value||!Y.value)return;_e();let l=u.actions.markVisibleMessages;if(l!==void 0){let R=k;l(R).catch(F=>{t.hooks?.onError?.({kind:"visible-range",messageIds:R},F);});return}if(n===void 0)return;let c=k[k.length-1];if(c===void 0)return;let w=n.resolveTarget===void 0?c:n.resolveTarget(c);w!=null&&Promise.resolve(n.markRead(w)).catch(R=>{t.hooks?.onError?.({kind:"visible-range",messageIds:k},R);});},d);}function ye(n){k=Object.freeze([...n]),ce();let d={kind:"visible-range",messageIds:k};t.hooks?.beforeAction?.(d);try{u.actions.onVisibleRange?.(k),t.hooks?.afterAction?.(d,void 0);}catch(l){throw t.hooks?.onError?.(d,l),l}H.value?Re():Le();}function se(n,d){return !ne&&W===d&&C.value===n&&!z}function qe(n,d){se(n,d)&&(U=n,Z=Se(Te()),H.value=true,ce(),_e(),Re());}function Te(){return s.value.entryUnreadNavigation===void 0?s.value.entryUnread:{state:"none"}}function Se(n){return n.state!=="located"?n.state:`${n.state}:${n.firstMessageId}`}async function He(n,d,l){for(let c=0;c<60;c+=1){if(!se(n,d))return false;if(m.value?.scrollToMessage(l,{behavior:"auto",block:"center"})===true)return true;await nextTick(),typeof window<"u"&&typeof window.requestAnimationFrame=="function"&&await new Promise(R=>window.requestAnimationFrame(()=>R()));}return false}function Le(){let n=C.value,d=Se(Te());if(n===""||s.value.loading||s.value.error!==null&&s.value.messages.length===0||U===n&&(Z===d||Z.startsWith("located:")||z)||ie===n||G!==null)return;if(!V.value.enabled){U=n,Z=d,H.value=true,Re();return}let l=++W;z=false,H.value=false;let c=(async()=>{if(await nextTick(),!se(n,l))return;let w=m.value;if(w===null||!w.isMeasurable())return;let R=Te();if(R.state==="located"&&!I.value.includes(R.firstMessageId))return;let F=R.state==="located"?await He(n,l,R.firstMessageId):false;if(R.state==="located"&&!F)return;F||w.scrollToLatest();let ve=0;for(;se(n,l)&&ve<V.value.maxFillPages&&s.value.error===null&&(s.value.hasOlder||s.value.hasNewer&&u.actions.loadNewer!==void 0)&&w.isMeasurable()&&!w.isScrollable();){if(s.value.hasNewer&&u.actions.loadNewer!==void 0&&(s.value.messages.length===0||!s.value.hasOlder)){let Ee=Q;w.prepareHistoryPageAppend();try{await q(),await nextTick();}finally{C.value===n&&Q===Ee&&(W===l||z)&&w.cancelHistoryPageAppend();}}else await A();if(!se(n,l)||(ve+=1,await nextTick(),await nextTick(),!w.isMeasurable()))return}if(!se(n,l)||!w.isMeasurable())return;let he=Te();if(he.state==="located"){if(!I.value.includes(he.firstMessageId)||!await He(n,l,he.firstMessageId))return}else w.scrollToLatest();await nextTick(),qe(n,l);})().catch(()=>{se(n,l)&&(ie=n);}).finally(()=>{G===c&&(G=null);});G=c;}function ge(n,d=false){W+=1,G=null,z=false,H.value=n,n||(U="",Z="",d||(ie="")),Me();}function Pe(){T!==void 0&&(Q+=1,T.abort(),T=void 0,P=void 0,h.value=false);}function De(){if(ce(true),Pe(),z=true,H.value)return;let n=C.value;W+=1,G=null,U=n,H.value=true,Re();}let xe=Object.freeze({getViewportElement:()=>m.value?.getViewportElement()??null,loadOlder:A,retryOlder:Ge,loadNewer:q,retryNewer:Qe,jumpToLatest:Ce,jumpToEntryUnread:pe,scrollToMessage:je,locateMessage:Ke,focusViewport:()=>m.value?.focusViewport()});return i$1(xe),watch(Y,n=>{n&&H.value?Re():Me();}),watch([()=>s.value.activeRemoteMessageRevision??0,m,C],()=>{let n=m.value;if(n===null||!L.value)return;let d=u.actions.drainActiveRemoteMessageIds?.()??[];n.trackRemoteMessageIds(d,{isAtBottom:E.value,isHistoryWindow:s.value.isHistoryWindow,isPageVisible:ae.value})&&(E.value=false);},{flush:"post"}),watch([C,()=>s.value.loading,()=>s.value.error,()=>I.value.length,()=>s.value.hasOlder,()=>Se(Te()),V,()=>s.value.hasNewer],([n,d,l,c,,w],[R,,,F,,ve])=>{if(n!==R&&(Pe(),Q+=1,ge(false),D(true),m.value?.clearNewMessageBadge(),N.value=0,E.value=true,k=[],j.value=false,O.value=false,o.value=false,v.value=false,h.value=false,P=void 0,B=false,S=void 0),n!==""&&n===R&&F!==void 0&&F>0&&c===0&&(s.value.hasOlder||s.value.hasNewer)&&H.value&&ge(false,true),n!==""&&n===R&&w!==ve&&!Z.startsWith("located:")&&!z&&w.startsWith("located:")&&(U="",Z="",H.value=false),n===""){ge(false);return}if(l!==null&&s.value.messages.length===0){H.value||ge(false,true);return}d||Le();},{flush:"post",immediate:true}),onBeforeUnmount(()=>{ne=true,Pe(),Q+=1,ge(false),D(true);}),()=>{let n={conversation:t.conversation,state:s.value,items:f.value,actions:xe,initialViewportSettled:C.value!==""&&(s.value.messages.length===0?!s.value.loading&&s.value.error===null&&!s.value.hasOlder&&!s.value.hasNewer:H.value&&U===C.value)},d=[p.header?.(n),p["before-list"]?.(n)];if(!L.value)d.push(p.unsupported?.(n)??h$1("div",{"data-im-thread-unsupported":""}));else if(!s.value.ready&&s.value.loading)d.push(p.loading?.(n)??h$1("div",{"data-im-thread-loading":""}));else if(s.value.error!==null&&s.value.messages.length===0)d.push(p.error?.(n)??h$1("div",{"data-im-thread-error":""}));else if(s.value.ready&&s.value.messages.length===0&&!s.value.hasOlder&&!s.value.hasNewer)d.push(p.empty?.(n)??h$1("div",{"data-im-thread-empty":""}));else {let l=h$1(st,{ref:m,messageIds:I.value,contentKey:`${t.conversation.conversationType}\0${t.conversation.conversationId}`,loadingOlder:s.value.loadingOlder??s.value.loading,hasNewer:s.value.hasNewer,loadingNewer:s.value.loadingNewer??s.value.loading,followThreshold:ee.value.followThreshold,olderPrefetchThreshold:ee.value.olderPrefetchThreshold,visibleMargin:ee.value.visibleMargin,activeDateOffset:ee.value.activeDateOffset,activeDateEnabled:p["active-date"]!==void 0,resizeFollowEnabled:H.value&&!h.value,followNewMessages:ae.value&&!h.value,shouldFollowAppendedMessage:c=>{let w=s.value.messages.find(R=>R.id===c);return w===void 0?false:u.shouldFollowMessage?.(w)===true},onReachStart:()=>{Ve("older").catch(()=>{});},onReachEnd:()=>{Ve("newer").catch(()=>{});},onSettled:Ye,onUserScroll:De,onActiveDateChange:b,onVisibleRange:ye,onNewMessageCount:c=>{N.value=c;}},{default:()=>[p["viewport-before"]?.(n),h$1(it,{items:f.value,rendererRegistry:t.rendererRegistry,presentation:t.presentation,readActions:t.readActions},{item:p.item,"date-separator":p["date-separator"],"entry-unread":p["entry-unread"],encryption:p.encryption,system:p.system,message:p.message,"recalled-message":p["recalled-message"],"deleted-message":p["deleted-message"],"unsupported-body":p["unsupported-body"]}),p["viewport-after"]?.(n)]});d.push(h$1("div",{"data-im-thread-viewport-shell":""},[p["active-date"]?.({label:K.value,visible:te.value&&K.value!==""}),l,p["entry-unread-navigation"]?.({...n,count:s.value.entryUnreadNavigation?.state==="none"?0:s.value.entryUnreadNavigation?.count??0,loading:h.value,visible:n.initialViewportSettled&&!j.value&&!O.value&&!s.value.isHistoryWindow&&s.value.entryUnreadNavigation!==void 0&&s.value.entryUnreadNavigation.state!=="none"&&s.value.entryUnreadNavigation.count>0&&(o.value||s.value.hasOlder)})])),s.value.error!==null&&d.push(p.error?.(n)??h$1("div",{"data-im-thread-error":""}));}return d.push(p["after-list"]?.(n),p["jump-to-latest"]?.({...n,count:N.value,visible:v.value||!E.value||s.value.isHistoryWindow}),p["context-menu"]?.(n),p.composer?.(n)),h$1("section",{"data-im-thread-surface":"","data-conversation-type":t.conversation.conversationType,"data-conversation-id":t.conversation.conversationId},d)}}});function Rn(t){let i=new Map;for(let u of t){if(i.has(u.kind))throw new Error(`\u6D88\u606F renderer kind \u91CD\u590D\u6CE8\u518C\uFF1A${u.kind}`);i.set(u.kind,u.component);}let p=Object.freeze([...i.keys()]);return Object.freeze({kinds:p,resolve:u=>i.get(u)})}var Pn=140,En=120;function Je(t,i){if(t.width<=0||t.height<=0)return 0;let p=Math.max(0,Math.min(t.right,i.right)-Math.max(t.left,i.left)),u=Math.max(0,Math.min(t.bottom,i.bottom)-Math.max(t.top,i.top));return Math.min(1,p*u/(t.width*t.height))}function ft(t,i){return {x:t.x,y:t.top-i,top:t.top-i,bottom:t.bottom+i,left:t.left,right:t.right,width:t.width,height:t.height+i*2,toJSON:()=>({})}}function mt(t){let i=Math.max(0,t.scrollIdleMs??Pn),p=Math.max(0,t.visibilityDwellMs??En),u=Math.min(1,Math.max(0,t.minimumIntersectionRatio??.01)),m=Math.max(0,t.revealMarginPx??0),N=Math.max(0,t.preloadMarginPx??0),j=Math.max(m,N),h=Math.max(0,t.maxPreloadTargets??Number.POSITIVE_INFINITY),P=Math.max(1,t.maxSettledVisible??Number.POSITIVE_INFINITY),T=new Map,O=new Map,o=reactive(new Set),v=new Set,B=new Set,S=[],E=null,k=null,$=null,W=false,Q=false,G=false,U=false,Z,ie;function z(){Z!==void 0&&clearTimeout(Z),Z=void 0;}function ne(){ie!==void 0&&clearTimeout(ie),ie=void 0;}function H(f=false){if(!f&&k!==null||E===null)return;let I=E.getBoundingClientRect(),y=ft(I,j);for(let[D,b]of T){let J=D.getBoundingClientRect();b.ratio=Je(J,I),b.intersecting=b.ratio>0,b.revealIntersecting=j>0?Je(J,y)>0:b.intersecting&&b.ratio>=u;}}function K(f){return f.intersecting&&f.ratio>=u}function te(){for(let[f,I]of T)!I.revealIntersecting||o.has(I.key)||j>m&&(m===0&&!K(I)||m>0&&(E===null||Je(f.getBoundingClientRect(),ft(E.getBoundingClientRect(),m))<=0))||(o.add(I.key),t.onRevealed?.(I.item));}function re(f,I=false){let y=new Set(f.map(b=>b.key));if(!(!(y.size!==B.size||[...y].some(b=>!B.has(b)))&&!I)){B.clear();for(let b of y)B.add(b);t.onSettledVisibleChange?.(f.map(b=>b.item));}}function X(f,I=false){!I&&f.length===S.length&&f.every((y,D)=>y.key===S[D]?.key&&y.item===S[D]?.item)||(S=f,t.onSettledPreloadChange?.(f.map(y=>y.item)));}function s(){if(G||W)return;let f=Q;Q=false,H(),te();let I=E?.getBoundingClientRect(),y=I===void 0?0:(I.top+I.bottom)/2,D=[...T.entries()].filter(([,b])=>K(b)).sort(([b],[J])=>{let A=b.getBoundingClientRect(),q=J.getBoundingClientRect();return Math.abs((A.top+A.bottom)/2-y)-Math.abs((q.top+q.bottom)/2-y)}).slice(0,P).map(([,b])=>b);if(re(D,f),t.onSettledPreloadChange!==void 0&&I!==void 0){let b=ft(I,N),J=[...T.entries()].filter(([,A])=>A.revealIntersecting).map(([A,q])=>({target:q,rect:A.getBoundingClientRect()})).filter(({target:A,rect:q})=>K(A)||N>0&&Je(q,b)>0).sort((A,q)=>Number(K(q.target))-Number(K(A.target))||Math.abs((A.rect.top+A.rect.bottom)/2-y)-Math.abs((q.rect.top+q.rect.bottom)/2-y)).slice(0,h).map(({target:A})=>A);X(J,f);}for(let b of D)v.has(b.key)||(v.add(b.key),t.onActivated?.(b.item));}function ae(){G||W||(ne(),ie=setTimeout(()=>{ie=void 0,s();},p));}function Y(){G||(Q=true,L(true),X([]),H(),te(),re([]),ne(),z(),Z=setTimeout(()=>{Z=void 0,L(false),ae();},i));}function L(f){W!==f&&(W=f,t.onScrollingChange?.(f));}function ee(){E?.removeEventListener("scroll",Y),k?.disconnect(),$?.disconnect(),k=null,$=null,E=null;}function V(f=true){if(G)return;let I=t.getRoot();if(!(I===E&&E!==null)){if(X([]),ee(),E=I,E===null){f&&!U&&(U=true,Promise.resolve().then(()=>{U=false,G||(V(false),ae());}));return}if(E.addEventListener("scroll",Y,{passive:true}),typeof IntersectionObserver<"u"){k=new IntersectionObserver(y=>{for(let D of y){let b=T.get(D.target);b!==void 0&&(b.intersecting=D.isIntersecting,b.ratio=D.intersectionRatio,j===0&&(b.revealIntersecting=D.isIntersecting&&D.intersectionRatio>=u));}te(),ae();},{root:E,threshold:[0,u,1]}),j>0&&($=new IntersectionObserver(y=>{for(let D of y){let b=T.get(D.target);b!==void 0&&(b.revealIntersecting=D.isIntersecting);}te(),ae();},{root:E,rootMargin:`${j}px 0px`,threshold:0}));for(let y of T.keys())k.observe(y);for(let y of T.keys())$?.observe(y);}else H(),te();}}function C(f){X(S.filter(I=>I.key!==f)),o.delete(f),v.delete(f),B.delete(f);}return {register(f,I){if(G)return;let y=t.getKey(f),D=o.has(y),b=v.has(y),J=I===null?void 0:T.get(I);J!==void 0&&J.key!==y&&(O.delete(J.key),T.delete(I),C(J.key));let A=O.get(y);if(A!==void 0&&A!==I&&(k?.unobserve(A),$?.unobserve(A),T.delete(A),O.delete(y)),I===null){A!==void 0&&(k?.unobserve(A),$?.unobserve(A),T.delete(A),O.delete(y)),C(y);return}let q=T.get(I);if(q?.key===y&&q.item===f){V();return}T.set(I,{item:f,key:y,intersecting:q?.key===y?q.intersecting:false,ratio:q?.key===y?q.ratio:0,revealIntersecting:q?.key===y?q.revealIntersecting:false}),O.set(y,I),V(),k?.observe(I),$?.observe(I),H(true),te(),D&&t.onRevealed?.(f),b&&t.onActivated?.(f),ae();},isRevealed:f=>o.has(t.getKey(f)),isActivated:f=>v.has(t.getKey(f)),isSettledVisible:f=>B.has(t.getKey(f)),isScrolling:()=>W,notifyScroll:Y,refresh(){V(),H(true),te(),ae();},reset(){z(),ne(),L(false),Q=false,re([]),X([]),ee(),T.clear(),O.clear(),o.clear(),v.clear();},dispose(){G||(z(),ne(),L(false),Q=false,re([]),X([]),ee(),T.clear(),O.clear(),o.clear(),v.clear(),G=true);}}}function An(t){let i=new Map,p=new Map,u=false,m=h=>{let P=i.get(h.channel);return P===void 0?h.channel:`${h.channel}\0${P.getKey(h.item)}`},N=mt({getRoot:t.getRoot,getKey:m,revealMarginPx:t.revealMarginPx,preloadMarginPx:t.preloadMarginPx,minimumIntersectionRatio:t.minimumIntersectionRatio,scrollIdleMs:t.scrollIdleMs,visibilityDwellMs:t.visibilityDwellMs,onScrollingChange:h=>{for(let P of i.values())P.onScrollingChange?.(h);},onRevealed:h=>i.get(h.channel)?.onRevealed?.(h.item),onActivated:h=>i.get(h.channel)?.onActivated?.(h.item),onSettledPreloadChange:h=>{for(let[P,T]of i){let O=h.filter(o=>o.channel===P).map(o=>o.item);T.onSettledPreloadChange?.(O.slice(0,Math.max(0,T.maxPreloadTargets??Number.POSITIVE_INFINITY)));}},onSettledVisibleChange:h=>{for(let[P,T]of i){let O=h.filter(v=>v.channel===P).map(v=>v.item),o=T.maxSettledVisible===void 0?O:O.slice(0,T.maxSettledVisible);T.onSettledVisibleChange?.(o);}}});function j(h){return P=>{if(u)throw new Error("Thread visibility target group \u5DF2\u91CA\u653E");if(i.has(h))throw new Error(`Thread visibility channel \u5DF2\u5B58\u5728: ${h}`);i.set(h,P);let T=new Map;p.set(h,T);let O=false,o=S=>({channel:h,item:S});function v(){for(let S of T.values())N.register(S.target,null);T.clear(),P.onScrollingChange?.(false),P.onSettledVisibleChange?.([]),P.onSettledPreloadChange?.([]);}return {register(S,E){if(O||u)return;let k=P.getKey(S),$=T.get(k);if(E===null){$!==void 0&&(N.register($.target,null),T.delete(k));return}let W=$?.target.item===S?$.target:o(S);T.set(k,{target:W,element:E}),N.register(W,E);},isRevealed:S=>N.isRevealed(o(S)),isActivated:S=>N.isActivated(o(S)),isSettledVisible:S=>N.isSettledVisible(o(S)),isScrolling:N.isScrolling,notifyScroll:N.notifyScroll,refresh:N.refresh,reset:v,dispose(){O||(v(),O=true,i.delete(h),p.delete(h));}}}}return {createFactory:j,refresh:N.refresh,dispose(){if(!u){for(let h of p.values())for(let P of h.values())N.register(P.target,null);for(let h of i.values())h.onSettledPreloadChange?.([]);p.clear(),i.clear(),N.dispose(),u=true;}}}}export{rt as ImThreadBodySwitch,it as ImThreadItems,Mn as ImThreadSurface,st as ImThreadViewport,hn as createImThreadSurfaceContext,Rn as createMessageRendererRegistry,An as createThreadVisibilityTargetGroup,mt as createThreadVisibilityTargets,pn as provideImThreadSurfaceContext,Xt as useImText,lt as useImThreadSurfaceContext,Zt as useOptionalImThreadReadActions};
1
+ import {h,C,p,i,q,m,z,B,o,j,g}from'./chunk-CVLKJADF.js';import {f,h as h$2,i as i$1,g as g$1}from'./chunk-PPXQWMHO.js';import'./chunk-HE3QXYNQ.js';import'./chunk-YNYTR73D.js';import'./chunk-J77L6JLQ.js';import'./chunk-WOT6VMZA.js';import {defineComponent,h as h$1,ref,provide,watch,nextTick,onMounted,onBeforeUnmount,computed,inject,isVNode,cloneVNode,Fragment,reactive}from'vue';function $t(t){let i=0,p=0;for(let u of t)u.kind==="video"?p+=1:i+=1;return {imageCount:i,videoCount:p}}function Xt(t){return {systemMessage:i=>i.body.system!==void 0?g$1(i.body.system,{locale:t.locale(),resolveName:t.resolveName,selfId:t.selfId()}):"",mediaPlaceholder:i=>i$1(i.contentType,{locale:t.locale(),durationMs:i.body.voice?.durationMs,stickerImageType:i.body.sticker?.imageType,gameType:i.body.game?.gameType,callKind:i.body.call?.callKind,...i.body.filesAlbum===void 0?{}:{filesAlbum:{count:i.body.filesAlbum.items.length,caption:i.body.filesAlbum.caption}},...i.body.mediaAlbum===void 0?{}:{mediaAlbum:$t(i.body.mediaAlbum.items)}}),lastMessage:i=>i.lastMessageSummary!==void 0?h$2(i.lastMessageSummary,{locale:t.locale(),resolveName:t.resolveName,selfId:t.selfId()}):i.lastMessagePreview,failureText:i=>i.failure?.displayCode!==void 0?f(i.failure.displayCode,{locale:t.locale(),mediaKind:i.failure.mediaKind,params:i.failure.params}):i.failure?.message??""}}var Ct=Symbol("ImThreadReadActions");function Nt(t){provide(Ct,t);}function Zt(){return inject(Ct,void 0)}var rt=defineComponent({name:"ImThreadBodySwitch",inheritAttrs:false,props:{message:{type:Object,required:true},rendererRegistry:{type:Object,required:true},presentation:{type:Object,default:void 0},readActions:{type:Object,default:void 0}},setup(t,{attrs:i,slots:p}){return Nt(t.readActions),()=>{let u=h(t.message),m=t.rendererRegistry.resolve(u);return m!==void 0?h$1(m,{...i,message:t.message,presentation:t.presentation}):p["unsupported-body"]!==void 0?p["unsupported-body"]({kind:u,message:t.message}):h$1("span",{"data-im-thread-unsupported-body":u,"aria-hidden":"true"})}}});var ot=Symbol("ImThreadViewportRegistration");function Ht(){return inject(ot,void 0)}var it=defineComponent({name:"ImThreadItems",props:{items:{type:Array,required:true},rendererRegistry:{type:Object,required:true},presentation:{type:Object,default:void 0},readActions:{type:Object,default:void 0}},setup(t,{slots:i}){let p=Ht();function u(o,v){let B=Array.isArray(v)?v:[v];return B.length===1&&isVNode(B[0])?cloneVNode(B[0],{key:o}):h$1(Fragment,{key:o},B)}function m(o){return v=>{p?.registerMessageNode(o,v instanceof HTMLElement?v:null);}}function N(o,v){return B=>{p?.registerDateNode(o,v,B instanceof HTMLElement?B:null);}}function j(o){return i.encryption?.({item:o})??h$1("div",{"data-im-thread-encryption":o.key})}function h(o){let v=N(o.key,o.label);return i["date-separator"]?.({item:o,setElement:v})??h$1("div",{ref:v,"data-im-thread-date-separator":o.key},o.label)}function P(o){p?.registerEntryUnreadNode(o instanceof HTMLElement?o:null);}function T(o){return i["entry-unread"]?.({item:o,setElement:P})??h$1("div",{ref:P,"data-im-thread-entry-unread":o.key,...o.count===void 0?{}:{"data-count":String(o.count)}})}function O(o){let v=m(o.message.id);return i.item!==void 0?i.item({item:o,setElement:v}):i.message!==void 0?i.message({item:o,setElement:v}):o.message.deletedForEveryone!==void 0?i["deleted-message"]?.({item:o,setElement:v})??h$1("article",{ref:v,"data-im-thread-message-id":o.message.id,"data-im-thread-message-terminal":"deleted-for-everyone"},[h$1("span",{"data-im-thread-anchor-point":""})]):o.message.recalled!==void 0?i["recalled-message"]?.({item:o,setElement:v})??h$1("article",{ref:v,"data-im-thread-message-id":o.message.id,"data-im-thread-message-terminal":"recalled"},[h$1("span",{"data-im-thread-anchor-point":""})]):o.kind==="system"&&i.system!==void 0?i.system({item:o,setElement:v}):h$1("article",{ref:v,"data-im-thread-message-id":o.message.id,"data-first-of-run":o.kind==="message"?String(o.firstOfRun):void 0},[h$1("span",{"data-im-thread-anchor-point":""}),h$1(rt,{message:o.message,rendererRegistry:t.rendererRegistry,presentation:t.presentation,readActions:t.readActions},{"unsupported-body":i["unsupported-body"]===void 0?void 0:B=>i["unsupported-body"]?.(B)})])}return ()=>h$1("div",{"data-im-thread-items":""},t.items.map(o=>{switch(o.kind){case "encryption":return i.item!==void 0?u(o.key,i.item({item:o})):u(o.key,j(o));case "date-separator":return i.item!==void 0?u(o.key,i.item({item:o,setElement:N(o.key,o.label)})):u(o.key,h(o));case "entry-unread":return i.item!==void 0?u(o.key,i.item({item:o,setElement:P})):u(o.key,T(o));case "system":case "message":return u(o.key,O(o))}return o}))}});var Ft=120,fn=500,Ue=.5,mn=8;function at(t){let i=t.ownerDocument.defaultView?.devicePixelRatio;return 1+1/(i!==void 0&&Number.isFinite(i)&&i>0?i:1)}var st=defineComponent({name:"ImThreadViewport",props:{messageIds:{type:Array,required:true},contentKey:{type:String,default:""},loadingOlder:{type:Boolean,default:false},hasNewer:{type:Boolean,default:false},loadingNewer:{type:Boolean,default:false},followThreshold:{type:Number,default:120},olderPrefetchThreshold:{type:Number,default:120},followNewMessages:{type:Boolean,default:true},shouldFollowAppendedMessage:{type:Function,default:void 0},visibleMargin:{type:Number,default:8},resizeFollowEnabled:{type:Boolean,default:true},activeDateOffset:{type:Number,default:16},activeDateEnabled:{type:Boolean,default:false}},emits:{"reach-start":()=>true,"reach-end":()=>true,"visible-range":t=>true,settled:t=>true,"new-message-count":t=>true,"user-scroll":()=>true,"active-date-change":t=>true},setup(t,{emit:i,expose:p$1,slots:u}){let m$1=ref(null),N=ref(null),j$1=new Map,h,P=new Map,T=new Set,O=new Map,o$1=0,v=[],B$1,S,E,k,$=false,W,Q=new Set,G=false,U,Z="",ie=1,z$1=false,ne=false,H=true,K=false,te=false,re=false,X=0,s=-1,ae=-1,Y,L,ee,V,C$1,f=ref(true),I=ref(0),y=C(e=>{I.value=e,i("new-message-count",e);});function D(e){let r=Number.isFinite(t.followThreshold)?Math.max(0,t.followThreshold):0;return e.scrollHeight-e.clientHeight-e.scrollTop<=r}function b(e=t.messageIds){return e.flatMap(r=>{let a=j$1.get(r);if(a===void 0)return [];let g=a.getBoundingClientRect(),M=a.querySelector("[data-im-thread-anchor-point]");return [{id:r,top:g.top,bottom:g.bottom,anchorTop:M?.getBoundingClientRect().top??g.top}]})}function J(e="",r=1){let a=Math.min(1,Math.max(0,r));Z!==""&&Z!==e&&O.get(Z)?.element.style.removeProperty("opacity"),Z=e,ie=a,e!==""&&O.get(e)?.element.style.setProperty("opacity",String(a));}function A(){J();}function q$1(){let e=m$1.value;if(G||e===null||!t.activeDateEnabled)return;let r=[...O.entries()].filter(([,_])=>e.contains(_.element)).map(([_,x])=>{let le=x.element.getBoundingClientRect();return {key:_,label:x.label,top:le.top,height:le.height}}).sort((_,x)=>_.top-x.top),a=e.getBoundingClientRect(),g$1=r.find(_=>_.height>0)?.height??28,M=g({markers:r,viewportTop:a.top,overlayTop:Number.isFinite(t.activeDateOffset)?Math.max(0,t.activeDateOffset):0,overlayHeight:g$1});if(M===null){A(),i("active-date-change",null);return}J(M.inlineDateKey,M.inlineOpacity),i("active-date-change",M);}function We(e){S={scrollTop:e.scrollTop,scrollHeight:e.scrollHeight,width:e.clientWidth,height:e.clientHeight};}function Ve(e){let r=S;if(r===void 0)return false;let a=Math.max(0,e.scrollHeight-e.clientHeight);return a<r.scrollHeight-r.height&&r.scrollTop>a&&Math.abs(e.scrollTop-a)<=at(e)}function Qe(e){return Ve(e)||U!==void 0&&(U.behavior==="smooth"||Math.abs(e.scrollTop-U.targetTop)<=at(e))?0:e.scrollTop-o$1}function Ge(e,r){r!==0&&(o$1=e.scrollTop-r,U=void 0,Ke());}function ze(e,r){let a=Qe(e);if(V!==void 0)return V.expectedOffset-=a,qe(),Ge(e,a),K||He(),false;let g=S;if(g===void 0)return false;let M=B$1,_=M===void 0?void 0:b([M.id])[0],x=e.scrollTop-g.scrollTop,le=Ve(e)?0:x,be=M===void 0||_===void 0?0:(_.anchorTop??_.top)-r.top-M.offset+x;return g.scrollHeight!==e.scrollHeight||g.width!==e.clientWidth||g.height!==e.clientHeight||Math.abs(be)>Ue?(S=void 0,!z$1&&!t.loadingNewer&&!t.hasNewer&&t.resizeFollowEnabled&&f.value&&Math.abs(le)<=Ue?(Fe(),true):(M!==void 0&&ge({...M,offset:M.offset-le}),Ge(e,a),false)):false}function Ce(){let e=m$1.value;if(G||e===null)return;let r=e.getBoundingClientRect();if(ze(e,r))return;let a=k!==void 0&&$?t.messageIds.filter(x=>T.has(x)):t.messageIds,g=b(a);if(k!==void 0&&$&&g.length===0){f.value=D(e);return}let M=g.filter(x=>B({viewportTop:r.top,viewportBottom:r.bottom,messageTop:x.top,messageBottom:x.bottom,margin:t.visibleMargin})).map(x=>x.id),_=M.length!==v.length||M.some((x,le)=>v[le]!==x);v=Object.freeze(M),B$1=o(g,{top:r.top,bottom:r.bottom}),We(e),y.acknowledgeVisible(M),f.value=D(e),_&&i("visible-range",v),i("settled",{visibleMessageIds:v,...v.length===0?{}:{newestVisibleMessageId:v[v.length-1]},isAtBottom:f.value,newMessageCount:I.value});}function ce(e){if(Q.add(e),W!==void 0)return;let r=()=>{W=void 0;let a=[...Q];Q.clear(),a.forEach(g=>g());};typeof globalThis.requestAnimationFrame=="function"?W=globalThis.requestAnimationFrame(r):W=globalThis.setTimeout(r,0);}function _e(){W!==void 0&&(typeof W=="number"&&typeof globalThis.cancelAnimationFrame=="function"?globalThis.cancelAnimationFrame(W):globalThis.clearTimeout(W),W=void 0,Q.clear());}function pe(){ce(Ce);}function Ze(){let e=m$1.value;if(e===null)return;let r=e.getBoundingClientRect(),a=o(b(),{top:r.top,bottom:r.bottom});a!==void 0&&(B$1=a,We(e));}function Ye(){return H&&V===void 0&&!ne&&!t.loadingOlder}function je(){Ze(),H=false,s=X,ne=true,i("reach-start"),ce(()=>{t.loadingOlder||(ne=false);});}function oe(e){return t.hasNewer&&!z$1&&!t.loadingOlder&&!t.loadingNewer&&D(e)}function Ne(){z$1=true,f.value=false,ae=X,i("reach-end"),ce(()=>{t.loadingNewer||(z$1=false);});}function ke(){let e=m$1.value;e===null||X===ae||!oe(e)||Ne();}function Ke(){let e=m$1.value;if(G||e===null)return;let r=e.scrollTop,a=Ve(e),g=U,M=false;if(g!==void 0){let x=Math.abs(r-g.targetTop)<=at(e);M=g.behavior==="smooth"||x,(g.behavior!=="smooth"||x)&&(U=void 0);}!M&&!a&&!K&&V===void 0&&r!==o$1&&(K=true,te=true,X+=1);let _=K&&!M&&!a&&r!==o$1;if(_&&(i("user-scroll"),ce(q$1)),K&&!re&&l(),!H&&te&&X!==s&&r<o$1&&r>Pe()&&(H=true),V!==void 0&&!M)if(K){let x=se();x!==void 0&&(V.expectedOffset=x);}else qe(),He();Ye()&&_&&r>=0&&m({previousScrollTop:o$1,currentScrollTop:r,topThreshold:t.olderPrefetchThreshold})&&je(),_&&oe(e)&&z({previousScrollTop:o$1,currentScrollTop:r,isAtBottom:D(e),isHistoryWindow:t.hasNewer,isPageSettling:M})&&Ne(),o$1=r,pe();}function Me(e,r="auto"){U={targetTop:e,behavior:r};}function Re(e){let r=V,a=N.value;if(!(r===void 0||a===null)){if(r.visualOffset=Math.abs(e)<=Ue?0:e,r.visualOffset===0){a.style.removeProperty("transform"),a.style.removeProperty("will-change");return}a.style.setProperty("transform",`translate3d(0, ${r.visualOffset}px, 0)`),a.style.setProperty("will-change","transform");}}function ye(){C$1!==void 0&&(clearTimeout(C$1),C$1=void 0),V!==void 0&&V.visualOffset!==0&&(B$1=void 0,S=void 0);let e=N.value;e?.style.removeProperty("transform"),e?.style.removeProperty("will-change"),V=void 0,U=void 0;}function se(){let e=m$1.value,r=V;if(e===null||r===void 0)return;let a=b().find(g=>g.id===r.anchor.id);if(a!==void 0)return (a.anchorTop??a.top)-e.getBoundingClientRect().top}function qe(){let e=V,r=se();if(e===void 0||r===void 0)return;let a=e.expectedOffset-r;Math.abs(a)<=Ue||(Re(e.visualOffset+a),e.committed=false,e.attempts=0);}function Te(){C$1!==void 0&&clearTimeout(C$1),C$1=setTimeout(()=>{C$1=void 0,!(K||V?.committed!==true)&&ye();},fn);}function Se(){let e=m$1.value,r=V;if(G||e===null||r===void 0||K)return;let a=r.visualOffset;if(Math.abs(a)<=Ue){r.committed=true,Te();return}let g=Math.max(0,e.scrollHeight-e.clientHeight),M=Math.min(g,Math.max(0,e.scrollTop-a));if(Me(M),e.scrollTop=M,Math.abs(e.scrollTop-M)>Ue){U=void 0,r.committed=false,r.attempts+=1,r.attempts<mn?He():(ye(),U=void 0,o$1=e.scrollTop);return}Re(0),o$1=e.scrollTop,r.expectedOffset=se()??r.expectedOffset,r.committed=true,r.attempts=0,Te();}function He(){C$1!==void 0&&clearTimeout(C$1),C$1=setTimeout(()=>{C$1=void 0,Se();},Ft);}function Le(e){e!==void 0&&(V===void 0&&(V={anchor:e,expectedOffset:e.offset,visualOffset:0,committed:false,attempts:0}),qe(),!K&&Se());}function ge(e){let r=m$1.value;if(r===null||e===void 0)return;let a=r.getBoundingClientRect(),g=q(e,b(),{top:a.top,bottom:a.bottom});if(g!==void 0){let M=Math.max(0,r.scrollHeight-r.clientHeight),_=Math.min(M,Math.max(0,r.scrollTop+g));Me(_),r.scrollTop=_,o$1=r.scrollTop,S=void 0;}}function Pe(){return Number.isFinite(t.olderPrefetchThreshold)?Math.max(0,t.olderPrefetchThreshold):0}function De(){U?.behavior==="smooth"&&(U=void 0),te=false,K||(K=true,X+=1),Y!==void 0&&(clearTimeout(Y),Y=void 0);}function xe(){let e=m$1.value;e===null||X===s||(V!==void 0&&ye(),H=true,e.scrollTop<=Pe()&&Ye()&&je());}function n(){B$1=void 0,S=void 0,Y!==void 0&&(clearTimeout(Y),Y=void 0),ye(),K=false,te=false,re=false,L=void 0,ee=void 0,X+=1,s=-1,ae=-1,H=true,ne=false,z$1=false,U=void 0;}function d(){re||(Y!==void 0&&(clearTimeout(Y),Y=void 0),K=false,te=false,V!==void 0&&(V.attempts=0),Se());}function l(){re||(Y!==void 0&&clearTimeout(Y),Y=setTimeout(()=>{Y=void 0,d();},Ft));}function c(){U=void 0,d();}function w(e){re=true,De(),L=e.touches?.[0]?.clientY;}function R(e){let r=e.touches?.[0]?.clientY;r!==void 0&&(L!==void 0&&r>L?xe():L!==void 0&&r<L&&ke(),L=r);}function F(){re=false,L=void 0,l();}function ve(e){De(),e.deltaY<0?xe():e.deltaY>0&&ke(),l();}function he(e){e.pointerType!=="touch"&&(De(),ee=e.clientY,l());}function Ee(e){e.pointerType==="touch"||!K||ee===void 0||(e.clientY<ee?xe():e.clientY>ee&&ke(),ee=e.clientY,l());}function fe(e){e.pointerType!=="touch"&&(ee=void 0,l());}function Oe(e){["ArrowUp","ArrowDown","PageUp","PageDown","Home","End"," "].includes(e.key)&&(De(),e.key==="ArrowUp"||e.key==="PageUp"||e.key==="Home"||e.key===" "&&e.shiftKey?xe():ke(),l());}function Fe(e="auto"){let r=m$1.value;if(r===null)return;S=void 0,ye();let a=Math.max(0,r.scrollHeight-r.clientHeight);Me(a,e),r.scrollTo?.({top:a,behavior:e}),r.scrollTop!==a&&(r.scrollTop=a),o$1=r.scrollTop,y.clear(),Ce();}function gt(){let e=m$1.value;return e!==null&&e.clientWidth>0&&e.clientHeight>0}function Ut(){let e=m$1.value;return gt()&&e!==null&&e.scrollHeight>e.clientHeight+1}function _t(e,r={}){return vt(j$1.get(e),r)}function vt(e,r){let a=m$1.value;if(a===null||e===void 0||!a.contains(e)||a.clientHeight<=0)return false;ye();let g=a.getBoundingClientRect(),M=e.getBoundingClientRect(),_=r.block??"center",x;_==="start"?x=a.scrollTop+M.top-g.top:_==="end"?x=a.scrollTop+M.bottom-g.bottom:_==="nearest"?M.top>=g.top&&M.bottom<=g.bottom?x=a.scrollTop:M.top<g.top?x=a.scrollTop+M.top-g.top:x=a.scrollTop+M.bottom-g.bottom:x=j({currentScrollTop:a.scrollTop,scrollHeight:a.scrollHeight,targetHeight:M.height,targetTop:M.top,viewportHeight:a.clientHeight,viewportTop:g.top});let le=Math.max(0,a.scrollHeight-a.clientHeight),be=Math.min(le,Math.max(0,x));S=void 0;let Be=r.behavior??"auto";return Me(be,Be),a.scrollTo?.({top:be,behavior:Be}),a.scrollTop!==be&&(a.scrollTop=be),o$1=a.scrollTop,Ce(),true}function jt(){let e=m$1.value;if(e===null||h===void 0||!e.contains(h)||e.clientHeight<=0)return null;let r=h.getBoundingClientRect(),a=e.scrollTop+r.top-e.getBoundingClientRect().top+r.height/2,g=e.clientHeight/2;return {older:a<g-1,newer:e.scrollHeight-a<g-1}}function Kt(){y.clear();}function qt(){z$1=true,f.value=false;}function Wt(){z$1=false,pe();}function Gt(e,r){let a=j$1.get(e);if(a!==void 0&&a!==r&&(k?.unobserve(a),E?.unobserve?.(a),P.delete(a),T.delete(e)),r===null){j$1.delete(e),T.delete(e);return}j$1.set(e,r),P.set(r,e),k?.observe(r),E?.observe(r),pe();}function zt(e,r,a){let g=O.get(e);if(a===null){O.delete(e);return}O.set(e,{element:a,label:r}),Z===e&&a.style.setProperty("opacity",String(ie)),g?.element!==a&&(a.dataset.imThreadDateSeparator=e);}return provide(ot,{registerMessageNode:Gt,registerDateNode:zt,registerEntryUnreadNode:e=>{h=e??void 0;}}),watch(()=>t.contentKey,(e,r)=>{if(e===r)return;n();let a=m$1.value;a!==null&&(o$1=a.scrollTop);},{flush:"sync"}),watch(()=>t.messageIds,async(e,r)=>{let a=m$1.value;if(a===null)return;let g=new Set(r);r.length>0&&e.length>0&&!e.some(Ae=>g.has(Ae))&&n();let _=a.getBoundingClientRect(),x=p(B$1,b(),{top:_.top,bottom:_.bottom}),le=f.value,be=r[r.length-1],Be=be===void 0?-1:e.indexOf(be),et=Be<0?[]:e.slice(Be+1).filter(Ae=>!g.has(Ae)),ht=z$1||t.loadingNewer,Yt=e.length===r.length&&e.every(Ae=>g.has(Ae))&&e.some((Ae,tt)=>Ae!==r[tt]);if(await nextTick(),G)return;if(Yt&&le&&t.followNewMessages&&t.resizeFollowEnabled&&!t.hasNewer&&!ht){Fe();return}let pt=r[0];if(pt!==void 0&&e.indexOf(pt)>0&&(ne=false,Le(x)),et.length>0){if(ht){z$1=false,V===void 0&&ge(x),f.value=false,pe();return}(le||et.some(tt=>t.shouldFollowAppendedMessage?.(tt)===true))&&t.followNewMessages?Fe():y.add(et);}pe();},{flush:"pre"}),watch(()=>t.loadingNewer,(e,r)=>{e||!r||!z$1||ce(()=>{t.loadingNewer||(z$1=false);});},{flush:"pre"}),watch(()=>t.loadingOlder,(e,r)=>{e||!r||!ne||ce(()=>{t.loadingOlder||(ne=false);});},{flush:"pre"}),onMounted(()=>{let e=m$1.value;if(e!==null){if(o$1=e.scrollTop,e.addEventListener("scroll",Ke,{passive:true}),e.addEventListener("scrollend",c,{passive:true}),e.addEventListener("touchstart",w,{passive:true}),e.addEventListener("touchmove",R,{passive:true}),e.addEventListener("touchend",F,{passive:true}),e.addEventListener("touchcancel",F,{passive:true}),e.addEventListener("wheel",ve,{passive:true}),e.addEventListener("pointerdown",he,{passive:true}),e.addEventListener("pointermove",Ee,{passive:true}),e.addEventListener("pointerup",fe,{passive:true}),e.addEventListener("pointercancel",fe,{passive:true}),e.addEventListener("keydown",Oe),typeof globalThis.ResizeObserver=="function"){E=new globalThis.ResizeObserver(()=>{G||m$1.value===null||Ce();}),E.observe(e),N.value!==null&&E.observe(N.value);for(let r of j$1.values())E.observe(r);}if(typeof globalThis.IntersectionObserver=="function"){k=new globalThis.IntersectionObserver(r=>{for(let a of r){let g=P.get(a.target);g!==void 0&&(a.isIntersecting?T.add(g):T.delete(g));}$=true,pe();},{root:e,rootMargin:`${Number.isFinite(t.visibleMargin)?Math.max(0,t.visibleMargin):0}px 0px`});for(let r of j$1.values())k.observe(r);}pe();}}),onBeforeUnmount(()=>{G=true;let e=m$1.value;e!==null&&e.removeEventListener("scroll",Ke),e!==null&&(e.removeEventListener("scrollend",c),e.removeEventListener("touchstart",w),e.removeEventListener("touchmove",R),e.removeEventListener("touchend",F),e.removeEventListener("touchcancel",F),e.removeEventListener("wheel",ve),e.removeEventListener("pointerdown",he),e.removeEventListener("pointermove",Ee),e.removeEventListener("pointerup",fe),e.removeEventListener("pointercancel",fe),e.removeEventListener("keydown",Oe)),Y!==void 0&&clearTimeout(Y),ye(),_e(),E?.disconnect(),k?.disconnect(),A(),h=void 0,j$1.clear(),P.clear(),T.clear(),O.clear(),y.clear();}),p$1({getViewportElement:()=>m$1.value,clearNewMessageBadge:Kt,clearActiveDate:A,isAtBottom:computed(()=>f.value),isMeasurable:gt,isScrollable:Ut,newMessageCount:computed(()=>I.value),prepareHistoryPageAppend:qt,cancelHistoryPageAppend:Wt,trackRemoteMessageIds:(e,r)=>y.trackRemote(e,r),scrollToLatest:Fe,scrollToMessage:_t,scrollToEntryUnread:()=>vt(h,{block:"center",behavior:"auto"}),getEntryUnreadCenteringNeeds:jt,focusViewport:()=>m$1.value?.focus({preventScroll:true})}),()=>h$1("div",{ref:m$1,"data-im-thread-viewport":"",role:"log",tabindex:-1},[h$1("div",{ref:N,"data-im-thread-viewport-content":""},u.default?.())])}});var Bt=Symbol("ImThreadSurfaceContext");function hn(t){if(typeof t.getState!="function")throw new TypeError("ImThreadSurfaceContext.getState \u5FC5\u987B\u662F\u51FD\u6570");if(typeof t.actions?.loadOlder!="function")throw new TypeError("ImThreadSurfaceContext.actions.loadOlder \u5FC5\u987B\u662F\u51FD\u6570");if(typeof t.formatDate!="function")throw new TypeError("ImThreadSurfaceContext.formatDate \u5FC5\u987B\u662F\u51FD\u6570");return Object.freeze({...t,actions:Object.freeze({...t.actions})})}function pn(t){provide(Bt,t);}function lt(){let t=inject(Bt);if(t===void 0)throw new Error("ImThreadSurface \u9700\u8981\u663E\u5F0F context prop \u6216 provideImThreadSurfaceContext");return t}var ut=Object.freeze({followThreshold:120,olderPrefetchThreshold:120,visibleReadDelay:300,visibleMargin:8,activeDateOffset:16,activeDateIdleDelay:1500}),ct=Object.freeze({enabled:true,maxFillPages:8}),bn=8,In=160;function wn(t,i){return t?.conversationType===i.conversationType&&t.conversationId===i.conversationId}var Mn=defineComponent({name:"ImThreadSurface",props:{conversation:{type:Object,required:true},context:{type:Object,default:void 0},rendererRegistry:{type:Object,required:true},presentation:{type:Object,default:void 0},readActions:{type:Object,default:void 0},viewportOptions:{type:Object,default:()=>({})},initialViewportOptions:{type:Object,default:()=>({})},hooks:{type:Object,default:void 0}},setup(t,{expose:i$1,slots:p}){let u=t.context??lt(),m=ref(null),N=ref(0),j=ref(false),h=ref(false),P,T,O=ref(false),o=ref(false),v=ref(false),B=false,S,E=ref(true),k=[],$,W=0,Q=0,G=null,U="",Z="",ie="",z=false,ne=false,H=ref(false),K=ref(""),te=ref(false),re,X,s=computed(()=>u.getState()),ae=computed(()=>s.value.pageVisible??u.isPageVisible?.()??true),Y=computed(()=>s.value.pageEngaged??u.isPageEngaged?.()??true),L=computed(()=>wn(s.value.activeConversation,t.conversation)),ee=computed(()=>({...ut,...t.viewportOptions})),V=computed(()=>{let n=t.initialViewportOptions.maxFillPages??ct.maxFillPages;return {enabled:t.initialViewportOptions.enabled??ct.enabled,maxFillPages:Number.isFinite(n)?Math.max(0,Math.floor(n)):ct.maxFillPages}}),C=computed(()=>!L.value||!s.value.ready?"":`${t.conversation.conversationType}\0${t.conversation.conversationId}`),f=computed(()=>L.value?i({messages:s.value.messages,entryUnread:s.value.entryUnread,formatDate:u.formatDate,leadingItems:u.leadingItems?.(),beforeMessageItems:u.beforeMessageItems}):[]),I=computed(()=>f.value.flatMap(n=>n.kind==="message"||n.kind==="system"?[n.message.id]:[]));function y(){re!==void 0&&(clearTimeout(re),re=void 0),X!==void 0&&(clearTimeout(X),X=void 0);}function D(n=false){if(y(),te.value=false,n){m.value?.clearActiveDate(),K.value="";return}X=setTimeout(()=>{X=void 0,!te.value&&(m.value?.clearActiveDate(),K.value="");},In);}function b(n){if(n===null){D();return}y(),K.value=n.label,te.value=true;let d=ee.value.activeDateIdleDelay,l=Number.isFinite(d)?Math.max(0,d):ut.activeDateIdleDelay;re=setTimeout(()=>{re=void 0,D();},l);}async function J(n,d,l){t.hooks?.beforeAction?.(n);try{let c=await d();return l?.()!==!1&&t.hooks?.afterAction?.(n,c),c}catch(c){throw l?.()!==false&&t.hooks?.onError?.(n,c),c}}function A(n="automatic",d){return !L.value||s.value.loading||!s.value.hasOlder?Promise.resolve(0):J({kind:"load-older",source:n},()=>u.actions.loadOlder(),d)}function q(){return We()}function We(n){let d=u.actions.loadNewer,l=s.value.loadingNewer??s.value.loading;return !L.value||l||!s.value.hasNewer||d===void 0?Promise.resolve(0):J({kind:"load-newer"},()=>d(),n)}async function Ve(n){for(let d=0;d<bn;d+=1){if(!L.value)return;let l=n==="older"?s.value.hasOlder:s.value.hasNewer,c=n==="older"?s.value.olderError:s.value.newerError;if(!l||c!==null||(n==="older"?await A("user-scroll"):await q())>0)return;let R=n==="older"?s.value.hasOlder:s.value.hasNewer,F=n==="older"?s.value.olderError:s.value.newerError;if(!R||F!==null)return}}async function Qe(){return !L.value||u.actions.loadNewer===void 0?0:ze({kind:"load-newer"},()=>u.actions.retryNewer?.()??u.actions.loadNewer?.({force:true})??Promise.resolve(0))}async function Ge(){return L.value?ze({kind:"retry-older"},()=>u.actions.retryOlder?.()??u.actions.loadOlder({force:true})):0}async function ze(n,d){let l=C.value,c=++W;G=null,ie="";let w;try{w=await J(n,d);}catch(R){throw se(l,c)&&(ie=l),R}return se(l,c)&&!H.value&&(G=null,Le()),w}async function Ce(){if(!L.value)return false;let n=C.value;Pe();let d=++Q;return ge(true),z=true,U=n,Z=Se(Te()),!await J({kind:"jump-to-latest"},()=>u.actions.jumpToLatest?.()??Promise.resolve(!s.value.isHistoryWindow))||!oe(n,d)||(await nextTick(),!oe(n,d))?false:(m.value?.scrollToLatest(),j.value=true,v.value=false,_e(),true)}function ce(n=false){let d=m.value,l=d?.getViewportElement();o.value=d?.isScrollable()===true;let c=s.value.entryUnreadNavigation;O.value=c?.state==="located"&&k.includes(c.firstMessageId),H.value&&O.value&&(j.value=true);let w=l==null?0:Math.max(0,l.scrollHeight-l.clientHeight-l.scrollTop);v.value=c!==void 0&&w>50,n&&c!==void 0&&l!==null&&l!==void 0&&l.clientHeight>0&&w>=l.clientHeight&&(j.value=true);}function _e(){let n=u.actions.markConversationRead;if(n===void 0||!Y.value||!L.value||!H.value||h.value||B&&(!E.value||s.value.hasNewer)||S!==void 0||s.value.error!==null)return;let d=C.value,l=n().then(()=>{S===l&&d===C.value&&(B=true);}).catch(c=>{!ne&&S===l&&d===C.value&&t.hooks?.onError?.({kind:"mark-conversation-read"},c);}).finally(()=>{S===l&&(S=void 0);});S=l;}async function pe(){let n=u.actions.loadEntryUnread;if(!L.value||h.value||n===void 0)return "cancelled";let d=C.value,l=++Q,c=new AbortController;T=c,P=l,h.value=true,ge(true),z=true;try{let w=await J({kind:"jump-to-entry-unread"},()=>n({signal:c.signal}),()=>oe(d,l));if(!oe(d,l))return "cancelled";if(!w||s.value.entryUnread.state!=="located")return "unavailable";let F=await Ze(d,l);return F&&(j.value=!0),F?"located":oe(d,l)?"unavailable":"cancelled"}catch(w){if(!oe(d,l))return "cancelled";throw w}finally{P===l&&(P=void 0,T=void 0,h.value=false);}}async function Ze(n,d){await nextTick();for(let l=0;l<60;l+=1){if(!oe(n,d))return false;if(m.value?.scrollToEntryUnread())return true;await nextTick(),typeof window<"u"&&typeof window.requestAnimationFrame=="function"&&await new Promise(c=>window.requestAnimationFrame(()=>c()));}return false}function Ye(n){E.value=n.isAtBottom,N.value=n.newMessageCount,ce(),Le();}function je(n,d){return m.value?.scrollToMessage(n,d)??false}function oe(n,d){return !ne&&Q===d&&C.value===n&&L.value}async function Ne(n,d,l,c){for(let w=0;w<60;w+=1){if(!oe(n,d))return false;if(je(l,c))return true;await nextTick(),typeof window<"u"&&typeof window.requestAnimationFrame=="function"&&await new Promise(R=>window.requestAnimationFrame(()=>R()));}return false}async function ke(n,d,l){let c=m.value;if(c===null||!c.isMeasurable()||c.isScrollable())return true;let w=0,R=!s.value.hasOlder,F=!s.value.hasNewer||u.actions.loadNewer===void 0,ve=async()=>(await nextTick(),await nextTick(),Ne(n,d,l,{behavior:"auto",block:"center"})),he=async fe=>{if(!oe(n,d)||w>=V.value.maxFillPages)return false;let Oe=0;if(fe==="older"){if(R||!s.value.hasOlder)return false;Oe=await A(),R=!s.value.hasOlder;}else {if(F||!s.value.hasNewer)return false;c.prepareHistoryPageAppend();try{Oe=await q();}catch(Fe){throw c.cancelHistoryPageAppend(),Fe}Oe<=0&&!s.value.hasNewer&&c.cancelHistoryPageAppend(),F=!s.value.hasNewer;}return w+=1,Oe>0?ve():!(fe==="older"?R:F)};!R&&!await he("older")&&(R=true),!F&&!await he("newer")&&(F=true);let Ee="older";for(;oe(n,d)&&w<V.value.maxFillPages&&c.isMeasurable()&&!c.isScrollable()&&(!R||!F);){let fe=Ee==="older"?R?"newer":"older":F?"older":"newer";Ee=fe==="older"?"newer":"older",await he(fe)||(fe==="older"?R=true:F=true);}return oe(n,d)}async function Ke(n,d={behavior:"auto",block:"center"}){if(!L.value||n==="")return false;let l=C.value;Pe();let c=++Q;if(!I.value.includes(n)){let F=u.actions.loadAround;if(F===void 0||!await J({kind:"locate-message",messageId:n},()=>F(n))||!oe(l,c))return false}return !await Ne(l,c,n,{...d,behavior:"auto"})||!await ke(l,c,n)?false:Ne(l,c,n,d)}function Me(){$!==void 0&&(clearTimeout($),$=void 0);}function Re(){if(Me(),!H.value)return;let n=t.readActions;if(n===void 0&&u.actions.markVisibleMessages===void 0)return;let d=Number.isFinite(ee.value.visibleReadDelay)?Math.max(0,ee.value.visibleReadDelay):ut.visibleReadDelay;$=setTimeout(()=>{if($=void 0,!L.value||!Y.value)return;_e();let l=u.actions.markVisibleMessages;if(l!==void 0){let R=k;l(R).catch(F=>{t.hooks?.onError?.({kind:"visible-range",messageIds:R},F);});return}if(n===void 0)return;let c=k[k.length-1];if(c===void 0)return;let w=n.resolveTarget===void 0?c:n.resolveTarget(c);w!=null&&Promise.resolve(n.markRead(w)).catch(R=>{t.hooks?.onError?.({kind:"visible-range",messageIds:k},R);});},d);}function ye(n){k=Object.freeze([...n]),ce();let d={kind:"visible-range",messageIds:k};t.hooks?.beforeAction?.(d);try{u.actions.onVisibleRange?.(k),t.hooks?.afterAction?.(d,void 0);}catch(l){throw t.hooks?.onError?.(d,l),l}H.value?Re():Le();}function se(n,d){return !ne&&W===d&&C.value===n&&!z}function qe(n,d){se(n,d)&&(U=n,Z=Se(Te()),H.value=true,ce(),_e(),Re());}function Te(){return s.value.entryUnreadNavigation===void 0?s.value.entryUnread:{state:"none"}}function Se(n){return n.state!=="located"?n.state:`${n.state}:${n.firstMessageId}`}async function He(n,d,l){for(let c=0;c<60;c+=1){if(!se(n,d))return false;if(m.value?.scrollToMessage(l,{behavior:"auto",block:"center"})===true)return true;await nextTick(),typeof window<"u"&&typeof window.requestAnimationFrame=="function"&&await new Promise(R=>window.requestAnimationFrame(()=>R()));}return false}function Le(){let n=C.value,d=Se(Te());if(n===""||s.value.loading||s.value.error!==null&&s.value.messages.length===0||U===n&&(Z===d||Z.startsWith("located:")||z)||ie===n||G!==null)return;if(!V.value.enabled){U=n,Z=d,H.value=true,Re();return}let l=++W;z=false,H.value=false;let c=(async()=>{if(await nextTick(),!se(n,l))return;let w=m.value;if(w===null||!w.isMeasurable())return;let R=Te();if(R.state==="located"&&!I.value.includes(R.firstMessageId))return;let F=R.state==="located"?await He(n,l,R.firstMessageId):false;if(R.state==="located"&&!F)return;F||w.scrollToLatest();let ve=0;for(;se(n,l)&&ve<V.value.maxFillPages&&s.value.error===null&&(s.value.hasOlder||s.value.hasNewer&&u.actions.loadNewer!==void 0)&&w.isMeasurable()&&!w.isScrollable();){if(s.value.hasNewer&&u.actions.loadNewer!==void 0&&(s.value.messages.length===0||!s.value.hasOlder)){let Ee=Q;w.prepareHistoryPageAppend();try{await q(),await nextTick();}finally{C.value===n&&Q===Ee&&(W===l||z)&&w.cancelHistoryPageAppend();}}else await A();if(!se(n,l)||(ve+=1,await nextTick(),await nextTick(),!w.isMeasurable()))return}if(!se(n,l)||!w.isMeasurable())return;let he=Te();if(he.state==="located"){if(!I.value.includes(he.firstMessageId)||!await He(n,l,he.firstMessageId))return}else w.scrollToLatest();await nextTick(),qe(n,l);})().catch(()=>{se(n,l)&&(ie=n);}).finally(()=>{G===c&&(G=null);});G=c;}function ge(n,d=false){W+=1,G=null,z=false,H.value=n,n||(U="",Z="",d||(ie="")),Me();}function Pe(){T!==void 0&&(Q+=1,T.abort(),T=void 0,P=void 0,h.value=false);}function De(){if(ce(true),Pe(),z=true,H.value)return;let n=C.value;W+=1,G=null,U=n,H.value=true,Re();}let xe=Object.freeze({getViewportElement:()=>m.value?.getViewportElement()??null,loadOlder:A,retryOlder:Ge,loadNewer:q,retryNewer:Qe,jumpToLatest:Ce,jumpToEntryUnread:pe,scrollToMessage:je,locateMessage:Ke,focusViewport:()=>m.value?.focusViewport()});return i$1(xe),watch(Y,n=>{n&&H.value?Re():Me();}),watch([()=>s.value.activeRemoteMessageRevision??0,m,C],()=>{let n=m.value;if(n===null||!L.value)return;let d=u.actions.drainActiveRemoteMessageIds?.()??[];n.trackRemoteMessageIds(d,{isAtBottom:E.value,isHistoryWindow:s.value.isHistoryWindow,isPageVisible:ae.value})&&(E.value=false);},{flush:"post"}),watch([C,()=>s.value.loading,()=>s.value.error,()=>I.value.length,()=>s.value.hasOlder,()=>Se(Te()),V,()=>s.value.hasNewer],([n,d,l,c,,w],[R,,,F,,ve])=>{if(n!==R&&(Pe(),Q+=1,ge(false),D(true),m.value?.clearNewMessageBadge(),N.value=0,E.value=true,k=[],j.value=false,O.value=false,o.value=false,v.value=false,h.value=false,P=void 0,B=false,S=void 0),n!==""&&n===R&&F!==void 0&&F>0&&c===0&&(s.value.hasOlder||s.value.hasNewer)&&H.value&&ge(false,true),n!==""&&n===R&&w!==ve&&!Z.startsWith("located:")&&!z&&w.startsWith("located:")&&(U="",Z="",H.value=false),n===""){ge(false);return}if(l!==null&&s.value.messages.length===0){H.value||ge(false,true);return}d||Le();},{flush:"post",immediate:true}),onBeforeUnmount(()=>{ne=true,Pe(),Q+=1,ge(false),D(true);}),()=>{let n={conversation:t.conversation,state:s.value,items:f.value,actions:xe,initialViewportSettled:C.value!==""&&(s.value.messages.length===0?!s.value.loading&&s.value.error===null&&!s.value.hasOlder&&!s.value.hasNewer:H.value&&U===C.value)},d=[p.header?.(n),p["before-list"]?.(n)];if(!L.value)d.push(p.unsupported?.(n)??h$1("div",{"data-im-thread-unsupported":""}));else if(!s.value.ready&&s.value.loading)d.push(p.loading?.(n)??h$1("div",{"data-im-thread-loading":""}));else if(s.value.error!==null&&s.value.messages.length===0)d.push(p.error?.(n)??h$1("div",{"data-im-thread-error":""}));else if(s.value.ready&&s.value.messages.length===0&&!s.value.hasOlder&&!s.value.hasNewer)d.push(p.empty?.(n)??h$1("div",{"data-im-thread-empty":""}));else {let l=h$1(st,{ref:m,messageIds:I.value,contentKey:`${t.conversation.conversationType}\0${t.conversation.conversationId}`,loadingOlder:s.value.loadingOlder??s.value.loading,hasNewer:s.value.hasNewer,loadingNewer:s.value.loadingNewer??s.value.loading,followThreshold:ee.value.followThreshold,olderPrefetchThreshold:ee.value.olderPrefetchThreshold,visibleMargin:ee.value.visibleMargin,activeDateOffset:ee.value.activeDateOffset,activeDateEnabled:p["active-date"]!==void 0,resizeFollowEnabled:H.value&&!h.value,followNewMessages:ae.value&&!h.value,shouldFollowAppendedMessage:c=>{let w=s.value.messages.find(R=>R.id===c);return w===void 0?false:u.shouldFollowMessage?.(w)===true},onReachStart:()=>{Ve("older").catch(()=>{});},onReachEnd:()=>{Ve("newer").catch(()=>{});},onSettled:Ye,onUserScroll:De,onActiveDateChange:b,onVisibleRange:ye,onNewMessageCount:c=>{N.value=c;}},{default:()=>[p["viewport-before"]?.(n),h$1(it,{items:f.value,rendererRegistry:t.rendererRegistry,presentation:t.presentation,readActions:t.readActions},{item:p.item,"date-separator":p["date-separator"],"entry-unread":p["entry-unread"],encryption:p.encryption,system:p.system,message:p.message,"recalled-message":p["recalled-message"],"deleted-message":p["deleted-message"],"unsupported-body":p["unsupported-body"]}),p["viewport-after"]?.(n)]});d.push(h$1("div",{"data-im-thread-viewport-shell":""},[p["active-date"]?.({label:K.value,visible:te.value&&K.value!==""}),l,p["entry-unread-navigation"]?.({...n,count:s.value.entryUnreadNavigation?.state==="none"?0:s.value.entryUnreadNavigation?.count??0,loading:h.value,visible:n.initialViewportSettled&&!j.value&&!O.value&&!s.value.isHistoryWindow&&s.value.entryUnreadNavigation!==void 0&&s.value.entryUnreadNavigation.state!=="none"&&s.value.entryUnreadNavigation.count>0&&(o.value||s.value.hasOlder)})])),s.value.error!==null&&d.push(p.error?.(n)??h$1("div",{"data-im-thread-error":""}));}return d.push(p["after-list"]?.(n),p["jump-to-latest"]?.({...n,count:N.value,visible:v.value||!E.value||s.value.isHistoryWindow}),p["context-menu"]?.(n),p.composer?.(n)),h$1("section",{"data-im-thread-surface":"","data-conversation-type":t.conversation.conversationType,"data-conversation-id":t.conversation.conversationId},d)}}});function Rn(t){let i=new Map;for(let u of t){if(i.has(u.kind))throw new Error(`\u6D88\u606F renderer kind \u91CD\u590D\u6CE8\u518C\uFF1A${u.kind}`);i.set(u.kind,u.component);}let p=Object.freeze([...i.keys()]);return Object.freeze({kinds:p,resolve:u=>i.get(u)})}var Pn=140,En=120;function Je(t,i){if(t.width<=0||t.height<=0)return 0;let p=Math.max(0,Math.min(t.right,i.right)-Math.max(t.left,i.left)),u=Math.max(0,Math.min(t.bottom,i.bottom)-Math.max(t.top,i.top));return Math.min(1,p*u/(t.width*t.height))}function ft(t,i){return {x:t.x,y:t.top-i,top:t.top-i,bottom:t.bottom+i,left:t.left,right:t.right,width:t.width,height:t.height+i*2,toJSON:()=>({})}}function mt(t){let i=Math.max(0,t.scrollIdleMs??Pn),p=Math.max(0,t.visibilityDwellMs??En),u=Math.min(1,Math.max(0,t.minimumIntersectionRatio??.01)),m=Math.max(0,t.revealMarginPx??0),N=Math.max(0,t.preloadMarginPx??0),j=Math.max(m,N),h=Math.max(0,t.maxPreloadTargets??Number.POSITIVE_INFINITY),P=Math.max(1,t.maxSettledVisible??Number.POSITIVE_INFINITY),T=new Map,O=new Map,o=reactive(new Set),v=new Set,B=new Set,S=[],E=null,k=null,$=null,W=false,Q=false,G=false,U=false,Z,ie;function z(){Z!==void 0&&clearTimeout(Z),Z=void 0;}function ne(){ie!==void 0&&clearTimeout(ie),ie=void 0;}function H(f=false){if(!f&&k!==null||E===null)return;let I=E.getBoundingClientRect(),y=ft(I,j);for(let[D,b]of T){let J=D.getBoundingClientRect();b.ratio=Je(J,I),b.intersecting=b.ratio>0,b.revealIntersecting=j>0?Je(J,y)>0:b.intersecting&&b.ratio>=u;}}function K(f){return f.intersecting&&f.ratio>=u}function te(){for(let[f,I]of T)!I.revealIntersecting||o.has(I.key)||j>m&&(m===0&&!K(I)||m>0&&(E===null||Je(f.getBoundingClientRect(),ft(E.getBoundingClientRect(),m))<=0))||(o.add(I.key),t.onRevealed?.(I.item));}function re(f,I=false){let y=new Set(f.map(b=>b.key));if(!(!(y.size!==B.size||[...y].some(b=>!B.has(b)))&&!I)){B.clear();for(let b of y)B.add(b);t.onSettledVisibleChange?.(f.map(b=>b.item));}}function X(f,I=false){!I&&f.length===S.length&&f.every((y,D)=>y.key===S[D]?.key&&y.item===S[D]?.item)||(S=f,t.onSettledPreloadChange?.(f.map(y=>y.item)));}function s(){if(G||W)return;let f=Q;Q=false,H(),te();let I=E?.getBoundingClientRect(),y=I===void 0?0:(I.top+I.bottom)/2,D=[...T.entries()].filter(([,b])=>K(b)).sort(([b],[J])=>{let A=b.getBoundingClientRect(),q=J.getBoundingClientRect();return Math.abs((A.top+A.bottom)/2-y)-Math.abs((q.top+q.bottom)/2-y)}).slice(0,P).map(([,b])=>b);if(re(D,f),t.onSettledPreloadChange!==void 0&&I!==void 0){let b=ft(I,N),J=[...T.entries()].filter(([,A])=>A.revealIntersecting).map(([A,q])=>({target:q,rect:A.getBoundingClientRect()})).filter(({target:A,rect:q})=>K(A)||N>0&&Je(q,b)>0).sort((A,q)=>Number(K(q.target))-Number(K(A.target))||Math.abs((A.rect.top+A.rect.bottom)/2-y)-Math.abs((q.rect.top+q.rect.bottom)/2-y)).slice(0,h).map(({target:A})=>A);X(J,f);}for(let b of D)v.has(b.key)||(v.add(b.key),t.onActivated?.(b.item));}function ae(){G||W||(ne(),ie=setTimeout(()=>{ie=void 0,s();},p));}function Y(){G||(Q=true,L(true),X([]),H(),te(),re([]),ne(),z(),Z=setTimeout(()=>{Z=void 0,L(false),ae();},i));}function L(f){W!==f&&(W=f,t.onScrollingChange?.(f));}function ee(){E?.removeEventListener("scroll",Y),k?.disconnect(),$?.disconnect(),k=null,$=null,E=null;}function V(f=true){if(G)return;let I=t.getRoot();if(!(I===E&&E!==null)){if(X([]),ee(),E=I,E===null){f&&!U&&(U=true,Promise.resolve().then(()=>{U=false,G||(V(false),ae());}));return}if(E.addEventListener("scroll",Y,{passive:true}),typeof IntersectionObserver<"u"){k=new IntersectionObserver(y=>{for(let D of y){let b=T.get(D.target);b!==void 0&&(b.intersecting=D.isIntersecting,b.ratio=D.intersectionRatio,j===0&&(b.revealIntersecting=D.isIntersecting&&D.intersectionRatio>=u));}te(),ae();},{root:E,threshold:[0,u,1]}),j>0&&($=new IntersectionObserver(y=>{for(let D of y){let b=T.get(D.target);b!==void 0&&(b.revealIntersecting=D.isIntersecting);}te(),ae();},{root:E,rootMargin:`${j}px 0px`,threshold:0}));for(let y of T.keys())k.observe(y);for(let y of T.keys())$?.observe(y);}else H(),te();}}function C(f){X(S.filter(I=>I.key!==f)),o.delete(f),v.delete(f),B.delete(f);}return {register(f,I){if(G)return;let y=t.getKey(f),D=o.has(y),b=v.has(y),J=I===null?void 0:T.get(I);J!==void 0&&J.key!==y&&(O.delete(J.key),T.delete(I),C(J.key));let A=O.get(y);if(A!==void 0&&A!==I&&(k?.unobserve(A),$?.unobserve(A),T.delete(A),O.delete(y)),I===null){A!==void 0&&(k?.unobserve(A),$?.unobserve(A),T.delete(A),O.delete(y)),C(y);return}let q=T.get(I);if(q?.key===y&&q.item===f){V();return}T.set(I,{item:f,key:y,intersecting:q?.key===y?q.intersecting:false,ratio:q?.key===y?q.ratio:0,revealIntersecting:q?.key===y?q.revealIntersecting:false}),O.set(y,I),V(),k?.observe(I),$?.observe(I),H(true),te(),D&&t.onRevealed?.(f),b&&t.onActivated?.(f),ae();},isRevealed:f=>o.has(t.getKey(f)),isActivated:f=>v.has(t.getKey(f)),isSettledVisible:f=>B.has(t.getKey(f)),isScrolling:()=>W,notifyScroll:Y,refresh(){V(),H(true),te(),ae();},reset(){z(),ne(),L(false),Q=false,re([]),X([]),ee(),T.clear(),O.clear(),o.clear(),v.clear();},dispose(){G||(z(),ne(),L(false),Q=false,re([]),X([]),ee(),T.clear(),O.clear(),o.clear(),v.clear(),G=true);}}}function An(t){let i=new Map,p=new Map,u=false,m=h=>{let P=i.get(h.channel);return P===void 0?h.channel:`${h.channel}\0${P.getKey(h.item)}`},N=mt({getRoot:t.getRoot,getKey:m,revealMarginPx:t.revealMarginPx,preloadMarginPx:t.preloadMarginPx,minimumIntersectionRatio:t.minimumIntersectionRatio,scrollIdleMs:t.scrollIdleMs,visibilityDwellMs:t.visibilityDwellMs,onScrollingChange:h=>{for(let P of i.values())P.onScrollingChange?.(h);},onRevealed:h=>i.get(h.channel)?.onRevealed?.(h.item),onActivated:h=>i.get(h.channel)?.onActivated?.(h.item),onSettledPreloadChange:h=>{for(let[P,T]of i){let O=h.filter(o=>o.channel===P).map(o=>o.item);T.onSettledPreloadChange?.(O.slice(0,Math.max(0,T.maxPreloadTargets??Number.POSITIVE_INFINITY)));}},onSettledVisibleChange:h=>{for(let[P,T]of i){let O=h.filter(v=>v.channel===P).map(v=>v.item),o=T.maxSettledVisible===void 0?O:O.slice(0,T.maxSettledVisible);T.onSettledVisibleChange?.(o);}}});function j(h){return P=>{if(u)throw new Error("Thread visibility target group \u5DF2\u91CA\u653E");if(i.has(h))throw new Error(`Thread visibility channel \u5DF2\u5B58\u5728: ${h}`);i.set(h,P);let T=new Map;p.set(h,T);let O=false,o=S=>({channel:h,item:S});function v(){for(let S of T.values())N.register(S.target,null);T.clear(),P.onScrollingChange?.(false),P.onSettledVisibleChange?.([]),P.onSettledPreloadChange?.([]);}return {register(S,E){if(O||u)return;let k=P.getKey(S),$=T.get(k);if(E===null){$!==void 0&&(N.register($.target,null),T.delete(k));return}let W=$?.target.item===S?$.target:o(S);T.set(k,{target:W,element:E}),N.register(W,E);},isRevealed:S=>N.isRevealed(o(S)),isActivated:S=>N.isActivated(o(S)),isSettledVisible:S=>N.isSettledVisible(o(S)),isScrolling:N.isScrolling,notifyScroll:N.notifyScroll,refresh:N.refresh,reset:v,dispose(){O||(v(),O=true,i.delete(h),p.delete(h));}}}}return {createFactory:j,refresh:N.refresh,dispose(){if(!u){for(let h of p.values())for(let P of h.values())N.register(P.target,null);for(let h of i.values())h.onSettledPreloadChange?.([]);p.clear(),i.clear(),N.dispose(),u=true;}}}}export{rt as ImThreadBodySwitch,it as ImThreadItems,Mn as ImThreadSurface,st as ImThreadViewport,hn as createImThreadSurfaceContext,Rn as createMessageRendererRegistry,An as createThreadVisibilityTargetGroup,mt as createThreadVisibilityTargets,pn as provideImThreadSurfaceContext,Xt as useImText,lt as useImThreadSurfaceContext,Zt as useOptionalImThreadReadActions};
@@ -3331,7 +3331,7 @@ interface MediaAlbumItemInput {
3331
3331
  * 此时返回的仍是同样的 `SendMessageResult`,调用方不需要区分。
3332
3332
  */
3333
3333
  interface MediaAlbumMessageOptions {
3334
- /** 配文,最长 1024 字符;纯空白等同于没有配文。超长由 SDK 明确拒绝,**不静默截断**。 */
3334
+ /** 配文,最长 1200 个 Unicode 字符;纯空白等同于没有配文。超长由 SDK 明确拒绝,**不静默截断**。 */
3335
3335
  caption?: string;
3336
3336
  replyToMessageId?: string;
3337
3337
  /**
@@ -3385,7 +3385,7 @@ interface VoiceMessageMetadata {
3385
3385
  * @remarks 传 `Blob` 时必须提供 `fileName`;传 `File` 时默认读取其 name。非空 caption 使用协议 29,无配文默认保持 11。
3386
3386
  */
3387
3387
  interface FileMessageOptions {
3388
- /** 文件卡下方配文,最长 1024 字符。 */
3388
+ /** 文件卡下方配文,最长 1200 个 Unicode 字符。 */
3389
3389
  caption?: string;
3390
3390
  /** 同一带配文批次的前序文件使用 29,即使自身没有配文。 */
3391
3391
  filesAlbum?: boolean;
package/dist/chat-kit.js CHANGED
@@ -1 +1 @@
1
- export{q as DEFAULT_LOADING_MINIMUM_VISIBLE_MS,p as DEFAULT_LOADING_SHOW_DELAY_MS,x as MINI_PROGRAM_GAME_PREVIEW_FALLBACK_HEIGHT,w as MINI_PROGRAM_GAME_PREVIEW_FALLBACK_WIDTH,e as MINI_PROGRAM_LANG_NUMBERS,S as SPIKE_STEP,N as calculateMediaBox,E as canCopyMessageImage,t as canPromoteMediaPresentationSource,B as captureRuntimeClientOperation,A as captureRuntimeOperation,n as channelMiniProgramRelKey,z as createConversationPrefetchController,r as createDelayedLoadingIndicator,L as createLinkMatcher,F as createMessageImageCopySource,f as csvIncludes,d as decideChannelMiniProgramRelOpen,P as formatFileSize,O as formatMediaDuration,Q as getFileExtension,D as getMessageCopyImageUrl,C as getMessageCopyText,K as hasLinkCandidate,u as highlightSegments,a as isMiniProgramShowTypeOpenable,G as mediaService,J as normalizeLinkHref,V as placeholderWaveform,H as readService,U as resampleWaveform,s as resolveBestMediaPresentationSource,h as resolveChannelMiniProgramRelIcon,g as resolveChannelMiniProgramRelName,j as resolveChannelMiniProgramRelOpenSurface,i as resolveChannelMiniProgramRelUrl,k as resolveChannelPinnedGameCopy,o as resolveConversationListPresentation,M as resolveMediaPresentation,R as resolveMediaTransferPresentation,v as resolveMessageSearchPreview,c as resolveMiniProgramFloatLinkUrl,y as resolveMiniProgramGamePreviewLayout,b as resolveMiniProgramOpenUrl,I as resolveQuotedMessagePresentation,m as resolveVisibleChannelMiniProgramRels,l as sortChannelMiniProgramFloatingItems,T as spikeCountForDuration}from'./chunk-WISC6Q2S.js';export{j as DEFAULT_EMOJI_ASSET_BASE,i as EMOJI_CATALOG,c as EMOJI_GAME_DICE_STABLE_KEY,b as EMOJI_GAME_RPS_STABLE_KEY,m as EMOJI_TOKEN_RE,P as MAX_BATCH_FILES,a as MAX_RECENT_EMOJI_COUNT,g as UNICODE_EMOJI_CATALOG,O as blockReasonForChannelSession,N as blockReasonForChannelState,V as blockReasonForGroupState,Y as blockReasonForSession,I as canEditMessage,w as canPinChannelMessage,v as canPinGroupMessage,x as canPinMessage,H as canRecallMessage,fa as cancelMediaUpload,T as classifyGifFile,S as classifyMediaFile,s as countUnreadConversations,u as createChatRuntime,p as createEmojiMatcher,K as decideConversationAction,M as decideMemberTargetAction,L as decideMessageAction,l as emojiAssetUrl,n as emojiUrlByCode,Fa as fetchConversationFileBatch,Ga as fetchConversationImageBatch,Da as fetchConversationMessageBatch,Ha as fetchConversationVideoBatch,Ia as fetchConversationVoiceBatch,Ja as fetchNextConversationSearchBatch,r as formatConversationUnreadBadge,ia as forwardService,o as hasEmojiCandidate,U as isGifFile,y as isPinnedMessageProtected,aa as isVoiceStorageConfigured,Q as mediaBatchBudgetBytes,na as messageService,e as parseUnicodeEmojiCode,sa as pinnedMessageService,d as prependRecentEmoji,Ca as profileService,$ as replaceInterruptedMediaFile,W as requiresConversationEncryption,D as resolveChannelMemberAvatarUrl,C as resolveChannelMemberDisplayName,k as resolveEmojiToken,G as resolveFriendDisplayName,ta as resolveImProfileAccessDestination,A as resolveMemberDisplayName,t as resolveMessageNotificationDecision,F as resolvePublicNickname,E as resolveSenderAvatarUrl,q as resolveStandaloneEmojiMessage,h as resolveUnicodeEmoji,ga as retryMessage,R as runMediaSendBatch,ea as sendAsFilesBatch,J as sendBlockReasonForDecision,ca as sendMediaAlbum,_ as sendMediaFile,da as sendMediaFilesBatch,Z as sendText,ba as sendVoice,X as supportsConversationMention,f as unicodeEmojiTextFromCode}from'./chunk-2EB5ZELD.js';export{C as createNewMessageBadgeController,i as createThreadItems,f as formatChatDateSeparator,e as formatConversationDisplayTime,c as getLocalDayKey,l as isMessageLocateScrollProtected,v as isMessageTailChangeFromOlderWindowTrim,k as isMessageViewportMeasurable,B as isMessageVisibleForNewMessageBadge,x as loadOlderUntilBoundary,p as refreshPrependMessageAnchorPosition,j as resolveCenteredMessageScrollTop,a as resolveDisplayTimestamp,g as resolveImThreadActiveDate,h as resolveMessageBodyKind,b as resolveMessageTimelineTimestamp,n as resolvePrependMessageAnchor,q as resolvePrependMessageAnchorAdjustment,o as resolvePrependMessageAnchorPosition,s as resolveSurvivingMessageAnchorAdjustment,r as resolveVisibleMessageAnchorPositions,t as shouldCompleteInitialViewport,y as shouldFillInitialHistoryViewport,u as shouldFollowIncomingMessage,z as shouldLoadNewerHistoryPage,m as shouldPrefetchOlderHistory,w as shouldRestoreMessageViewportFocus,d as shouldShowChatDateSeparator,A as shouldTrackRemoteMessageForBadge}from'./chunk-I7RLO6MT.js';import'./chunk-A5WA7S7J.js';import'./chunk-5KHSKIN3.js';import'./chunk-SRMSBFOP.js';export{va as canTransmit,ta as canTransmitByType,ua as canTransmitContent,sa as requiresForwardTypeConfirmation}from'./chunk-54HSPG2Z.js';import'./chunk-WOT6VMZA.js';
1
+ export{q as DEFAULT_LOADING_MINIMUM_VISIBLE_MS,p as DEFAULT_LOADING_SHOW_DELAY_MS,x as MINI_PROGRAM_GAME_PREVIEW_FALLBACK_HEIGHT,w as MINI_PROGRAM_GAME_PREVIEW_FALLBACK_WIDTH,e as MINI_PROGRAM_LANG_NUMBERS,S as SPIKE_STEP,N as calculateMediaBox,E as canCopyMessageImage,t as canPromoteMediaPresentationSource,B as captureRuntimeClientOperation,A as captureRuntimeOperation,n as channelMiniProgramRelKey,z as createConversationPrefetchController,r as createDelayedLoadingIndicator,L as createLinkMatcher,F as createMessageImageCopySource,f as csvIncludes,d as decideChannelMiniProgramRelOpen,P as formatFileSize,O as formatMediaDuration,Q as getFileExtension,D as getMessageCopyImageUrl,C as getMessageCopyText,K as hasLinkCandidate,u as highlightSegments,a as isMiniProgramShowTypeOpenable,G as mediaService,J as normalizeLinkHref,V as placeholderWaveform,H as readService,U as resampleWaveform,s as resolveBestMediaPresentationSource,h as resolveChannelMiniProgramRelIcon,g as resolveChannelMiniProgramRelName,j as resolveChannelMiniProgramRelOpenSurface,i as resolveChannelMiniProgramRelUrl,k as resolveChannelPinnedGameCopy,o as resolveConversationListPresentation,M as resolveMediaPresentation,R as resolveMediaTransferPresentation,v as resolveMessageSearchPreview,c as resolveMiniProgramFloatLinkUrl,y as resolveMiniProgramGamePreviewLayout,b as resolveMiniProgramOpenUrl,I as resolveQuotedMessagePresentation,m as resolveVisibleChannelMiniProgramRels,l as sortChannelMiniProgramFloatingItems,T as spikeCountForDuration}from'./chunk-GMM3QOMY.js';export{j as DEFAULT_EMOJI_ASSET_BASE,i as EMOJI_CATALOG,c as EMOJI_GAME_DICE_STABLE_KEY,b as EMOJI_GAME_RPS_STABLE_KEY,m as EMOJI_TOKEN_RE,P as MAX_BATCH_FILES,a as MAX_RECENT_EMOJI_COUNT,g as UNICODE_EMOJI_CATALOG,O as blockReasonForChannelSession,N as blockReasonForChannelState,V as blockReasonForGroupState,Y as blockReasonForSession,I as canEditMessage,w as canPinChannelMessage,v as canPinGroupMessage,x as canPinMessage,H as canRecallMessage,fa as cancelMediaUpload,T as classifyGifFile,S as classifyMediaFile,s as countUnreadConversations,u as createChatRuntime,p as createEmojiMatcher,K as decideConversationAction,M as decideMemberTargetAction,L as decideMessageAction,l as emojiAssetUrl,n as emojiUrlByCode,Fa as fetchConversationFileBatch,Ga as fetchConversationImageBatch,Da as fetchConversationMessageBatch,Ha as fetchConversationVideoBatch,Ia as fetchConversationVoiceBatch,Ja as fetchNextConversationSearchBatch,r as formatConversationUnreadBadge,ia as forwardService,o as hasEmojiCandidate,U as isGifFile,y as isPinnedMessageProtected,aa as isVoiceStorageConfigured,Q as mediaBatchBudgetBytes,na as messageService,e as parseUnicodeEmojiCode,sa as pinnedMessageService,d as prependRecentEmoji,Ca as profileService,$ as replaceInterruptedMediaFile,W as requiresConversationEncryption,D as resolveChannelMemberAvatarUrl,C as resolveChannelMemberDisplayName,k as resolveEmojiToken,G as resolveFriendDisplayName,ta as resolveImProfileAccessDestination,A as resolveMemberDisplayName,t as resolveMessageNotificationDecision,F as resolvePublicNickname,E as resolveSenderAvatarUrl,q as resolveStandaloneEmojiMessage,h as resolveUnicodeEmoji,ga as retryMessage,R as runMediaSendBatch,ea as sendAsFilesBatch,J as sendBlockReasonForDecision,ca as sendMediaAlbum,_ as sendMediaFile,da as sendMediaFilesBatch,Z as sendText,ba as sendVoice,X as supportsConversationMention,f as unicodeEmojiTextFromCode}from'./chunk-VWXKODJ7.js';export{C as createNewMessageBadgeController,i as createThreadItems,f as formatChatDateSeparator,e as formatConversationDisplayTime,c as getLocalDayKey,l as isMessageLocateScrollProtected,v as isMessageTailChangeFromOlderWindowTrim,k as isMessageViewportMeasurable,B as isMessageVisibleForNewMessageBadge,x as loadOlderUntilBoundary,p as refreshPrependMessageAnchorPosition,j as resolveCenteredMessageScrollTop,a as resolveDisplayTimestamp,g as resolveImThreadActiveDate,h as resolveMessageBodyKind,b as resolveMessageTimelineTimestamp,n as resolvePrependMessageAnchor,q as resolvePrependMessageAnchorAdjustment,o as resolvePrependMessageAnchorPosition,s as resolveSurvivingMessageAnchorAdjustment,r as resolveVisibleMessageAnchorPositions,t as shouldCompleteInitialViewport,y as shouldFillInitialHistoryViewport,u as shouldFollowIncomingMessage,z as shouldLoadNewerHistoryPage,m as shouldPrefetchOlderHistory,w as shouldRestoreMessageViewportFocus,d as shouldShowChatDateSeparator,A as shouldTrackRemoteMessageForBadge}from'./chunk-CVLKJADF.js';import'./chunk-PPXQWMHO.js';import'./chunk-HE3QXYNQ.js';import'./chunk-YNYTR73D.js';export{va as canTransmit,ta as canTransmitByType,ua as canTransmitContent,sa as requiresForwardTypeConfirmation}from'./chunk-J77L6JLQ.js';import'./chunk-WOT6VMZA.js';
@@ -1 +1 @@
1
- import {c as c$1}from'./chunk-A5WA7S7J.js';import {u as u$1}from'./chunk-54HSPG2Z.js';var w=864e5,P=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function u(e){return e!=null&&Number.isFinite(e)&&e>0&&!Number.isNaN(new Date(e).getTime())}function v(e,r){if(u(e))return e;if(u(r))return r}function y(e,r){return v(r,e)}function m(e){if(!u(e))return "";let r=new Date(e);return `${r.getFullYear()}-${r.getMonth()+1}-${r.getDate()}`}function h(e,r){return u(e)?u(r)?m(e)!==m(r):true:false}function F(e,r){return T(e,r,"conversation")}function L(e,r){return T(e,r,"separator")}function T(e,r,t){if(!u(e))return "";let n=r.now??new Date;if(Number.isNaN(n.getTime()))return "";let o=new Date(e),a=b(n)-b(o),i=c$1(r.locale);return o.getFullYear()!==n.getFullYear()?A(o):a===0?t==="conversation"?k(o):i.today:a===1?i.yesterday:a>=2&&a<=6?x(o,i):D(o)}function b(e){return Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())/w}function x(e,r){return r.weekdays[P[e.getDay()]]}function k(e){return `${c(e.getHours())}:${c(e.getMinutes())}`}function A(e){return `${e.getFullYear()}/${c(e.getMonth()+1)}/${c(e.getDate())}`}function D(e){return `${c(e.getMonth()+1)}/${c(e.getDate())}`}function c(e){return String(e).padStart(2,"0")}function O(e){if(e.markers.length===0)return null;let r=e.viewportTop+e.overlayTop;if(e.markers[0].top>r+1)return null;let t=0;for(let d=0;d<e.markers.length&&!(e.markers[d].top>r+1);d+=1)t=d;let n=e.markers[t],o=r+e.overlayHeight,a=e.markers.filter(d=>d.top<o+1&&d.top+d.height>r-1).at(-1),i=a===void 0?0:Math.max(0,Math.min(a.top+a.height,o)-Math.max(a.top,r)),s=a===void 0?1:Math.max(1,Math.min(a.height,e.overlayHeight)),l=Math.min(1,i/s);return {key:n.key,label:n.label,inlineOpacity:1-l,...a===void 0?{}:{inlineDateKey:a.key}}}var C={text:"text",image:"image",video:"video",voice:"voice",file:"file",filesAlbum:"filesAlbum",sticker:"sticker",contact:"contact",miniProgram:"miniProgram",robot:"robot",game:"game",transfer:"transfer",gift:"gift",redPacket:"redPacket",call:"call",mediaAlbum:"mediaAlbum",system:"system",unknown:"unknown"};function S(e){switch(e.contentType){case "text":return typeof e.body.text=="string";case "image":return e.body.image!==void 0&&typeof e.body.image.url=="string";case "video":return e.body.video!==void 0&&typeof e.body.video.url=="string";case "voice":return e.body.voice!==void 0;case "filesAlbum":return (e.body.filesAlbum?.items.length??0)>0;case "file":return e.body.file!==void 0;case "sticker":return e.body.sticker!==void 0;case "contact":return e.body.contact!==void 0;case "miniProgram":return e.body.miniProgram!==void 0&&typeof e.body.miniProgram.appId=="string";case "robot":return e.body.robot!==void 0&&Array.isArray(e.body.robot.modules)&&Array.isArray(e.body.robot.commands);case "transfer":return e.body.transfer!==void 0&&typeof e.body.transfer.serialNumber=="string";case "gift":{let r=e.body.gift;return r!==void 0&&typeof r.serialNumber=="string"&&typeof r.giftName=="string"&&(r.giftType===0||r.giftType===1||r.giftType===2)}case "redPacket":{let r=e.body.redPacket;return r!==void 0&&r.packetId.trim()!==""&&(r.packetType===1||r.packetType===2||r.packetType===3||r.packetType===4)}case "call":return e.body.call!==void 0&&(e.body.call.callKind==="audio"||e.body.call.callKind==="video")&&typeof e.body.call.durationMs=="number";case "game":{let r=e.body.game;return r?.gameType==="dice"?Number.isInteger(r.value)&&r.value>=1&&r.value<=6:r?.gameType==="rock-paper-scissors"&&Number.isInteger(r.value)&&r.value>=1&&r.value<=3}case "mediaAlbum":{let r=e.body.mediaAlbum;return r!==void 0&&r.items.length>0&&r.items.every(t=>typeof t.url=="string"&&t.url!=="")}case "system":return e.body.system!==void 0;case "unknown":return e.body.unknown!==void 0}}function I(e){return e.encryption.decryptFailed===true?"decrypt-failed":S(e)?e.contentType==="sticker"?u$1(e.body.sticker.imageType):C[e.contentType]:"unknown"}function _(e){let r=[...e.leadingItems??[]],t=e.entryUnread.state==="located"?e.entryUnread:null,n,o=null,a=false;for(let i of e.messages){let s=y(i.createdAt,i.serverTime),l=s!==void 0&&h(s,n);s!==void 0&&l&&r.push({kind:"date-separator",key:`date-${m(s)}-${i.id}`,label:e.formatDate(s)}),n=s,!a&&t!==null&&i.id===t.firstMessageId&&(r.push({kind:"entry-unread",key:`entry-unread-${i.id}`,...t.count===void 0?{}:{count:t.count}}),a=true);let d=e.beforeMessageItems?.(i)??[];if(r.push(...d),I(i)==="system"){r.push({kind:"system",key:i.id,message:i}),o=null;continue}r.push({kind:"message",key:`message-${i.id}`,message:i,firstOfRun:l||i.senderId!==o}),o=i.senderId;}return r}function U(e){let r=e.targetTop-e.viewportTop,t=e.currentScrollTop+r-(e.viewportHeight-e.targetHeight)/2,n=Math.max(0,e.scrollHeight-e.viewportHeight);return Math.min(n,Math.max(0,t))}function j(e){return e!==null&&e.clientWidth>0&&e.clientHeight>0}function G(e){return e.locatedAt<=0||e.duration<0||e.now<e.locatedAt?false:e.now-e.locatedAt<=e.duration}function q(e){return !Number.isFinite(e.topThreshold)||e.topThreshold<0?false:e.currentScrollTop<e.previousScrollTop&&e.currentScrollTop<=e.topThreshold}function H(e,r){return e.find(t=>t.bottom>r.top&&t.top<r.bottom)??e[0]}function f(e){return e.anchorTop??e.top}function B(e,r){let t=H(e,r);return t===void 0?void 0:{id:t.id,offset:f(t)-r.top}}function J(e,r,t){if(e===void 0)return;let n=r.find(o=>o.id===e.id);return n!==void 0&&n.bottom>t.top&&n.top<t.bottom?{id:e.id,offset:f(n)-t.top}:B(r,t)??e}function V(e,r,t){if(e===void 0)return;let n=r.find(o=>o.id===e.id);return n===void 0?void 0:f(n)-t.top-e.offset}function Q(e,r,t=3){return !Number.isFinite(t)||t<=0?[]:e.filter(n=>n.bottom>r.top&&n.top<r.bottom).slice(0,Math.floor(t)).map(n=>({id:n.id,offset:f(n)-r.top}))}function X(e,r,t){for(let n of e){let o=V(n,r,t);if(o!==void 0)return o}}function Z(e){return e.sameConversation&&!e.isHistoryWindow&&!e.isLocating&&!e.isLocateProtected&&e.userKeptLatestIntent}function ee(e){return e.isPageVisible&&!e.isHistoryWindow&&!e.isLocating&&!e.isLocateProtected&&(e.isOwnMessage||e.isAtBottom)}function re(e){return e.isLoadingOlder&&e.previousTailId!==void 0&&e.previousTailId!==e.currentTailId&&e.previousMessageIds.includes(e.currentTailId)}function te(e,r){return e!==void 0&&!r.has(e)}async function ne(e,r){let t=0;for(;e()&&!(await r()<=0);)t+=1;return t}function oe(e){return e.hasMoreHistory&&Number.isFinite(e.scrollHeight)&&Number.isFinite(e.clientHeight)&&e.scrollHeight>0&&e.clientHeight>0&&e.scrollHeight<=e.clientHeight}function ie(e){return e.isHistoryWindow&&!e.isPageSettling&&e.isAtBottom&&(e.currentScrollTop>e.previousScrollTop||e.allowStationaryBoundary===true)}function M(e){return !e.isPageVisible||!e.isAtBottom||e.isHistoryWindow}function ae(e){let r=Math.max(0,e.margin);return e.messageTop<e.viewportBottom-r&&e.messageBottom>e.viewportTop+r}function le(e){let r=new Set;function t(s){return s===r.size?false:(e?.(r.size),true)}function n(s){let l=r.size;for(let d of s)d!==""&&r.add(d);return t(l)}function o(s,l){return M(l)&&n(s)}function a(s){let l=r.size;for(let d of s)r.delete(d);return t(l)}function i(){let s=r.size;return r.clear(),t(s)}return {get count(){return r.size},add:n,trackRemote:o,acknowledgeVisible:a,clear:i}}export{M as A,ae as B,le as C,v as a,y as b,m as c,h as d,F as e,L as f,O as g,I as h,_ as i,U as j,j as k,G as l,q as m,H as n,B as o,J as p,V as q,Q as r,X as s,Z as t,ee as u,re as v,te as w,ne as x,oe as y,ie as z};
1
+ import {c as c$1}from'./chunk-PPXQWMHO.js';import {u as u$1}from'./chunk-J77L6JLQ.js';var w=864e5,P=["sunday","monday","tuesday","wednesday","thursday","friday","saturday"];function u(e){return e!=null&&Number.isFinite(e)&&e>0&&!Number.isNaN(new Date(e).getTime())}function v(e,r){if(u(e))return e;if(u(r))return r}function y(e,r){return v(r,e)}function m(e){if(!u(e))return "";let r=new Date(e);return `${r.getFullYear()}-${r.getMonth()+1}-${r.getDate()}`}function h(e,r){return u(e)?u(r)?m(e)!==m(r):true:false}function F(e,r){return T(e,r,"conversation")}function L(e,r){return T(e,r,"separator")}function T(e,r,t){if(!u(e))return "";let n=r.now??new Date;if(Number.isNaN(n.getTime()))return "";let o=new Date(e),a=b(n)-b(o),i=c$1(r.locale);return o.getFullYear()!==n.getFullYear()?A(o):a===0?t==="conversation"?k(o):i.today:a===1?i.yesterday:a>=2&&a<=6?x(o,i):D(o)}function b(e){return Date.UTC(e.getFullYear(),e.getMonth(),e.getDate())/w}function x(e,r){return r.weekdays[P[e.getDay()]]}function k(e){return `${c(e.getHours())}:${c(e.getMinutes())}`}function A(e){return `${e.getFullYear()}/${c(e.getMonth()+1)}/${c(e.getDate())}`}function D(e){return `${c(e.getMonth()+1)}/${c(e.getDate())}`}function c(e){return String(e).padStart(2,"0")}function O(e){if(e.markers.length===0)return null;let r=e.viewportTop+e.overlayTop;if(e.markers[0].top>r+1)return null;let t=0;for(let d=0;d<e.markers.length&&!(e.markers[d].top>r+1);d+=1)t=d;let n=e.markers[t],o=r+e.overlayHeight,a=e.markers.filter(d=>d.top<o+1&&d.top+d.height>r-1).at(-1),i=a===void 0?0:Math.max(0,Math.min(a.top+a.height,o)-Math.max(a.top,r)),s=a===void 0?1:Math.max(1,Math.min(a.height,e.overlayHeight)),l=Math.min(1,i/s);return {key:n.key,label:n.label,inlineOpacity:1-l,...a===void 0?{}:{inlineDateKey:a.key}}}var C={text:"text",image:"image",video:"video",voice:"voice",file:"file",filesAlbum:"filesAlbum",sticker:"sticker",contact:"contact",miniProgram:"miniProgram",robot:"robot",game:"game",transfer:"transfer",gift:"gift",redPacket:"redPacket",call:"call",mediaAlbum:"mediaAlbum",system:"system",unknown:"unknown"};function S(e){switch(e.contentType){case "text":return typeof e.body.text=="string";case "image":return e.body.image!==void 0&&typeof e.body.image.url=="string";case "video":return e.body.video!==void 0&&typeof e.body.video.url=="string";case "voice":return e.body.voice!==void 0;case "filesAlbum":return (e.body.filesAlbum?.items.length??0)>0;case "file":return e.body.file!==void 0;case "sticker":return e.body.sticker!==void 0;case "contact":return e.body.contact!==void 0;case "miniProgram":return e.body.miniProgram!==void 0&&typeof e.body.miniProgram.appId=="string";case "robot":return e.body.robot!==void 0&&Array.isArray(e.body.robot.modules)&&Array.isArray(e.body.robot.commands);case "transfer":return e.body.transfer!==void 0&&typeof e.body.transfer.serialNumber=="string";case "gift":{let r=e.body.gift;return r!==void 0&&typeof r.serialNumber=="string"&&typeof r.giftName=="string"&&(r.giftType===0||r.giftType===1||r.giftType===2)}case "redPacket":{let r=e.body.redPacket;return r!==void 0&&r.packetId.trim()!==""&&(r.packetType===1||r.packetType===2||r.packetType===3||r.packetType===4)}case "call":return e.body.call!==void 0&&(e.body.call.callKind==="audio"||e.body.call.callKind==="video")&&typeof e.body.call.durationMs=="number";case "game":{let r=e.body.game;return r?.gameType==="dice"?Number.isInteger(r.value)&&r.value>=1&&r.value<=6:r?.gameType==="rock-paper-scissors"&&Number.isInteger(r.value)&&r.value>=1&&r.value<=3}case "mediaAlbum":{let r=e.body.mediaAlbum;return r!==void 0&&r.items.length>0&&r.items.every(t=>typeof t.url=="string"&&t.url!=="")}case "system":return e.body.system!==void 0;case "unknown":return e.body.unknown!==void 0}}function I(e){return e.encryption.decryptFailed===true?"decrypt-failed":S(e)?e.contentType==="sticker"?u$1(e.body.sticker.imageType):C[e.contentType]:"unknown"}function _(e){let r=[...e.leadingItems??[]],t=e.entryUnread.state==="located"?e.entryUnread:null,n,o=null,a=false;for(let i of e.messages){let s=y(i.createdAt,i.serverTime),l=s!==void 0&&h(s,n);s!==void 0&&l&&r.push({kind:"date-separator",key:`date-${m(s)}-${i.id}`,label:e.formatDate(s)}),n=s,!a&&t!==null&&i.id===t.firstMessageId&&(r.push({kind:"entry-unread",key:`entry-unread-${i.id}`,...t.count===void 0?{}:{count:t.count}}),a=true);let d=e.beforeMessageItems?.(i)??[];if(r.push(...d),I(i)==="system"){r.push({kind:"system",key:i.id,message:i}),o=null;continue}r.push({kind:"message",key:`message-${i.id}`,message:i,firstOfRun:l||i.senderId!==o}),o=i.senderId;}return r}function U(e){let r=e.targetTop-e.viewportTop,t=e.currentScrollTop+r-(e.viewportHeight-e.targetHeight)/2,n=Math.max(0,e.scrollHeight-e.viewportHeight);return Math.min(n,Math.max(0,t))}function j(e){return e!==null&&e.clientWidth>0&&e.clientHeight>0}function G(e){return e.locatedAt<=0||e.duration<0||e.now<e.locatedAt?false:e.now-e.locatedAt<=e.duration}function q(e){return !Number.isFinite(e.topThreshold)||e.topThreshold<0?false:e.currentScrollTop<e.previousScrollTop&&e.currentScrollTop<=e.topThreshold}function H(e,r){return e.find(t=>t.bottom>r.top&&t.top<r.bottom)??e[0]}function f(e){return e.anchorTop??e.top}function B(e,r){let t=H(e,r);return t===void 0?void 0:{id:t.id,offset:f(t)-r.top}}function J(e,r,t){if(e===void 0)return;let n=r.find(o=>o.id===e.id);return n!==void 0&&n.bottom>t.top&&n.top<t.bottom?{id:e.id,offset:f(n)-t.top}:B(r,t)??e}function V(e,r,t){if(e===void 0)return;let n=r.find(o=>o.id===e.id);return n===void 0?void 0:f(n)-t.top-e.offset}function Q(e,r,t=3){return !Number.isFinite(t)||t<=0?[]:e.filter(n=>n.bottom>r.top&&n.top<r.bottom).slice(0,Math.floor(t)).map(n=>({id:n.id,offset:f(n)-r.top}))}function X(e,r,t){for(let n of e){let o=V(n,r,t);if(o!==void 0)return o}}function Z(e){return e.sameConversation&&!e.isHistoryWindow&&!e.isLocating&&!e.isLocateProtected&&e.userKeptLatestIntent}function ee(e){return e.isPageVisible&&!e.isHistoryWindow&&!e.isLocating&&!e.isLocateProtected&&(e.isOwnMessage||e.isAtBottom)}function re(e){return e.isLoadingOlder&&e.previousTailId!==void 0&&e.previousTailId!==e.currentTailId&&e.previousMessageIds.includes(e.currentTailId)}function te(e,r){return e!==void 0&&!r.has(e)}async function ne(e,r){let t=0;for(;e()&&!(await r()<=0);)t+=1;return t}function oe(e){return e.hasMoreHistory&&Number.isFinite(e.scrollHeight)&&Number.isFinite(e.clientHeight)&&e.scrollHeight>0&&e.clientHeight>0&&e.scrollHeight<=e.clientHeight}function ie(e){return e.isHistoryWindow&&!e.isPageSettling&&e.isAtBottom&&(e.currentScrollTop>e.previousScrollTop||e.allowStationaryBoundary===true)}function M(e){return !e.isPageVisible||!e.isAtBottom||e.isHistoryWindow}function ae(e){let r=Math.max(0,e.margin);return e.messageTop<e.viewportBottom-r&&e.messageBottom>e.viewportTop+r}function le(e){let r=new Set;function t(s){return s===r.size?false:(e?.(r.size),true)}function n(s){let l=r.size;for(let d of s)d!==""&&r.add(d);return t(l)}function o(s,l){return M(l)&&n(s)}function a(s){let l=r.size;for(let d of s)r.delete(d);return t(l)}function i(){let s=r.size;return r.clear(),t(s)}return {get count(){return r.size},add:n,trackRemote:o,acknowledgeVisible:a,clear:i}}export{M as A,ae as B,le as C,v as a,y as b,m as c,h as d,F as e,L as f,O as g,I as h,_ as i,U as j,j as k,G as l,q as m,H as n,B as o,J as p,V as q,Q as r,X as s,Z as t,ee as u,re as v,te as w,ne as x,oe as y,ie as z};
@@ -1,2 +1,2 @@
1
- import {p}from'./chunk-2EB5ZELD.js';import {e,a as a$1}from'./chunk-I7RLO6MT.js';import {j as j$1,h}from'./chunk-A5WA7S7J.js';import {la}from'./chunk-54HSPG2Z.js';import {a}from'./chunk-WOT6VMZA.js';function ae(e){return e==="default"||e==="board-game-link"||e==="game-preview"}function se(e){return (e??"").trim().replace(/^[?&]+/,"").trim()}function le(e,n){let t=se(n);return e===""||t===""?e:e+(e.includes("?")?"&":"?")+t}function F(e){return e===""||e.startsWith("/")||e.startsWith("?")||e.startsWith("&")?false:e.includes(".")}function de(e){return e===""?"":/^https?:\/\//i.test(e)?e:`https://${e}`}function C(e){return le(ce(e),e.gamePath)}function ce(e){let n=e.domain?.trim()??"",t=e.suffixAddress?.trim()??"",i=e.h5Url?.trim()??"";if(n!==""){if(t==="")return n;if(t.startsWith("/"))return n.replace(/\/$/,"")+t;let r=t.replace(/^&/,""),o=n.includes("?")?"&":t.includes("?")?"":"?";return n+o+r}return /^https?:\/\//i.test(t)?t:F(t)?`https://${t}`:i}function R(e){let n=e.domain?.trim()??"",t=e.suffixAddress?.trim()??"",i=e.h5Url?.trim()??"";return /^https?:\/\//i.test(t)?t:F(t)?`https://${t}`:n!==""?de(C({domain:n,suffixAddress:t,h5Url:i})):/^https?:\/\//i.test(i)?i:F(i)?`https://${i}`:""}function me(e,n){return {id:e.appId??n,name:n,cover:"",...e.appId===void 0?{}:{appId:e.appId},...e.developerId===void 0?{}:{developerId:e.developerId},...e.domain===void 0?{}:{domain:e.domain},...e.suffixAddress===void 0?{}:{suffixAddress:e.suffixAddress},...e.h5Url===void 0?{}:{h5Url:e.h5Url},...e.isDynamic===void 0?{}:{isDynamic:e.isDynamic},...e.productId===void 0?{}:{productId:e.productId}}}function ue(e,n){if(e.configType==="float-link"){let r=R({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url});return r===""?{kind:"refuse"}:{kind:"open-link",url:r}}if(e.configType!=="pinned-game"&&e.configType!=="float-game")return {kind:"refuse"};let t=e.appId?.trim()??"",i=C({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url});return t===""||i===""?{kind:"refuse"}:{kind:"open-game",game:me(e,n.name),currencyType:n.currentCurrencyType??""}}var V={"zh-CN":1,"zh-TW":2,"en-US":3,"vi-VN":4,"th-TH":5};function G(e,n){let t=String(n).trim();return t===""||t==="0"?false:(e??"").split(",").map(i=>i.trim()).filter(i=>i!=="").includes(t)}function z(e){return e in V?e:"en-US"}function Q(e,n){let i={"zh-CN":e.nameZhHans,"zh-TW":e.nameZhHant,"en-US":e.nameEn,"vi-VN":e.nameVi,"th-TH":e.nameTh}[z(n)]?.trim()??"";return i!==""?i:[e.nameEn,e.nameZhHans,e.nameZhHant,e.nameVi,e.nameTh].map(r=>r?.trim()??"").find(r=>r!=="")??""}function fe(e){return e.icon?.trim()||e.iconSmall?.trim()||e.iconMedium?.trim()||e.iconLarge?.trim()||""}function q(e){return C({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url})}function J(e){return (e.appId?.trim()??"")!==""}function pe(e){return e.configType==="float-game"?J(e)&&q(e)!=="":e.configType==="float-link"?R({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url})!=="":false}function ge(e){return e.configType==="float-game"?"half":"page"}function he(e){let n=Q(e.rel,e.locale);return {title:e.channelDescription?.trim()??"",tag:n,name:n}}function Y(e){return [...e].sort((n,t)=>n.configType===t.configType?0:n.configType==="float-game"?1:t.configType==="float-game"?-1:0)}function Me(e,n){if(e===void 0)return {pinnedGame:null,floatingItems:[]};let t=V[z(n.locale)],i=e.filter(r=>r.configType!=="unknown"&&G(r.langTypes,t)&&G(r.currencyTypes,n.currencyType??""));return {pinnedGame:i.find(r=>r.configType==="pinned-game"&&J(r))??null,floatingItems:Y(i.filter(r=>(r.configType==="float-link"||r.configType==="float-game")&&pe(r)))}}function ve(e,n){return [e,n.configType,n.appId??"",n.suffixAddress??n.h5Url??""].join("|")}var H=p();function ye(e$1,n){let t=n.suppressDraft===true?null:e$1.draft,i=t?.text.trim()??"",r,o="",a="";return t!==null?r=i===""?[]:Ce(e$1,i,n.locale):be(e$1)?r=w(Re(e$1,n)):e$1.lastMessageSummary?.kind==="channel-moderation-deleted"||e$1.lastMessageDeletedForEveryone!==void 0?r=w(S(e$1,e$1.lastMessageSummary?.kind==="channel-moderation-deleted"?e$1.lastMessageSummary:{kind:"channel-moderation-deleted",by:e$1.lastMessageDeletedForEveryone?.by??""},n)):e$1.lastMessageSummary?.kind==="recalled"||e$1.lastMessageRecalled!==void 0?r=w(S(e$1,e$1.lastMessageSummary?.kind==="recalled"?e$1.lastMessageSummary:{kind:"recalled",by:e$1.lastMessageRecalled?.by??""},n)):(o=we(e$1,n),a=e$1.mentionUnreadCount>0?n.labels.mentionBadge:"",r=xe(e$1,n)),{preview:`${a}${o}${r.map(l=>l.text).join("")}`||(t===null?n.labels.emptyPreview:""),previewSegments:r,...Ie(e$1,t!==null),...Pe(e$1,t!==null,n.accountId),senderPrefix:o,mentionBadge:a,time:e(a$1(t?.updatedAt,e$1.timestamp),{locale:n.locale,...n.now===void 0?{}:{now:n.now}}),hasDraft:t!==null}}function w(e){return [{kind:"text",text:e}]}function Ie(e,n){let t=e.lastMessageSummary;if(n||e.lastMessageDeletedForEveryone!==void 0||e.lastMessageRecalled!==void 0||e.lastMessageSystemEvent!==void 0||t===void 0)return {};if(t.kind==="mediaAlbum"){let{imageCount:i,videoCount:r,caption:o,firstItemKind:a}=t;return i<=0&&r<=0?{}:o!==void 0&&o!==""&&a!==void 0?{previewMediaKind:a}:i>0&&r>0?{previewMediaKind:"mediaAlbum"}:{previewMediaKind:r>0?"video":"image"}}return t.kind==="image"||t.kind==="video"||t.kind==="gif"||t.kind==="sticker"||t.kind==="voice"?{previewMediaKind:t.kind}:{}}function Pe(e,n,t){return n||e.ref.conversationType!=="direct"||e.lastMessageSenderId!==t||e.lastMessageSendState!==void 0||e.lastMessageDeletedForEveryone!==void 0||e.lastMessageRecalled!==void 0||e.lastMessageSystemEvent!==void 0||e.lastMessageSummary?.kind==="system"||e.lastMessageSummary?.kind==="recalled"||e.lastMessageSummary?.kind==="channel-moderation-deleted"||e.lastMessageReceipt===void 0?{}:{previewReceipt:e.lastMessageReceipt}}function B(e){return e.map(n=>n.kind==="emoji"?{kind:"emoji",text:n.text,code:n.code}:{kind:n.kind,text:n.text})}function Ce(e,n,t){let i=e.draft?.mentions??[],r=[],o={},a=false;for(let l of i){if(l.userId==="0"){a=true;continue}r.includes(l.userId)||r.push(l.userId),l.displayName.trim()!==""&&(o[l.userId]=l.displayName);}let s=a||r.length>0?{atAll:a,atUserIds:r,...Object.keys(o).length===0?{}:{atUsersName:o}}:void 0;return B(la(n,{mention:s,resolveName:l=>o[l]??l,atAllDisplay:j$1(t),matchers:[H]}))}function xe(e,n){let t=e.lastMessageSummary;if(t!==void 0&&t.kind!=="text"){let o=S(e,t,n);return (t.kind==="mediaAlbum"||t.kind==="filesAlbum")&&t.caption?B(la(o,{resolveName:a=>n.resolveName(e.ref,a),matchers:[H]})):w(o)}let i=(t?.kind==="text"?t.text:e.lastMessagePreview).trim();if(i==="")return w(n.labels.emptyPreview);let r=e.lastMessageMention?.atUsersName;return B(la(i,{mention:e.lastMessageMention===void 0?void 0:{...e.lastMessageMention,atUserIds:[...e.lastMessageMention.atUserIds]},resolveName:o=>n.resolveName(e.ref,o,r?.[o]),selfId:n.accountId,atAllDisplay:j$1(n.locale),matchers:[H]}))}function S(e,n,t){return h(Se(n),{locale:t.locale,selfId:t.accountId,resolveName:i=>t.resolveName(e.ref,i)})}function be(e){return e.lastMessageSummary?.kind==="system"||e.lastMessageSenderId==="system"||e.lastMessageSystemEvent!==void 0}function Re(e,n){return e.lastMessageSummary?.kind==="system"?S(e,e.lastMessageSummary,n):e.lastMessageSystemEvent===void 0?e.lastMessagePreview.trim()||n.labels.emptyPreview:S(e,{kind:"system",system:{eventType:e.lastMessageSystemEvent,...e.lastMessageSystemTargetsSelf===true?{targetUserIds:[n.accountId]}:{},...e.lastMessagePreview.trim()===""?{}:{fallbackText:e.lastMessagePreview.trim()}}},n)}function we(e,n){let t=e.lastMessageSenderId;return e.ref.conversationType!=="group"&&e.ref.conversationType!=="channel"||t===void 0||t===""||t==="system"?"":`${t===n.accountId?n.labels.selfSender:n.resolveName(e.ref,t)}: `}function Se(e){return e.kind!=="system"?e:{kind:"system",system:{eventType:e.system.eventType,...e.system.operatorId===void 0?{}:{operatorId:e.system.operatorId},...e.system.targetUserIds===void 0?{}:{targetUserIds:[...e.system.targetUserIds]},...e.system.fallbackText===void 0?{}:{fallbackText:e.system.fallbackText}}}}var Te=160,Ae=220;function Le(e){let n=Math.max(0,e.showDelayMs??160),t=Math.max(0,e.minimumVisibleMs??220),i=e.now??Date.now,r=e.setTimer??((m,v)=>setTimeout(m,v)),o=e.clearTimer??(m=>clearTimeout(m)),a="",s=false,l=false,d=0,u,y,c=false;function f(){u!==void 0&&o(u),u=void 0;}function g(){y!==void 0&&o(y),y=void 0;}function M(m){l!==m&&(l=m,d=m?i():0,e.onVisibleChange(m));}function h(m){f(),u=r(()=>{u=void 0,!(c||!s||a!==m)&&M(true);},n);}function p(){if(f(),!l)return;let m=t-Math.max(0,i()-d);if(m<=0){M(false);return}g(),y=r(()=>{y=void 0,!(c||s)&&M(false);},m);}return {update(m,v){if(c)return;if(a!==v){a=v,s=m,f(),g(),M(false),m&&h(v);return}if(s=m,m){g(),!l&&u===void 0&&h(v);return}p();},dispose(){c||(c=true,s=false,f(),g(),M(false));}}}var E={placeholder:0,thumbnail:1,local:2,original:3};function ke(e){let n;for(let t of e)t.value!==void 0&&(n===void 0||E[t.quality]>E[n.quality])&&(n=t);return n}function Ee(e,n){return E[n]>=E[e]}function j(e,n){if(n.length===0)return [{text:e,hit:false}];let t=[],i=0;for(let[r,o]of n)r>i&&t.push({text:e.slice(i,r),hit:false}),t.push({text:e.slice(r,o),hit:true}),i=o;return i<e.length&&t.push({text:e.slice(i),hit:false}),t}var Ue=p();function Oe(e,n){let t=e.preview===""?[{kind:"text",text:n.emptyText}]:e.previewParts.flatMap(a=>a.kind==="plain"?[{kind:"text",text:a.text}]:la(a.text,{mention:a.mention,resolveName:s=>n.resolveName(s,a.mention?.atUsersName?.[s]),atAllDisplay:j$1(n.locale),matchers:[Ue]})),i=t.map(a=>a.text).join(""),r=n.matcher?.match(i)?.ranges??[],o=0;return t.flatMap(a=>{let s=o;o+=a.text.length;let l=r.filter(d=>d.start<o&&d.end>s).map(d=>[Math.max(0,d.start-s),Math.min(a.text.length,d.end-s)]);return a.kind==="emoji"||a.kind==="legacy-emoji-placeholder"?[{...a,hit:l.length>0}]:j(a.text,l).map(d=>({...a,...d}))})}var Ne=280,_e=180;function De(e){return /^data:image\//i.test(e)?true:/\.(?:png|jpe?g|gif|webp|bmp|avif|heic|heif|svg)(?:[?#]|$)/i.test(e)}function X(e,n){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:n}function Fe(e){let n=e.gamePreviewUrl?.trim()??"";return n===""?{url:"",sourceWidth:280,sourceHeight:180,render:"empty"}:{url:n,sourceWidth:X(e.gamePreviewWidth,280),sourceHeight:X(e.gamePreviewHeight,180),render:e.imageLoadFailed===true||!De(n)?"document":"image"}}function U(e){return `${e.conversationType}:${e.conversationId}`}function Ge(e,n){let t=n===null?null:U(n),i=new Set;return e.filter(r=>{let o=U(r.ref);return r.ref.conversationType!=="group"&&r.ref.conversationType!=="channel"||o===t||i.has(o)?false:(i.add(o),true)}).map((r,o)=>({item:r,index:o})).sort((r,o)=>Number(o.item.pinned)-Number(r.item.pinned)||+(o.item.unreadCount>0)-+(r.item.unreadCount>0)||r.index-o.index).slice(0,20).map(({item:r})=>({conversationType:r.ref.conversationType,conversationId:r.ref.conversationId}))}function Ve(e){let n=false,t=null,i,r=false,o=0,a=false,s,l=new Set,d;function u(h,p,m){let v=`${h}:${p??""}`;v!==s&&(s=v,e.diagnostics?.record("debug","chat-kit","history","conversation-prefetch-state",()=>({conversation:m,data:{phase:h,reason:p,attemptedCount:l.size}})));}function y(){o+=1,r=false,i?.(),i=void 0;}function c(){y(),d?.controller.abort(),d=void 0,a=false,l.clear(),t=null,s=void 0;}function f(){return Ge(e.getCandidates(),e.getActiveRef()).filter(h=>!l.has(U(h)))}async function g(){if(r=false,i=void 0,n)return;if(!e.getRunnable()){u("paused","host-not-ready");return}let h=e.getClient();if(h!==t||h===null){M();return}let p=f()[0];if(d!==void 0)return;if(p===void 0){u("exhausted","no-candidates");return}let m={controller:new AbortController,key:U(p)};d=m,a=false,l.add(m.key),u("running",void 0,p);let v=false;try{let k=await h.conversations.prefetchRecent([p],{signal:m.controller.signal});if(d!==m)return;v=k.some(oe=>oe.status==="cancelled"),v&&l.delete(m.key);}catch(k){d===m&&!m.controller.signal.aborted&&e.onError(k);}finally{d===m&&(m.controller.signal.aborted&&l.delete(m.key),d=void 0,a||!v&&!m.controller.signal.aborted?M():u("paused",m.controller.signal.aborted?"host-cancelled":"sdk-cancelled"));}}function M(){if(n)return;let h=e.getClient();if(h!==t&&(c(),t=h),!e.getRunnable()||t===null){y(),d?.controller.abort(),u("paused",t===null?"client-unavailable":"host-not-ready");return}if(d!==void 0){a=true;return}if(r)return;if(f().length===0){u("exhausted","no-candidates");return}r=true,u("scheduled");let p=++o,m=e.scheduleIdle(()=>{r&&p===o&&g();});r&&(i=m);}return {refresh:M,reset:c,dispose(){n=true,c();}}}function He(e){let n=e.getGeneration();return Object.freeze({isCurrent:()=>e.getGeneration()===n})}function T(e){let n=e.getClient();if(n===null)return null;let t=e.getGeneration();return Object.freeze({client:n,isCurrent:()=>e.getGeneration()===t&&e.getClient()===n})}function W(e,n){if(n===void 0){if(e.contentType==="image")return e.body.image;let i=e.body.mediaAlbum;if(e.contentType!=="mediaAlbum"||i?.items.length!==1||!i.caption?.trim())return;n=0;}let t=e.contentType==="mediaAlbum"?e.body.mediaAlbum?.items[n]:void 0;return t?.kind==="image"?t:void 0}function Be(e){return e?.contentType==="mediaAlbum"?e.body.mediaAlbum?.caption??"":e?.contentType==="filesAlbum"?e.body.filesAlbum?.caption??"":e?.body.text??""}function je(e,n){return e===void 0?void 0:W(e,n)?.url}function Z(e,n){return e!==void 0&&e.status==="sent"&&e.conversationType!=="supergroup"&&e.recalled===void 0&&e.deletedForEveryone===void 0&&W(e,n)!==void 0}function We(e,n,t,i){let r=T(e),o=W(n,i),a=i??(n.contentType==="mediaAlbum"?0:void 0),s={conversationType:n.conversationType,conversationId:n.conversationId},l=()=>r===null||!r.isCurrent()||!t()?false:Z(n,i),d=()=>{if(!l())throw new DOMException("Image copy is no longer active","AbortError")};return {isCurrent:l,async loadOriginal(){if(d(),s.conversationType==="supergroup")throw new Error("Unsupported image copy conversation");let u=await r.client.media.download({conversation:{...s,conversationType:s.conversationType},messageId:n.id,...a===void 0?{}:{itemIndex:a}});return d(),u},async loadThumbnail(){d();let u=o?.thumbData;if(u===void 0||u.length===0)throw new Error("Image thumbnail unavailable");return new Blob([new Uint8Array(u)])}}}var te={};a(te,{acquireMediaBlob:()=>ze,detectImageMime:()=>ee,detectVideoMime:()=>ne,loadCachedImageObjectUrl:()=>en,loadCachedMediaAlbumItemObjectUrl:()=>Xe,loadCachedVideoObjectUrl:()=>Je,loadFileObjectUrl:()=>nn,loadImageObjectUrl:()=>Ze,loadMediaAlbumItemObjectUrl:()=>Ye,loadVideoObjectUrl:()=>qe,loadVoiceBytes:()=>Qe,prepareLocalMediaPreview:()=>$e,prioritizeMediaDownload:()=>Ke});function A(e,n){if(e.conversationType!=="supergroup")return {conversation:{conversationType:e.conversationType,conversationId:e.conversationId},messageId:e.id,...n===void 0?{}:{itemIndex:n}}}function Ke(e,n,t){let i=e.getClient(),r=A(n,t);if(i===null||r===void 0)throw new Error("media download unavailable");i.media.prioritizeDownload(r);}async function L(e,n,t,i){let r=e.getClient(),o=A(n,i);if(r===null||o===void 0)throw new Error("media download unavailable");let a=t===void 0?void 0:r.media.subscribe(s=>{let l=s.find(d=>d.direction==="download"&&d.messageId===o.messageId&&d.itemIndex===i&&d.ref.conversationType===o.conversation.conversationType&&d.ref.conversationId===o.conversation.conversationId);l!==void 0&&t(l.percent);});try{return await r.media.download(o)}finally{a?.();}}function O(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="IM_SDK_MEDIA_DOWNLOAD_CANCELED"}async function $e(e,n){let t=e.getClient();if(t===null)return null;let i=e.getGeneration(),r=await t.media.prepareLocalPreview(n);return r===null||e.getGeneration()!==i?null:r}function ee(e){return e.length>=3&&e[0]===255&&e[1]===216&&e[2]===255?"image/jpeg":e.length>=8&&e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71?"image/png":e.length>=6&&e[0]===71&&e[1]===73&&e[2]===70?"image/gif":e.length>=12&&e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80?"image/webp":null}async function N(e){let n=new Uint8Array(await e.slice(0,12).arrayBuffer()),t=ee(n);return t===null?null:URL.createObjectURL(e.type===t?e:e.slice(0,e.size,t))}function ne(e){return e.length>=4&&e[0]===26&&e[1]===69&&e[2]===223&&e[3]===163?"video/webm":(e.length>=8&&e[4]===102&&e[5]===116&&e[6]===121&&e[7]===112,"video/mp4")}function ze(e,n,t){return e.acquireMediaBlob({conversationType:n.conversationType,conversationId:n.conversationId,messageId:n.id,...t===void 0?{}:{itemIndex:t}})}async function Qe(e,n,t){let i=e.getClient(),r=n.body.voice;if(i===null||r===void 0)return null;let o=e.getSelfVoiceBytes(n.id);if(o!==void 0)return o;let a=e.getGeneration();try{let s=new Uint8Array(await(await L(e,n)).arrayBuffer());return s.length===0?(e.getGeneration()===a&&t.setNote(t.t("media.voiceLoadEmpty")),null):s}catch(s){return e.getGeneration()===a&&t.setNote(t.t("media.voiceLoadFailed",{reason:s instanceof Error?s.message:String(s)})),null}}async function qe(e,n,t,i){let r=e.getClient(),o=n.body.video;if(r===null||o===void 0)return null;let a=e.getGeneration();try{let s=await L(e,n,i);if(s.size===0)return e.getGeneration()===a&&t.setNote(t.t("media.videoOpenEmpty")),null;let l=URL.createObjectURL(s);return e.getGeneration()!==a?(URL.revokeObjectURL(l),null):l}catch(s){return e.getGeneration()===a&&!O(s)&&t.setNote(t.t("media.videoLoadFailed",{reason:s instanceof Error?s.message:String(s)})),null}}async function Je(e,n){let t=e.getClient(),i=A(n);if(t===null||i===void 0||n.body.video===void 0)return null;let r=e.getGeneration();try{let o=await t.media.getCached(i);if(o===null||o.size===0||e.getGeneration()!==r)return null;let a=new Uint8Array(await o.slice(0,12).arrayBuffer()),s=o.type||ne(a);return e.getGeneration()!==r?null:URL.createObjectURL(o.type===s?o:o.slice(0,o.size,s))}catch{return null}}async function Ye(e,n,t,i,r){let o=e.getClient(),a=n.body.mediaAlbum?.items[t];if(o===null||a===void 0)return null;let s=a.kind==="video",l=e.getGeneration();try{let d=await L(e,n,r,t);if(s&&d.size===0)return e.getGeneration()===l&&i.setNote(i.t("media.videoOpenEmpty")),null;let u=s?URL.createObjectURL(d):await N(d);return u===null?(e.getGeneration()===l&&i.setNote(i.t("media.imageInvalid",{size:d.size})),null):e.getGeneration()!==l?(URL.revokeObjectURL(u),null):u}catch(d){return e.getGeneration()===l&&!O(d)&&i.setNote(i.t(s?"media.videoLoadFailed":"media.imageLoadFailed",{reason:d instanceof Error?d.message:String(d)})),null}}async function Xe(e,n,t){let i=e.getClient(),r=n.body.mediaAlbum?.items[t],o=A(n,t);if(i===null||o===void 0||r===void 0||!/^https?:\/\//i.test(r.url))return null;let a=e.getGeneration();try{let s=await i.media.getCached(o);if(s===null||s.size===0||e.getGeneration()!==a)return null;let l=r.kind==="video"?URL.createObjectURL(s):await N(s);return l===null?null:e.getGeneration()!==a?(URL.revokeObjectURL(l),null):l}catch{return null}}async function Ze(e,n,t){let i=e.getClient(),r=n.body.image;if(i===null||r===void 0)return null;let o=e.getGeneration();try{let a=await L(e,n),s=await N(a);return s===null?(e.getGeneration()===o&&t.setNote(t.t("media.imageInvalid",{size:a.size})),null):e.getGeneration()!==o?(URL.revokeObjectURL(s),null):s}catch(a){return e.getGeneration()===o&&!O(a)&&t.setNote(t.t("media.imageLoadFailed",{reason:a instanceof Error?a.message:String(a)})),null}}async function en(e,n){let t=e.getClient(),i=A(n);if(t===null||i===void 0||n.body.image===void 0)return null;let r=e.getGeneration();try{let o=await t.media.getCached(i);if(o===null||o.size===0||e.getGeneration()!==r)return null;let a=await N(o);return a===null?null:e.getGeneration()!==r?(URL.revokeObjectURL(a),null):a}catch{return null}}async function nn(e,n,t,i,r){let o=e.getClient(),a=r===void 0?n.body.file:n.body.filesAlbum?.items[r];if(o===null||a===void 0)return null;let s=e.getGeneration();try{let l=await L(e,n,i,r);if(l.size===0)return e.getGeneration()===s&&t.setNote(t.t("media.fileDownloadEmpty")),null;let d=URL.createObjectURL(l);return e.getGeneration()!==s?(URL.revokeObjectURL(d),null):d}catch(l){return e.getGeneration()===s&&!O(l)&&t.setNote(t.t("media.fileDownloadFailed",{reason:l instanceof Error?l.message:String(l)})),null}}var re={};a(re,{markReadUpTo:()=>tn});function tn(e,n,t,i){let r=T(e);if(r===null||n.conversationId===""||t==="")return;let o=r.client.conversations.list().find(s=>s.id===n.conversationId&&s.type===n.conversationType);if(o?.manuallyUnread===true&&o.unreadCount<=0){r.client.conversations.markConversationRead(n).catch(s=>{r.isCurrent()&&e.getDiagnostics().record("warn","chat-kit","conversation","clear-manual-unread-skipped",()=>({conversation:n,error:{message:"\u6E05\u9664\u624B\u5DE5\u672A\u8BFB\u63D0\u9192\u5931\u8D25",data:s}}));});return}if(o?.type==="group"&&o.unreadCount<=0)return;let a=i.getConversationHandle();a===void 0||a.ref.conversationId!==n.conversationId||a.ref.conversationType!==n.conversationType||a.markRead(t).catch(s=>{r.isCurrent()&&i.getConversationHandle()===a&&e.getDiagnostics().record("warn","chat-kit","message","mark-read-skipped",()=>({conversation:n,data:{messageId:t},error:{message:"markRead \u8DF3\u8FC7",data:s}}));});}function rn(e){return e.deletedForEveryone!==void 0?"hidden":e.recalled!==void 0?"recalled":"content"}var on=/\b(?:https?:\/\/|www\.)[^\s<>"')】]+/gi,an=/\b(?:https?:\/\/|www\.)/i,sn=/[),.!?;:,。!?;:、)】]+$/u;function ie(e){let n=/^www\./i.test(e)?`https://${e}`:e;try{let t=new URL(n);return t.protocol==="http:"||t.protocol==="https:"?t.href:void 0}catch{return}}function ln(e){return an.test(e)}function dn(){return e=>{let n=[];for(let t of e.matchAll(on)){if(t.index===void 0)continue;let i=t[0].replace(sn,"");if(i==="")continue;let r=ie(i);r!==void 0&&n.push({start:t.index,end:t.index+i.length-1,segment:{kind:"link",text:i,href:r}});}return n}}function I(e,n){if(!Number.isFinite(e)||e<=0)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${n} \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6709\u9650\u6570`)}function cn(e){if(I(e.fallbackAspectRatio,"fallbackAspectRatio"),!Array.isArray(e.rules)||e.rules.length===0)throw new Error("\u5A92\u4F53\u5C55\u793A\u7B56\u7565 rules \u4E0D\u80FD\u4E3A\u7A7A");let n=new Set;e.rules.forEach((t,i)=>{let r=`rules[${i}]`;if(t.id.trim()==="")throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.id \u4E0D\u80FD\u4E3A\u7A7A`);if(n.has(t.id))throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565\u89C4\u5219 id \u91CD\u590D\uFF1A${t.id}`);if(n.add(t.id),t.minAspectRatio!==void 0&&(!Number.isFinite(t.minAspectRatio)||t.minAspectRatio<0))throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.minAspectRatio \u5FC5\u987B\u662F\u5927\u4E8E\u7B49\u4E8E 0 \u7684\u6709\u9650\u6570`);if(t.maxAspectRatio!==void 0&&I(t.maxAspectRatio,`${r}.maxAspectRatio`),t.minAspectRatio!==void 0&&t.maxAspectRatio!==void 0&&t.minAspectRatio>=t.maxAspectRatio)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r} \u7684\u5BBD\u9AD8\u6BD4\u4E0B\u754C\u5FC5\u987B\u5C0F\u4E8E\u4E0A\u754C`);if(I(t.preferredWidth,`${r}.preferredWidth`),I(t.minWidth,`${r}.minWidth`),I(t.maxWidth,`${r}.maxWidth`),I(t.minHeight,`${r}.minHeight`),I(t.maxHeight,`${r}.maxHeight`),t.minWidth>t.preferredWidth||t.preferredWidth>t.maxWidth)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.preferredWidth \u5FC5\u987B\u4F4D\u4E8E minWidth \u548C maxWidth \u4E4B\u95F4`);if(t.minHeight>t.maxHeight)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.minHeight \u4E0D\u80FD\u5927\u4E8E maxHeight`);if(typeof t.allowUpscale!="boolean")throw new TypeError(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.allowUpscale \u5FC5\u987B\u662F boolean`);if(t.fit!=="cover"&&t.fit!=="contain")throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.fit \u53EA\u652F\u6301 cover \u6216 contain`)});}function mn(e){let{intrinsicWidth:n,intrinsicHeight:t,availableWidth:i,policy:r}=e;I(i,"availableWidth"),cn(r);let o=Number.isFinite(n)&&Number.isFinite(t)&&n>0&&t>0,a=o?n/t:r.fallbackAspectRatio,s=r.rules.find(g=>{let M=g.minAspectRatio===void 0||a>=g.minAspectRatio,h=g.maxAspectRatio===void 0||a<g.maxAspectRatio;return M&&h});if(s===void 0)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565\u6CA1\u6709\u5339\u914D\u5BBD\u9AD8\u6BD4 ${a}`);let l=!s.allowUpscale&&o?Math.min(s.preferredWidth,n):s.preferredWidth,d=Math.min(i,s.maxWidth,Math.max(s.minWidth,l)),u=Math.max(1,Math.round(d)),y=u/a,c=Math.min(s.maxHeight,Math.max(s.minHeight,y)),f=Math.max(1,Math.round(c));return {width:u,height:f,aspectRatio:u/f,sourceAspectRatio:a,ruleId:s.id,fit:s.fit,aspectClamped:c!==y}}function un(e,n,t,i){if(!Number.isFinite(e)||!Number.isFinite(n)||e<=0||n<=0)return null;let r=Math.min(t/e,i/n,1);return {width:`${Math.max(1,Math.round(e*r))}px`,aspectRatio:`${e} / ${n}`}}function fn(e){if(!Number.isFinite(e)||e<=0)return "0:00";let n=Math.floor(e),t=Math.floor(n/3600),i=Math.floor(n%3600/60),r=n%60,o=a=>a.toString().padStart(2,"0");return t>0?`${t}:${o(i)}:${o(r)}`:`${i}:${o(r)}`}function pn(e){if(!Number.isFinite(e)||e<=0)return "0 B";let n=["B","KB","MB","GB","TB"],t=Math.min(n.length-1,Math.floor(Math.log(e)/Math.log(1024))),i=e/1024**t;return `${t===0?i:Math.round(i*10)/10} ${n[t]}`}function gn(e){let n=e.lastIndexOf(".");return n>-1&&n<e.length-1?e.slice(n+1).toLowerCase():""}function hn(e){let{message:n}=e,t=c=>c.messageId===n.id&&c.ref.conversationId===n.conversationId&&c.ref.conversationType===n.conversationType,i=e.uploadTask!==void 0&&t(e.uploadTask)?e.uploadTask:void 0,r=n.status==="uploading"||n.status==="failed"&&(n.failure?.displayCode?.startsWith("media.")===true||i!==void 0&&i.state!=="completed"),o=r?"upload":"download",a=n.body.mediaAlbum?.items??n.body.filesAlbum?.items,s=e.aggregateFrom===void 0?[e.itemIndex]:(a??[]).map((c,f)=>f).slice(e.aggregateFrom),l=s.map(c=>{let f=c===void 0?n.body.image??n.body.video??n.body.file:a?.[c];if(r){let p=c===void 0?void 0:i?.items?.find(v=>v.itemIndex===c);return {state:p?.state==="completed"?"completed":n.status==="failed"?"failed":i?.state==="paused"?"paused":(p?.state??i?.state)==="running"?"running":"waiting",percent:p?.percent??(c===void 0?i?.percent:void 0),size:p?.bytesTotal??f?.size}}let g=e.downloadTasks.find(p=>t(p)&&p.itemIndex===c&&p.direction==="download"),M=g?.state==="failed"?"failed":g?.state==="running"||g?.state==="queued"?"running":g?.state==="completed"&&!e.unavailableItemIndices?.includes(c)||f?.url.startsWith("blob:")||e.availableItemIndices?.includes(c)?"completed":"waiting",h=M==="completed"?100:M==="waiting"&&g?.state==="completed"?0:g?.percent??0;return {state:M,percent:h,size:g?.bytesTotal??f?.size}}),d=l.some(c=>c.state==="failed")?"failed":l.some(c=>c.state==="running")?"running":l.some(c=>c.state==="paused")?"paused":l.length>0&&l.every(c=>c.state==="completed")?"completed":"waiting",u=o==="download"&&d==="waiting"&&s.some(c=>e.pendingItemIndices?.includes(c))?{resolving:true}:{};if(l.length===1)return {direction:o,state:d,percent:l[0].percent,...u};if(l.length===0||l.some(c=>!Number.isFinite(c.size)||c.size<=0||c.percent===void 0))return {direction:o,state:d,...u};let y=l.reduce((c,f)=>c+f.size,0);return {direction:o,state:d,percent:Math.round(l.reduce((c,f)=>c+f.size*f.percent,0)/y),...u}}var Mn=4;function vn(e){let n=Math.min(Math.max(e/1e3,0)/10,1);return Math.round(22+24*n)}function yn(e,n){if(e.length===0)return Array.from({length:n},()=>0);let t=[],i=(e.length-1)/Math.max(1,n-1);for(let r=0;r<n;r+=1){let o=r*i,a=Math.round(o),s=e[Math.max(0,a-1)]??0,l=e[Math.min(e.length-1,a)]??0,d=e[Math.min(e.length-1,a+1)]??0;t.push((s+l+d)/3);}return t}function In(e,n){let t=2166136261;for(let r=0;r<e.length;r+=1)t^=e.charCodeAt(r),t=Math.imul(t,16777619);let i=[];for(let r=0;r<n;r+=1)t=Math.imul(t^t>>>15,2246822519)>>>0,i.push(90+t%111);return i}
1
+ import {p}from'./chunk-VWXKODJ7.js';import {e,a as a$1}from'./chunk-CVLKJADF.js';import {j as j$1,h}from'./chunk-PPXQWMHO.js';import {la}from'./chunk-J77L6JLQ.js';import {a}from'./chunk-WOT6VMZA.js';function ae(e){return e==="default"||e==="board-game-link"||e==="game-preview"}function se(e){return (e??"").trim().replace(/^[?&]+/,"").trim()}function le(e,n){let t=se(n);return e===""||t===""?e:e+(e.includes("?")?"&":"?")+t}function F(e){return e===""||e.startsWith("/")||e.startsWith("?")||e.startsWith("&")?false:e.includes(".")}function de(e){return e===""?"":/^https?:\/\//i.test(e)?e:`https://${e}`}function C(e){return le(ce(e),e.gamePath)}function ce(e){let n=e.domain?.trim()??"",t=e.suffixAddress?.trim()??"",i=e.h5Url?.trim()??"";if(n!==""){if(t==="")return n;if(t.startsWith("/"))return n.replace(/\/$/,"")+t;let r=t.replace(/^&/,""),o=n.includes("?")?"&":t.includes("?")?"":"?";return n+o+r}return /^https?:\/\//i.test(t)?t:F(t)?`https://${t}`:i}function R(e){let n=e.domain?.trim()??"",t=e.suffixAddress?.trim()??"",i=e.h5Url?.trim()??"";return /^https?:\/\//i.test(t)?t:F(t)?`https://${t}`:n!==""?de(C({domain:n,suffixAddress:t,h5Url:i})):/^https?:\/\//i.test(i)?i:F(i)?`https://${i}`:""}function me(e,n){return {id:e.appId??n,name:n,cover:"",...e.appId===void 0?{}:{appId:e.appId},...e.developerId===void 0?{}:{developerId:e.developerId},...e.domain===void 0?{}:{domain:e.domain},...e.suffixAddress===void 0?{}:{suffixAddress:e.suffixAddress},...e.h5Url===void 0?{}:{h5Url:e.h5Url},...e.isDynamic===void 0?{}:{isDynamic:e.isDynamic},...e.productId===void 0?{}:{productId:e.productId}}}function ue(e,n){if(e.configType==="float-link"){let r=R({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url});return r===""?{kind:"refuse"}:{kind:"open-link",url:r}}if(e.configType!=="pinned-game"&&e.configType!=="float-game")return {kind:"refuse"};let t=e.appId?.trim()??"",i=C({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url});return t===""||i===""?{kind:"refuse"}:{kind:"open-game",game:me(e,n.name),currencyType:n.currentCurrencyType??""}}var V={"zh-CN":1,"zh-TW":2,"en-US":3,"vi-VN":4,"th-TH":5};function G(e,n){let t=String(n).trim();return t===""||t==="0"?false:(e??"").split(",").map(i=>i.trim()).filter(i=>i!=="").includes(t)}function z(e){return e in V?e:"en-US"}function Q(e,n){let i={"zh-CN":e.nameZhHans,"zh-TW":e.nameZhHant,"en-US":e.nameEn,"vi-VN":e.nameVi,"th-TH":e.nameTh}[z(n)]?.trim()??"";return i!==""?i:[e.nameEn,e.nameZhHans,e.nameZhHant,e.nameVi,e.nameTh].map(r=>r?.trim()??"").find(r=>r!=="")??""}function fe(e){return e.icon?.trim()||e.iconSmall?.trim()||e.iconMedium?.trim()||e.iconLarge?.trim()||""}function q(e){return C({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url})}function J(e){return (e.appId?.trim()??"")!==""}function pe(e){return e.configType==="float-game"?J(e)&&q(e)!=="":e.configType==="float-link"?R({domain:e.domain,suffixAddress:e.suffixAddress,h5Url:e.h5Url})!=="":false}function ge(e){return e.configType==="float-game"?"half":"page"}function he(e){let n=Q(e.rel,e.locale);return {title:e.channelDescription?.trim()??"",tag:n,name:n}}function Y(e){return [...e].sort((n,t)=>n.configType===t.configType?0:n.configType==="float-game"?1:t.configType==="float-game"?-1:0)}function Me(e,n){if(e===void 0)return {pinnedGame:null,floatingItems:[]};let t=V[z(n.locale)],i=e.filter(r=>r.configType!=="unknown"&&G(r.langTypes,t)&&G(r.currencyTypes,n.currencyType??""));return {pinnedGame:i.find(r=>r.configType==="pinned-game"&&J(r))??null,floatingItems:Y(i.filter(r=>(r.configType==="float-link"||r.configType==="float-game")&&pe(r)))}}function ve(e,n){return [e,n.configType,n.appId??"",n.suffixAddress??n.h5Url??""].join("|")}var H=p();function ye(e$1,n){let t=n.suppressDraft===true?null:e$1.draft,i=t?.text.trim()??"",r,o="",a="";return t!==null?r=i===""?[]:Ce(e$1,i,n.locale):be(e$1)?r=w(Re(e$1,n)):e$1.lastMessageSummary?.kind==="channel-moderation-deleted"||e$1.lastMessageDeletedForEveryone!==void 0?r=w(S(e$1,e$1.lastMessageSummary?.kind==="channel-moderation-deleted"?e$1.lastMessageSummary:{kind:"channel-moderation-deleted",by:e$1.lastMessageDeletedForEveryone?.by??""},n)):e$1.lastMessageSummary?.kind==="recalled"||e$1.lastMessageRecalled!==void 0?r=w(S(e$1,e$1.lastMessageSummary?.kind==="recalled"?e$1.lastMessageSummary:{kind:"recalled",by:e$1.lastMessageRecalled?.by??""},n)):(o=we(e$1,n),a=e$1.mentionUnreadCount>0?n.labels.mentionBadge:"",r=xe(e$1,n)),{preview:`${a}${o}${r.map(l=>l.text).join("")}`||(t===null?n.labels.emptyPreview:""),previewSegments:r,...Ie(e$1,t!==null),...Pe(e$1,t!==null,n.accountId),senderPrefix:o,mentionBadge:a,time:e(a$1(t?.updatedAt,e$1.timestamp),{locale:n.locale,...n.now===void 0?{}:{now:n.now}}),hasDraft:t!==null}}function w(e){return [{kind:"text",text:e}]}function Ie(e,n){let t=e.lastMessageSummary;if(n||e.lastMessageDeletedForEveryone!==void 0||e.lastMessageRecalled!==void 0||e.lastMessageSystemEvent!==void 0||t===void 0)return {};if(t.kind==="mediaAlbum"){let{imageCount:i,videoCount:r,caption:o,firstItemKind:a}=t;return i<=0&&r<=0?{}:o!==void 0&&o!==""&&a!==void 0?{previewMediaKind:a}:i>0&&r>0?{previewMediaKind:"mediaAlbum"}:{previewMediaKind:r>0?"video":"image"}}return t.kind==="image"||t.kind==="video"||t.kind==="gif"||t.kind==="sticker"||t.kind==="voice"?{previewMediaKind:t.kind}:{}}function Pe(e,n,t){return n||e.ref.conversationType!=="direct"||e.lastMessageSenderId!==t||e.lastMessageSendState!==void 0||e.lastMessageDeletedForEveryone!==void 0||e.lastMessageRecalled!==void 0||e.lastMessageSystemEvent!==void 0||e.lastMessageSummary?.kind==="system"||e.lastMessageSummary?.kind==="recalled"||e.lastMessageSummary?.kind==="channel-moderation-deleted"||e.lastMessageReceipt===void 0?{}:{previewReceipt:e.lastMessageReceipt}}function B(e){return e.map(n=>n.kind==="emoji"?{kind:"emoji",text:n.text,code:n.code}:{kind:n.kind,text:n.text})}function Ce(e,n,t){let i=e.draft?.mentions??[],r=[],o={},a=false;for(let l of i){if(l.userId==="0"){a=true;continue}r.includes(l.userId)||r.push(l.userId),l.displayName.trim()!==""&&(o[l.userId]=l.displayName);}let s=a||r.length>0?{atAll:a,atUserIds:r,...Object.keys(o).length===0?{}:{atUsersName:o}}:void 0;return B(la(n,{mention:s,resolveName:l=>o[l]??l,atAllDisplay:j$1(t),matchers:[H]}))}function xe(e,n){let t=e.lastMessageSummary;if(t!==void 0&&t.kind!=="text"){let o=S(e,t,n);return (t.kind==="mediaAlbum"||t.kind==="filesAlbum")&&t.caption?B(la(o,{resolveName:a=>n.resolveName(e.ref,a),matchers:[H]})):w(o)}let i=(t?.kind==="text"?t.text:e.lastMessagePreview).trim();if(i==="")return w(n.labels.emptyPreview);let r=e.lastMessageMention?.atUsersName;return B(la(i,{mention:e.lastMessageMention===void 0?void 0:{...e.lastMessageMention,atUserIds:[...e.lastMessageMention.atUserIds]},resolveName:o=>n.resolveName(e.ref,o,r?.[o]),selfId:n.accountId,atAllDisplay:j$1(n.locale),matchers:[H]}))}function S(e,n,t){return h(Se(n),{locale:t.locale,selfId:t.accountId,resolveName:i=>t.resolveName(e.ref,i)})}function be(e){return e.lastMessageSummary?.kind==="system"||e.lastMessageSenderId==="system"||e.lastMessageSystemEvent!==void 0}function Re(e,n){return e.lastMessageSummary?.kind==="system"?S(e,e.lastMessageSummary,n):e.lastMessageSystemEvent===void 0?e.lastMessagePreview.trim()||n.labels.emptyPreview:S(e,{kind:"system",system:{eventType:e.lastMessageSystemEvent,...e.lastMessageSystemTargetsSelf===true?{targetUserIds:[n.accountId]}:{},...e.lastMessagePreview.trim()===""?{}:{fallbackText:e.lastMessagePreview.trim()}}},n)}function we(e,n){let t=e.lastMessageSenderId;return e.ref.conversationType!=="group"&&e.ref.conversationType!=="channel"||t===void 0||t===""||t==="system"?"":`${t===n.accountId?n.labels.selfSender:n.resolveName(e.ref,t)}: `}function Se(e){return e.kind!=="system"?e:{kind:"system",system:{eventType:e.system.eventType,...e.system.operatorId===void 0?{}:{operatorId:e.system.operatorId},...e.system.targetUserIds===void 0?{}:{targetUserIds:[...e.system.targetUserIds]},...e.system.fallbackText===void 0?{}:{fallbackText:e.system.fallbackText}}}}var Te=160,Ae=220;function Le(e){let n=Math.max(0,e.showDelayMs??160),t=Math.max(0,e.minimumVisibleMs??220),i=e.now??Date.now,r=e.setTimer??((m,v)=>setTimeout(m,v)),o=e.clearTimer??(m=>clearTimeout(m)),a="",s=false,l=false,d=0,u,y,c=false;function f(){u!==void 0&&o(u),u=void 0;}function g(){y!==void 0&&o(y),y=void 0;}function M(m){l!==m&&(l=m,d=m?i():0,e.onVisibleChange(m));}function h(m){f(),u=r(()=>{u=void 0,!(c||!s||a!==m)&&M(true);},n);}function p(){if(f(),!l)return;let m=t-Math.max(0,i()-d);if(m<=0){M(false);return}g(),y=r(()=>{y=void 0,!(c||s)&&M(false);},m);}return {update(m,v){if(c)return;if(a!==v){a=v,s=m,f(),g(),M(false),m&&h(v);return}if(s=m,m){g(),!l&&u===void 0&&h(v);return}p();},dispose(){c||(c=true,s=false,f(),g(),M(false));}}}var E={placeholder:0,thumbnail:1,local:2,original:3};function ke(e){let n;for(let t of e)t.value!==void 0&&(n===void 0||E[t.quality]>E[n.quality])&&(n=t);return n}function Ee(e,n){return E[n]>=E[e]}function j(e,n){if(n.length===0)return [{text:e,hit:false}];let t=[],i=0;for(let[r,o]of n)r>i&&t.push({text:e.slice(i,r),hit:false}),t.push({text:e.slice(r,o),hit:true}),i=o;return i<e.length&&t.push({text:e.slice(i),hit:false}),t}var Ue=p();function Oe(e,n){let t=e.preview===""?[{kind:"text",text:n.emptyText}]:e.previewParts.flatMap(a=>a.kind==="plain"?[{kind:"text",text:a.text}]:la(a.text,{mention:a.mention,resolveName:s=>n.resolveName(s,a.mention?.atUsersName?.[s]),atAllDisplay:j$1(n.locale),matchers:[Ue]})),i=t.map(a=>a.text).join(""),r=n.matcher?.match(i)?.ranges??[],o=0;return t.flatMap(a=>{let s=o;o+=a.text.length;let l=r.filter(d=>d.start<o&&d.end>s).map(d=>[Math.max(0,d.start-s),Math.min(a.text.length,d.end-s)]);return a.kind==="emoji"||a.kind==="legacy-emoji-placeholder"?[{...a,hit:l.length>0}]:j(a.text,l).map(d=>({...a,...d}))})}var Ne=280,_e=180;function De(e){return /^data:image\//i.test(e)?true:/\.(?:png|jpe?g|gif|webp|bmp|avif|heic|heif|svg)(?:[?#]|$)/i.test(e)}function X(e,n){return typeof e=="number"&&Number.isFinite(e)&&e>0?e:n}function Fe(e){let n=e.gamePreviewUrl?.trim()??"";return n===""?{url:"",sourceWidth:280,sourceHeight:180,render:"empty"}:{url:n,sourceWidth:X(e.gamePreviewWidth,280),sourceHeight:X(e.gamePreviewHeight,180),render:e.imageLoadFailed===true||!De(n)?"document":"image"}}function U(e){return `${e.conversationType}:${e.conversationId}`}function Ge(e,n){let t=n===null?null:U(n),i=new Set;return e.filter(r=>{let o=U(r.ref);return r.ref.conversationType!=="group"&&r.ref.conversationType!=="channel"||o===t||i.has(o)?false:(i.add(o),true)}).map((r,o)=>({item:r,index:o})).sort((r,o)=>Number(o.item.pinned)-Number(r.item.pinned)||+(o.item.unreadCount>0)-+(r.item.unreadCount>0)||r.index-o.index).slice(0,20).map(({item:r})=>({conversationType:r.ref.conversationType,conversationId:r.ref.conversationId}))}function Ve(e){let n=false,t=null,i,r=false,o=0,a=false,s,l=new Set,d;function u(h,p,m){let v=`${h}:${p??""}`;v!==s&&(s=v,e.diagnostics?.record("debug","chat-kit","history","conversation-prefetch-state",()=>({conversation:m,data:{phase:h,reason:p,attemptedCount:l.size}})));}function y(){o+=1,r=false,i?.(),i=void 0;}function c(){y(),d?.controller.abort(),d=void 0,a=false,l.clear(),t=null,s=void 0;}function f(){return Ge(e.getCandidates(),e.getActiveRef()).filter(h=>!l.has(U(h)))}async function g(){if(r=false,i=void 0,n)return;if(!e.getRunnable()){u("paused","host-not-ready");return}let h=e.getClient();if(h!==t||h===null){M();return}let p=f()[0];if(d!==void 0)return;if(p===void 0){u("exhausted","no-candidates");return}let m={controller:new AbortController,key:U(p)};d=m,a=false,l.add(m.key),u("running",void 0,p);let v=false;try{let k=await h.conversations.prefetchRecent([p],{signal:m.controller.signal});if(d!==m)return;v=k.some(oe=>oe.status==="cancelled"),v&&l.delete(m.key);}catch(k){d===m&&!m.controller.signal.aborted&&e.onError(k);}finally{d===m&&(m.controller.signal.aborted&&l.delete(m.key),d=void 0,a||!v&&!m.controller.signal.aborted?M():u("paused",m.controller.signal.aborted?"host-cancelled":"sdk-cancelled"));}}function M(){if(n)return;let h=e.getClient();if(h!==t&&(c(),t=h),!e.getRunnable()||t===null){y(),d?.controller.abort(),u("paused",t===null?"client-unavailable":"host-not-ready");return}if(d!==void 0){a=true;return}if(r)return;if(f().length===0){u("exhausted","no-candidates");return}r=true,u("scheduled");let p=++o,m=e.scheduleIdle(()=>{r&&p===o&&g();});r&&(i=m);}return {refresh:M,reset:c,dispose(){n=true,c();}}}function He(e){let n=e.getGeneration();return Object.freeze({isCurrent:()=>e.getGeneration()===n})}function T(e){let n=e.getClient();if(n===null)return null;let t=e.getGeneration();return Object.freeze({client:n,isCurrent:()=>e.getGeneration()===t&&e.getClient()===n})}function W(e,n){if(n===void 0){if(e.contentType==="image")return e.body.image;let i=e.body.mediaAlbum;if(e.contentType!=="mediaAlbum"||i?.items.length!==1||!i.caption?.trim())return;n=0;}let t=e.contentType==="mediaAlbum"?e.body.mediaAlbum?.items[n]:void 0;return t?.kind==="image"?t:void 0}function Be(e){return e?.contentType==="mediaAlbum"?e.body.mediaAlbum?.caption??"":e?.contentType==="filesAlbum"?e.body.filesAlbum?.caption??"":e?.body.text??""}function je(e,n){return e===void 0?void 0:W(e,n)?.url}function Z(e,n){return e!==void 0&&e.status==="sent"&&e.conversationType!=="supergroup"&&e.recalled===void 0&&e.deletedForEveryone===void 0&&W(e,n)!==void 0}function We(e,n,t,i){let r=T(e),o=W(n,i),a=i??(n.contentType==="mediaAlbum"?0:void 0),s={conversationType:n.conversationType,conversationId:n.conversationId},l=()=>r===null||!r.isCurrent()||!t()?false:Z(n,i),d=()=>{if(!l())throw new DOMException("Image copy is no longer active","AbortError")};return {isCurrent:l,async loadOriginal(){if(d(),s.conversationType==="supergroup")throw new Error("Unsupported image copy conversation");let u=await r.client.media.download({conversation:{...s,conversationType:s.conversationType},messageId:n.id,...a===void 0?{}:{itemIndex:a}});return d(),u},async loadThumbnail(){d();let u=o?.thumbData;if(u===void 0||u.length===0)throw new Error("Image thumbnail unavailable");return new Blob([new Uint8Array(u)])}}}var te={};a(te,{acquireMediaBlob:()=>ze,detectImageMime:()=>ee,detectVideoMime:()=>ne,loadCachedImageObjectUrl:()=>en,loadCachedMediaAlbumItemObjectUrl:()=>Xe,loadCachedVideoObjectUrl:()=>Je,loadFileObjectUrl:()=>nn,loadImageObjectUrl:()=>Ze,loadMediaAlbumItemObjectUrl:()=>Ye,loadVideoObjectUrl:()=>qe,loadVoiceBytes:()=>Qe,prepareLocalMediaPreview:()=>$e,prioritizeMediaDownload:()=>Ke});function A(e,n){if(e.conversationType!=="supergroup")return {conversation:{conversationType:e.conversationType,conversationId:e.conversationId},messageId:e.id,...n===void 0?{}:{itemIndex:n}}}function Ke(e,n,t){let i=e.getClient(),r=A(n,t);if(i===null||r===void 0)throw new Error("media download unavailable");i.media.prioritizeDownload(r);}async function L(e,n,t,i){let r=e.getClient(),o=A(n,i);if(r===null||o===void 0)throw new Error("media download unavailable");let a=t===void 0?void 0:r.media.subscribe(s=>{let l=s.find(d=>d.direction==="download"&&d.messageId===o.messageId&&d.itemIndex===i&&d.ref.conversationType===o.conversation.conversationType&&d.ref.conversationId===o.conversation.conversationId);l!==void 0&&t(l.percent);});try{return await r.media.download(o)}finally{a?.();}}function O(e){return typeof e=="object"&&e!==null&&"code"in e&&e.code==="IM_SDK_MEDIA_DOWNLOAD_CANCELED"}async function $e(e,n){let t=e.getClient();if(t===null)return null;let i=e.getGeneration(),r=await t.media.prepareLocalPreview(n);return r===null||e.getGeneration()!==i?null:r}function ee(e){return e.length>=3&&e[0]===255&&e[1]===216&&e[2]===255?"image/jpeg":e.length>=8&&e[0]===137&&e[1]===80&&e[2]===78&&e[3]===71?"image/png":e.length>=6&&e[0]===71&&e[1]===73&&e[2]===70?"image/gif":e.length>=12&&e[8]===87&&e[9]===69&&e[10]===66&&e[11]===80?"image/webp":null}async function N(e){let n=new Uint8Array(await e.slice(0,12).arrayBuffer()),t=ee(n);return t===null?null:URL.createObjectURL(e.type===t?e:e.slice(0,e.size,t))}function ne(e){return e.length>=4&&e[0]===26&&e[1]===69&&e[2]===223&&e[3]===163?"video/webm":(e.length>=8&&e[4]===102&&e[5]===116&&e[6]===121&&e[7]===112,"video/mp4")}function ze(e,n,t){return e.acquireMediaBlob({conversationType:n.conversationType,conversationId:n.conversationId,messageId:n.id,...t===void 0?{}:{itemIndex:t}})}async function Qe(e,n,t){let i=e.getClient(),r=n.body.voice;if(i===null||r===void 0)return null;let o=e.getSelfVoiceBytes(n.id);if(o!==void 0)return o;let a=e.getGeneration();try{let s=new Uint8Array(await(await L(e,n)).arrayBuffer());return s.length===0?(e.getGeneration()===a&&t.setNote(t.t("media.voiceLoadEmpty")),null):s}catch(s){return e.getGeneration()===a&&t.setNote(t.t("media.voiceLoadFailed",{reason:s instanceof Error?s.message:String(s)})),null}}async function qe(e,n,t,i){let r=e.getClient(),o=n.body.video;if(r===null||o===void 0)return null;let a=e.getGeneration();try{let s=await L(e,n,i);if(s.size===0)return e.getGeneration()===a&&t.setNote(t.t("media.videoOpenEmpty")),null;let l=URL.createObjectURL(s);return e.getGeneration()!==a?(URL.revokeObjectURL(l),null):l}catch(s){return e.getGeneration()===a&&!O(s)&&t.setNote(t.t("media.videoLoadFailed",{reason:s instanceof Error?s.message:String(s)})),null}}async function Je(e,n){let t=e.getClient(),i=A(n);if(t===null||i===void 0||n.body.video===void 0)return null;let r=e.getGeneration();try{let o=await t.media.getCached(i);if(o===null||o.size===0||e.getGeneration()!==r)return null;let a=new Uint8Array(await o.slice(0,12).arrayBuffer()),s=o.type||ne(a);return e.getGeneration()!==r?null:URL.createObjectURL(o.type===s?o:o.slice(0,o.size,s))}catch{return null}}async function Ye(e,n,t,i,r){let o=e.getClient(),a=n.body.mediaAlbum?.items[t];if(o===null||a===void 0)return null;let s=a.kind==="video",l=e.getGeneration();try{let d=await L(e,n,r,t);if(s&&d.size===0)return e.getGeneration()===l&&i.setNote(i.t("media.videoOpenEmpty")),null;let u=s?URL.createObjectURL(d):await N(d);return u===null?(e.getGeneration()===l&&i.setNote(i.t("media.imageInvalid",{size:d.size})),null):e.getGeneration()!==l?(URL.revokeObjectURL(u),null):u}catch(d){return e.getGeneration()===l&&!O(d)&&i.setNote(i.t(s?"media.videoLoadFailed":"media.imageLoadFailed",{reason:d instanceof Error?d.message:String(d)})),null}}async function Xe(e,n,t){let i=e.getClient(),r=n.body.mediaAlbum?.items[t],o=A(n,t);if(i===null||o===void 0||r===void 0||!/^https?:\/\//i.test(r.url))return null;let a=e.getGeneration();try{let s=await i.media.getCached(o);if(s===null||s.size===0||e.getGeneration()!==a)return null;let l=r.kind==="video"?URL.createObjectURL(s):await N(s);return l===null?null:e.getGeneration()!==a?(URL.revokeObjectURL(l),null):l}catch{return null}}async function Ze(e,n,t){let i=e.getClient(),r=n.body.image;if(i===null||r===void 0)return null;let o=e.getGeneration();try{let a=await L(e,n),s=await N(a);return s===null?(e.getGeneration()===o&&t.setNote(t.t("media.imageInvalid",{size:a.size})),null):e.getGeneration()!==o?(URL.revokeObjectURL(s),null):s}catch(a){return e.getGeneration()===o&&!O(a)&&t.setNote(t.t("media.imageLoadFailed",{reason:a instanceof Error?a.message:String(a)})),null}}async function en(e,n){let t=e.getClient(),i=A(n);if(t===null||i===void 0||n.body.image===void 0)return null;let r=e.getGeneration();try{let o=await t.media.getCached(i);if(o===null||o.size===0||e.getGeneration()!==r)return null;let a=await N(o);return a===null?null:e.getGeneration()!==r?(URL.revokeObjectURL(a),null):a}catch{return null}}async function nn(e,n,t,i,r){let o=e.getClient(),a=r===void 0?n.body.file:n.body.filesAlbum?.items[r];if(o===null||a===void 0)return null;let s=e.getGeneration();try{let l=await L(e,n,i,r);if(l.size===0)return e.getGeneration()===s&&t.setNote(t.t("media.fileDownloadEmpty")),null;let d=URL.createObjectURL(l);return e.getGeneration()!==s?(URL.revokeObjectURL(d),null):d}catch(l){return e.getGeneration()===s&&!O(l)&&t.setNote(t.t("media.fileDownloadFailed",{reason:l instanceof Error?l.message:String(l)})),null}}var re={};a(re,{markReadUpTo:()=>tn});function tn(e,n,t,i){let r=T(e);if(r===null||n.conversationId===""||t==="")return;let o=r.client.conversations.list().find(s=>s.id===n.conversationId&&s.type===n.conversationType);if(o?.manuallyUnread===true&&o.unreadCount<=0){r.client.conversations.markConversationRead(n).catch(s=>{r.isCurrent()&&e.getDiagnostics().record("warn","chat-kit","conversation","clear-manual-unread-skipped",()=>({conversation:n,error:{message:"\u6E05\u9664\u624B\u5DE5\u672A\u8BFB\u63D0\u9192\u5931\u8D25",data:s}}));});return}if(o?.type==="group"&&o.unreadCount<=0)return;let a=i.getConversationHandle();a===void 0||a.ref.conversationId!==n.conversationId||a.ref.conversationType!==n.conversationType||a.markRead(t).catch(s=>{r.isCurrent()&&i.getConversationHandle()===a&&e.getDiagnostics().record("warn","chat-kit","message","mark-read-skipped",()=>({conversation:n,data:{messageId:t},error:{message:"markRead \u8DF3\u8FC7",data:s}}));});}function rn(e){return e.deletedForEveryone!==void 0?"hidden":e.recalled!==void 0?"recalled":"content"}var on=/\b(?:https?:\/\/|www\.)[^\s<>"')】]+/gi,an=/\b(?:https?:\/\/|www\.)/i,sn=/[),.!?;:,。!?;:、)】]+$/u;function ie(e){let n=/^www\./i.test(e)?`https://${e}`:e;try{let t=new URL(n);return t.protocol==="http:"||t.protocol==="https:"?t.href:void 0}catch{return}}function ln(e){return an.test(e)}function dn(){return e=>{let n=[];for(let t of e.matchAll(on)){if(t.index===void 0)continue;let i=t[0].replace(sn,"");if(i==="")continue;let r=ie(i);r!==void 0&&n.push({start:t.index,end:t.index+i.length-1,segment:{kind:"link",text:i,href:r}});}return n}}function I(e,n){if(!Number.isFinite(e)||e<=0)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${n} \u5FC5\u987B\u662F\u5927\u4E8E 0 \u7684\u6709\u9650\u6570`)}function cn(e){if(I(e.fallbackAspectRatio,"fallbackAspectRatio"),!Array.isArray(e.rules)||e.rules.length===0)throw new Error("\u5A92\u4F53\u5C55\u793A\u7B56\u7565 rules \u4E0D\u80FD\u4E3A\u7A7A");let n=new Set;e.rules.forEach((t,i)=>{let r=`rules[${i}]`;if(t.id.trim()==="")throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.id \u4E0D\u80FD\u4E3A\u7A7A`);if(n.has(t.id))throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565\u89C4\u5219 id \u91CD\u590D\uFF1A${t.id}`);if(n.add(t.id),t.minAspectRatio!==void 0&&(!Number.isFinite(t.minAspectRatio)||t.minAspectRatio<0))throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.minAspectRatio \u5FC5\u987B\u662F\u5927\u4E8E\u7B49\u4E8E 0 \u7684\u6709\u9650\u6570`);if(t.maxAspectRatio!==void 0&&I(t.maxAspectRatio,`${r}.maxAspectRatio`),t.minAspectRatio!==void 0&&t.maxAspectRatio!==void 0&&t.minAspectRatio>=t.maxAspectRatio)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r} \u7684\u5BBD\u9AD8\u6BD4\u4E0B\u754C\u5FC5\u987B\u5C0F\u4E8E\u4E0A\u754C`);if(I(t.preferredWidth,`${r}.preferredWidth`),I(t.minWidth,`${r}.minWidth`),I(t.maxWidth,`${r}.maxWidth`),I(t.minHeight,`${r}.minHeight`),I(t.maxHeight,`${r}.maxHeight`),t.minWidth>t.preferredWidth||t.preferredWidth>t.maxWidth)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.preferredWidth \u5FC5\u987B\u4F4D\u4E8E minWidth \u548C maxWidth \u4E4B\u95F4`);if(t.minHeight>t.maxHeight)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.minHeight \u4E0D\u80FD\u5927\u4E8E maxHeight`);if(typeof t.allowUpscale!="boolean")throw new TypeError(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.allowUpscale \u5FC5\u987B\u662F boolean`);if(t.fit!=="cover"&&t.fit!=="contain")throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565 ${r}.fit \u53EA\u652F\u6301 cover \u6216 contain`)});}function mn(e){let{intrinsicWidth:n,intrinsicHeight:t,availableWidth:i,policy:r}=e;I(i,"availableWidth"),cn(r);let o=Number.isFinite(n)&&Number.isFinite(t)&&n>0&&t>0,a=o?n/t:r.fallbackAspectRatio,s=r.rules.find(g=>{let M=g.minAspectRatio===void 0||a>=g.minAspectRatio,h=g.maxAspectRatio===void 0||a<g.maxAspectRatio;return M&&h});if(s===void 0)throw new Error(`\u5A92\u4F53\u5C55\u793A\u7B56\u7565\u6CA1\u6709\u5339\u914D\u5BBD\u9AD8\u6BD4 ${a}`);let l=!s.allowUpscale&&o?Math.min(s.preferredWidth,n):s.preferredWidth,d=Math.min(i,s.maxWidth,Math.max(s.minWidth,l)),u=Math.max(1,Math.round(d)),y=u/a,c=Math.min(s.maxHeight,Math.max(s.minHeight,y)),f=Math.max(1,Math.round(c));return {width:u,height:f,aspectRatio:u/f,sourceAspectRatio:a,ruleId:s.id,fit:s.fit,aspectClamped:c!==y}}function un(e,n,t,i){if(!Number.isFinite(e)||!Number.isFinite(n)||e<=0||n<=0)return null;let r=Math.min(t/e,i/n,1);return {width:`${Math.max(1,Math.round(e*r))}px`,aspectRatio:`${e} / ${n}`}}function fn(e){if(!Number.isFinite(e)||e<=0)return "0:00";let n=Math.floor(e),t=Math.floor(n/3600),i=Math.floor(n%3600/60),r=n%60,o=a=>a.toString().padStart(2,"0");return t>0?`${t}:${o(i)}:${o(r)}`:`${i}:${o(r)}`}function pn(e){if(!Number.isFinite(e)||e<=0)return "0 B";let n=["B","KB","MB","GB","TB"],t=Math.min(n.length-1,Math.floor(Math.log(e)/Math.log(1024))),i=e/1024**t;return `${t===0?i:Math.round(i*10)/10} ${n[t]}`}function gn(e){let n=e.lastIndexOf(".");return n>-1&&n<e.length-1?e.slice(n+1).toLowerCase():""}function hn(e){let{message:n}=e,t=c=>c.messageId===n.id&&c.ref.conversationId===n.conversationId&&c.ref.conversationType===n.conversationType,i=e.uploadTask!==void 0&&t(e.uploadTask)?e.uploadTask:void 0,r=n.status==="uploading"||n.status==="failed"&&(n.failure?.displayCode?.startsWith("media.")===true||i!==void 0&&i.state!=="completed"),o=r?"upload":"download",a=n.body.mediaAlbum?.items??n.body.filesAlbum?.items,s=e.aggregateFrom===void 0?[e.itemIndex]:(a??[]).map((c,f)=>f).slice(e.aggregateFrom),l=s.map(c=>{let f=c===void 0?n.body.image??n.body.video??n.body.file:a?.[c];if(r){let p=c===void 0?void 0:i?.items?.find(v=>v.itemIndex===c);return {state:p?.state==="completed"?"completed":n.status==="failed"?"failed":i?.state==="paused"?"paused":(p?.state??i?.state)==="running"?"running":"waiting",percent:p?.percent??(c===void 0?i?.percent:void 0),size:p?.bytesTotal??f?.size}}let g=e.downloadTasks.find(p=>t(p)&&p.itemIndex===c&&p.direction==="download"),M=g?.state==="failed"?"failed":g?.state==="running"||g?.state==="queued"?"running":g?.state==="completed"&&!e.unavailableItemIndices?.includes(c)||f?.url.startsWith("blob:")||e.availableItemIndices?.includes(c)?"completed":"waiting",h=M==="completed"?100:M==="waiting"&&g?.state==="completed"?0:g?.percent??0;return {state:M,percent:h,size:g?.bytesTotal??f?.size}}),d=l.some(c=>c.state==="failed")?"failed":l.some(c=>c.state==="running")?"running":l.some(c=>c.state==="paused")?"paused":l.length>0&&l.every(c=>c.state==="completed")?"completed":"waiting",u=o==="download"&&d==="waiting"&&s.some(c=>e.pendingItemIndices?.includes(c))?{resolving:true}:{};if(l.length===1)return {direction:o,state:d,percent:l[0].percent,...u};if(l.length===0||l.some(c=>!Number.isFinite(c.size)||c.size<=0||c.percent===void 0))return {direction:o,state:d,...u};let y=l.reduce((c,f)=>c+f.size,0);return {direction:o,state:d,percent:Math.round(l.reduce((c,f)=>c+f.size*f.percent,0)/y),...u}}var Mn=4;function vn(e){let n=Math.min(Math.max(e/1e3,0)/10,1);return Math.round(22+24*n)}function yn(e,n){if(e.length===0)return Array.from({length:n},()=>0);let t=[],i=(e.length-1)/Math.max(1,n-1);for(let r=0;r<n;r+=1){let o=r*i,a=Math.round(o),s=e[Math.max(0,a-1)]??0,l=e[Math.min(e.length-1,a)]??0,d=e[Math.min(e.length-1,a+1)]??0;t.push((s+l+d)/3);}return t}function In(e,n){let t=2166136261;for(let r=0;r<e.length;r+=1)t^=e.charCodeAt(r),t=Math.imul(t,16777619);let i=[];for(let r=0;r<n;r+=1)t=Math.imul(t^t>>>15,2246822519)>>>0,i.push(90+t%111);return i}
2
2
  export{He as A,T as B,Be as C,je as D,Z as E,We as F,te as G,re as H,rn as I,ie as J,ln as K,dn as L,mn as M,un as N,fn as O,pn as P,gn as Q,hn as R,Mn as S,vn as T,yn as U,In as V,ae as a,C as b,R as c,ue as d,V as e,G as f,Q as g,fe as h,q as i,ge as j,he as k,Y as l,Me as m,ve as n,ye as o,Te as p,Ae as q,Le as r,ke as s,Ee as t,j as u,Oe as v,Ne as w,_e as x,Fe as y,Ve as z};