PageSourceSearch

https://www.ottohub.cn/assets/MessageView-DYCBJzfu.js

js ottohub.cn collected 2026-10-06 13:14:40 UTC 47,559 bytes, 5 lines download raw bytes

1import{$ as e,B as t,C as n,D as r,E as i,F as a,H as o,J as s,K as c,M as l,N as u,O as d,S as f,T as p,U as m,W as h,Z as g,c as _,ct as v,et as y,it as b,k as x,lt as S,m as C,n as w,q as T,r as E,st as D,tt as O,ut as k,w as A,x as j,y as ee}from"./vendor-vue-Bu-KQjoC.js";import{o as M}from"./apiResponse-C8fEm_-L.js";import{A as N,B as P,D as te,F,G as I,H as L,I as ne,J as R,K as re,L as ie,M as ae,N as z,O as oe,P as se,R as ce,U as B,V,W as le,Y as H,c as ue,f as de,g as fe,j as pe,k as U,q as me,rt as W,s as he,st as ge,z as G}from"./index-BE2-dWra.js";import{n as K,o as _e,t as q}from"./videoStaffApi-BM5KDgOf.js";import{n as ve}from"./imageApi-DfRzG9lf.js";import{t as J}from"./contentLinks-CQnY9Bwv.js";import{t as ye}from"./UserMentionSearch-Jn-FXkCd.js";function be(e,t=!1){if(!e||!Number.isFinite(e))return``;let n=new Date(e*1e3);if(Number.isNaN(n.getTime()))return``;let r=e=>e<10?`0${e}`:String(e),i=r(n.getHours()),a=r(n.getMinutes());if(!t)return`${i}:${a}`;let o=new Date,s=new Date(o.getFullYear(),o.getMonth(),o.getDate()),c=new Date(s.getTime()-864e5),l=new Date(n.getFullYear(),n.getMonth(),n.getDate());if(l.getTime()===s.getTime())return`今天 ${i}:${a}`;if(l.getTime()===c.getTime())return`昨天 ${i}:${a}`;let u=r(n.getMonth()+1),d=r(n.getDate());return n.getFullYear()===o.getFullYear()?`${u}-${d} ${i}:${a}`:`${n.getFullYear()}-${u}-${d} ${i}:${a}`}function xe(e){return be(e,!1)}var Se={class:`relative shrink-0`},Ce=[`src`,`alt`],we={key:1,class:`flex h-11 w-11 items-center justify-center rounded-full border border-border bg-elevated`},Te={key:2,class:`absolute -right-0.5 -top-0.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-danger px-1 text-[10px] font-bold text-white`},Ee={class:`min-w-0 flex-1`},De={class:`flex items-baseline justify-between gap-2`},Oe={class:`truncate text-[14px] font-bold text-primary`},ke={key:0,class:`shrink-0 text-[11px] text-muted`},Ae={class:`mt-0.5 truncate text-[13px] text-secondary`},je=a({__name:`MessageConversationItem`,props:{friend:{},active:{type:Boolean},mobile:{type:Boolean}},emits:[`select`],setup(e,{emit:t}){let n=t,{t:r}=w();return(t,a)=>{let o=s(`MaterialIcon`);return h(),x(`button`,{type:`button`,class:v([`relative flex w-full items-center gap-3 border-b border-border px-3 py-2.5 text-left no-underline transition-colors last:border-b-0`,e.active?`bg-accent-muted`:`hover:bg-elevated`]),onClick:a[0]||(a[0]=t=>n(`select`,e.friend.uid))},[i(`div`,Se,[e.friend.avatar_url?(h(),x(`img`,{key:0,src:e.friend.avatar_url,alt:e.friend.username,class:`h-11 w-11 rounded-full border border-border object-cover`},null,8,Ce)):(h(),x(`span`,we,[u(o,{name:`person`,size:22,class:`text-muted`})])),e.friend.new_message_num!=null&&Number(e.friend.new_message_num)>0?(h(),x(`span`,Te,k(Number(e.friend.new_message_num)>99?`99+`:e.friend.new_message_num),1)):d(``,!0)]),i(`div`,Ee,[i(`div`,De,[i(`span`,Oe,k(e.friend.username),1),!e.mobile&&e.friend.latest_time?(h(),x(`span`,ke,k(D(xe)(e.friend.latest_time)),1)):d(``,!0)]),i(`p`,Ae,k(e.friend.latest_message||D(r)(`message.noPreview`)),1)])],2)}}}),Me={class:`flex min-h-0 flex-1 flex-col`},Ne={class:`flex shrink-0 items-center gap-2 border-b border-border bg-elevated px-3 py-2.5`},Y={class:`text-[15px] font-bold text-primary`},Pe={class:`hidden sm:inline`},Fe={class:`relative h-11 w-11 shrink-0`},Ie={class:`flex h-11 w-11 items-center justify-center rounded-full text-white`,style:{background:`linear-gradient(135deg, #fb923c 0%, #ea580c 100%)`}},Le={key:0,class:`absolute -right-0.5 -top-0.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-danger px-1 text-[10px] font-bold text-white`},X={class:`min-w-0 flex-1`},Z={class:`mt-0.5 truncate text-[13px] text-secondary`},Q={class:`relative h-11 w-11 shrink-0`},$={class:`flex h-11 w-11 items-center justify-center rounded-full text-white`,style:{background:`linear-gradient(135deg, #38bdf8 0%, #0284c7 100%)`}},Re={key:0,class:`absolute -right-0.5 -top-0.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-danger px-1 text-[10px] font-bold text-white`},ze={class:`min-w-0 flex-1`},Be={class:`truncate text-[14px] font-bold text-primary`},Ve={class:`mt-0.5 truncate text-[13px] text-secondary`},He={class:`relative h-11 w-11 shrink-0`},Ue={class:`flex h-11 w-11 items-center justify-center rounded-full text-white`,style:{background:`linear-gradient(135deg, #a78bfa 0%, #7c3aed 100%)`}},We={key:0,class:`absolute -right-0.5 -top-0.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-danger px-1 text-[10px] font-bold text-white`},Ge={class:`min-w-0 flex-1`},Ke={class:`truncate text-[14px] font-bold text-primary`},qe={class:`mt-0.5 truncate text-[13px] text-secondary`},Je={class:`relative h-11 w-11 shrink-0`},Ye={class:`flex h-11 w-11 items-center justify-center rounded-full text-white`,style:{background:`linear-gradient(135deg, #f472b6 0%, #db2777 100%)`}},Xe={key:0,class:`absolute -right-0.5 -top-0.5 flex h-4 min-w-4 items-center justify-center rounded-full bg-danger px-1 text-[10px] font-bold text-white`},Ze={class:`min-w-0 flex-1`},Qe={class:`truncate text-[14px] font-bold text-primary`},$e={class:`mt-0.5 truncate text-[13px] text-secondary`},et={key:0,class:`px-3 py-6 text-center text-[13px] text-secondary`},tt={key:1,class:`px-3 py-6 text-center text-[13px] text-secondary`},nt={key:2,class:`px-3 py-3 text-center text-[11px] text-muted`},rt={key:3,class:`px-3 py-3 text-center text-[11px] text-muted`},it=a({__name:`ConversationListPanel`,props:{friends:{},activeUid:{},activeInbox:{},loadingFriends:{type:Boolean},hasMoreFriends:{type:Boolean},unreadModerationCount:{},unreadComments:{},unreadMentions:{},unreadStaffInvites:{},mobile:{type:Boolean}},emits:[`open-start-chat`,`select`,`select-inbox`,`scroll`],setup(t,{emit:a}){let o=a,{t:l}=w();function f(e){return e>99?`99+`:String(e)}return(a,p)=>{let m=s(`MaterialIcon`);return h(),x(`div`,Me,[i(`header`,Ne,[u(m,{name:`forum`,size:20,class:`text-accent`}),i(`h1`,Y,k(D(l)(`message.title`)),1),i(`button`,{type:`button`,class:`nico-btn ml-auto inline-flex h-8 !min-h-8 items-center gap-1 border border-border bg-base px-2 text-[13px] text-primary`,onClick:p[
10]||(p[0]=e=>o(`open-start-chat`))},[u(m,{name:`person_add`,size:18}),i(`span`,Pe,k(D(l)(`message.newChat`)),1)])]),i(`div`,{class:`min-h-0 flex-1 overflow-y-auto`,onScroll:p[5]||(p[5]=e=>o(`scroll`,e))},[u(D(E),{to:`/moderation-logs`,class:`relative flex items-center gap-3 border-b border-border px-3 py-2.5 no-underline transition-colors hover:bg-elevated`},{default:e(()=>[i(`div`,Fe,[i(`div`,Ie,[u(m,{name:`description`,size:20})]),t.unreadModerationCount>0?(h(),x(`span`,Le,k(f(t.unreadModerationCount)),1)):d(``,!0)]),i(`div`,X,[i(`p`,{class:v([`truncate text-[14px] font-bold`,(t.unreadModerationCount,`text-primary`)])},k(D(l)(`message.moderationLogs`)),3),i(`p`,Z,k(t.unreadModerationCount>0?D(l)(`message.moderationUnread`,{count:t.unreadModerationCount}):D(l)(`message.moderationNoUnread`)),1)])]),_:1}),i(`button`,{type:`button`,class:v([`relative flex w-full items-center gap-3 border-b border-border px-3 py-2.5 text-left no-underline transition-colors`,t.activeInbox===`comments`?`bg-accent-muted`:`hover:bg-elevated`]),onClick:p[1]||(p[1]=e=>o(`select-inbox`,`comments`))},[i(`div`,Q,[i(`div`,$,[u(m,{name:`chat`,size:20})]),t.unreadComments>0?(h(),x(`span`,Re,k(f(t.unreadComments)),1)):d(``,!0)]),i(`div`,ze,[i(`p`,Be,k(D(l)(`message.commentsOnMe`)),1),i(`p`,Ve,k(t.unreadComments>0?D(l)(`message.commentsUnread`,{count:t.unreadComments}):D(l)(`message.commentsNoUnread`)),1)])],2),i(`button`,{type:`button`,class:v([`relative flex w-full items-center gap-3 border-b border-border px-3 py-2.5 text-left no-underline transition-colors`,t.activeInbox===`mentions`?`bg-accent-muted`:`hover:bg-elevated`]),onClick:p[2]||(p[2]=e=>o(`select-inbox`,`mentions`))},[i(`div`,He,[i(`div`,Ue,[u(m,{name:`alternate_email`,size:20})]),t.unreadMentions>0?(h(),x(`span`,We,k(f(t.unreadMentions)),1)):d(``,!0)]),i(`div`,Ge,[i(`p`,Ke,k(D(l)(`message.mentionsOnMe`)),1),i(`p`,qe,k(t.unreadMentions>0?D(l)(`message.mentionsUnread`,{count:t.unreadMentions}):D(l)(`message.mentionsNoUnread`)),1)])],2),i(`button`,{type:`button`,class:v([`relative flex w-full items-center gap-3 border-b border-border px-3 py-2.5 text-left no-underline transition-colors`,t.activeInbox===`staff`?`bg-accent-muted`:`hover:bg-elevated`]),onClick:p[3]||(p[3]=e=>o(`select-inbox`,`staff`))},[i(`div`,Je,[i(`div`,Ye,[u(m,{name:`groups`,size:20})]),t.unreadStaffInvites>0?(h(),x(`span`,Xe,k(f(t.unreadStaffInvites)),1)):d(``,!0)]),i(`div`,Ze,[i(`p`,Qe,k(D(l)(`message.staffInvites`)),1),i(`p`,$e,k(t.unreadStaffInvites>0?D(l)(`message.staffInvitesUnread`,{count:t.unreadStaffInvites}):D(l)(`message.staffInvitesNoUnread`)),1)])],2),t.loadingFriends&&t.friends.length===0?(h(),x(`p`,et,k(D(l)(`message.loadingFriends`)),1)):!t.loadingFriends&&t.friends.length===0?(h(),x(`p`,tt,k(D(l)(`message.emptyFriends`)),1)):d(``,!0),(h(!0),x(n,null,c(t.friends,e=>(h(),r(je,{key:e.uid,friend:e,active:t.activeUid===e.uid,mobile:t.mobile,onSelect:p[4]||(p[4]=e=>o(`select`,e))},null,8,[`friend`,`active`,`mobile`]))),128)),T(a.$slots,`default`),t.loadingFriends&&t.friends.length>0?(h(),x(`p`,nt,k(D(l)(`message.loadingMoreFriends`)),1)):!t.hasMoreFriends&&t.friends.length>0?(h(),x(`p`,rt,k(D(l)(`message.noMoreFriends`)),1)):d(``,!0)],32)])}}});
1function at(e){let t=e.replace(/\\n/g,`
2`),n=[{regex:/\(UID:(\d+)\)/g,href:e=>`/u/${e}`},{regex:/\(VID:(\d+)\)/g,href:e=>`/v/${e}`},{regex:/\(BID:(\d+)\)/g,href:e=>`/b/${e}`}];for(let{regex:e,href:r}of n)t=t.replace(e,(e,t)=>`[${e}](${r(t)})`);return t}function ot(e){return e.replace(/&/g,`&amp;`).replace(/</g,`&lt;`).replace(/>/g,`&gt;`).replace(/"/g,`&quot;`)}function st(e){return e.startsWith(`/`)&&!e.startsWith(`//`)}function ct(e){let t=J(at(e||``));if(!t.trim())return``;let n=/\[([^\]]*)\]\(([^)\s]+)\)/g,r=``,i=0,a;for(;(a=n.exec(t))!==null;){r+=ot(t.slice(i,a.index)).replace(/\n/g,`<br>`);let e=ot(a[1]??``),n=a[2]??``;st(n)?r+=`<a href="${ot(n)}" class="nico-content-link">${e}</a>`:r+=ot(a[0]),i=a.index+a[0].length}return r+=ot(t.slice(i)).replace(/\n/g,`<br>`),r}var lt={class:`flex gap-2 px-3 py-1`},ut=[`href`],dt=[`src`,`alt`],ft={key:1,class:`flex h-8 w-8 items-center justify-center rounded-full border border-border bg-elevated`},pt={class:`max-w-[78%] min-w-0 text-left`},mt={class:`mb-0.5 text-[11px] text-muted`},ht=[`href`],gt={class:`text-[12px] text-secondary`},_t=[`innerHTML`],vt={class:`mt-0.5 text-[11px] text-muted`},yt={key:0,class:`ml-1 text-accent`},bt=[`href`],xt=a({__name:`InboxNotificationBubble`,props:{item:{}},emits:[`open`,`profile`,`linkClick`],setup(e,{emit:t}){let n=e,r=t,{t:a}=w(),o=p(()=>n.item.contentType===1?a(`message.contentTypeVideo`):n.item.contentType===3?a(`message.contentTypeSeiga`):a(`message.contentTypeBlog`)),c=p(()=>n.item.contentTitle?`「${n.item.contentTitle}」`:``),m=p(()=>{let e=o.value,t=c.value;return n.item.inboxKind===`comments`?n.item.replyKind===2?a(`message.inboxReplyHead`,{type:e,title:t}):a(`message.inboxCommentHead`,{type:e,title:t}):n.item.contextType===1?a(`message.inboxMentionHead`,{type:e,title:t}):a(`message.inboxMentionCommentHead`,{type:e,title:t})}),g=p(()=>n.item.body?ct(n.item.body):``),_=p(()=>ne(n.item.contentType,n.item.contentId)),y=p(()=>`/u/${n.item.senderUid}`);function b(e){if(e.target?.closest(`a`)){r(`linkClick`,e);return}r(`open`,n.item)}return(t,n)=>{let o=s(`MaterialIcon`);return h(),x(`div`,lt,[i(`a`,{href:y.value,class:`shrink-0 no-underline`,onClick:n[0]||(n[0]=f(t=>r(`profile`,e.item.senderUid),[`prevent`]))},[e.item.senderAvatar?(h(),x(`img`,{key:0,src:e.item.senderAvatar,alt:e.item.senderName,class:`h-8 w-8 rounded-full border border-border object-cover`},null,8,dt)):(h(),x(`div`,ft,[u(o,{name:`person`,size:18,class:`text-muted`})]))],8,ut),i(`div`,pt,[i(`p`,mt,[i(`a`,{href:y.value,class:`text-muted no-underline hover:text-accent`,onClick:n[1]||(n[1]=f(t=>r(`profile`,e.item.senderUid),[`prevent`]))},k(e.item.senderName),9,ht)]),i(`div`,{class:v([`inline-block max-w-full cursor-pointer rounded-[var(--radius-default)] border px-3 py-2 text-left text-[14px] leading-snug transition-colors`,e.item.isRead?`border-border bg-surface text-primary hover:bg-elevated`:`border-accent/40 bg-accent-muted text-primary hover:bg-elevated`]),role:`button`,tabindex:`0`,onClick:b,onKeydown:n[2]||(n[2]=j(f(t=>r(`open`,e.item),[`prevent`]),[`enter`]))},[i(`p`,gt,k(m.value),1),g.value?(h(),x(`div`,{key:0,class:`nico-blog-content mt-1 break-words text-left [&_a]:text-accent [&_a]:underline [&_img]:max-w-[33%] [&_img]:rounded-[var(--radius-default)]`,innerHTML:g.value},null,8,_t)):d(``,!0)],34),i(`p`,vt,[l(k(D(be)(e.item.time,!0))+` `,1),e.item.isRead?d(``,!0):(h(),x(`span`,yt,`· `+k(D(a)(`message.unread`)),1)),i(`a`,{href:_.value,class:`ml-1 text-accent no-underline hover:underline`,onClick:n[3]||(n[3]=f(t=>r(`open`,e.item),[`prevent`]))},` · `+k(D(a)(`message.viewSource`)),9,bt)])])])}}}),St={class:`flex min-h-0 flex-1 flex-col`},Ct={class:`flex shrink-0 items-center gap-2 border-b border-border bg-elevated px-3 py-2.5`},wt=[`aria-label`],Tt={class:`min-w-0 flex-1`},Et={class:`truncate text-[14px] font-bold text-primary`},Dt={class:`text-[12px] text-muted`},Ot=[`disabled`],kt={key:0,class:`mb-2 text-center`},At={class:`text-[12px] text-accent`},jt={key:1,class:`py-8 text-center text-[13px] text-secondary`},Mt={key:2,class:`py-8 text-center text-[13px] text-secondary`},Nt={class:`border-t border-border bg-surface px-3 py-2`},Pt={class:`py-1 text-center text-[12px] text-muted`},Ft=W(a({__name:`InboxChatPanel`,props:{kind:{},items:{},loading:{type:Boolean},loadingMore:{type:Boolean},markingAllRead:{type:Boolean},unreadCount:{}},emits:[`back`,`markAllRead`,`scroll`,`open`,`profile`,`linkClick`],setup(e,{expose:a,emit:l}){let f=e,p=l,{t:m}=w(),_=b(null);function v(){let e=_.value;e&&(e.scrollTop=e.scrollHeight)}return o(()=>{t(()=>v())}),g(()=>[f.loading,f.items.length],([e,n],r)=>{if(e)return;let i=r?.[1]??0;n>0&&i===0&&t(()=>v())}),a({containerRef:_}),(t,a)=>{let o=s(`MaterialIcon`);return h(),x(`div`,St,[i(`header`,Ct,[i(`button`,{type:`button`,class:`inline-flex items-center text-secondary hover:text-accent md:hidden`,"aria-label":D(m)(`message.backToList`),onClick:a[0]||(a[0]=e=>p(`back`))},[u(o,{name:`arrow_back`,size:22})],8,wt),i(`div`,{class:`flex h-9 w-9 shrink-0 items-center justify-center rounded-full text-white`,style:S(e.kind===`comments`?`background: linear-gradient(135deg, #38bdf8 0%, #0284c7 100%)`:`background: linear-gradient(135deg, #a78bfa 0%, #7c3aed 100%)`)},[u(o,{name:e.kind===`comments`?`chat`:`alternate_email`,size:20},null,8,[`name`])],4),i(`div`,Tt,[i(`p`,Et,k(e.kind===`comments`?D(m)(`message.commentsOnMe`):D(m)(`message.mentionsOnMe`)),1),i(`p`,Dt,k(e.unreadCount>0?e.kind===`comments`?D(m)(`message.commentsUnread`,{count:e.unreadCount}):D(m)(`message.mentionsUnread`,{count:e.unreadCount}):e.kind===`comments`?D(m)(`message.commentsNoUnread`):D(m)(`message.mentionsNoUnread`)),1)]),e.unreadCount>
20?(h(),x(`button`,{key:0,type:`button`,class:`nico-btn inline-flex h-8 !min-h-8 shrink-0 items-center border border-border bg-base px-2 text-[12px] text-secondary hover:text-accent`,disabled:e.markingAllRead,onClick:a[1]||(a[1]=e=>p(`markAllRead`))},k(e.markingAllRead?D(m)(`message.markingAllRead`):D(m)(`message.markAllRead`)),9,Ot)):d(``,!0)]),i(`div`,{ref_key:`containerRef`,ref:_,class:`nico-im-scroll min-h-0 flex-1 overflow-y-auto py-3`,onScroll:a[5]||(a[5]=e=>p(`scroll`,e))},[e.loadingMore?(h(),x(`div`,kt,[i(`span`,At,k(D(m)(`message.loadingMoreInbox`)),1)])):d(``,!0),e.loading?(h(),x(`p`,jt,k(D(m)(`message.loadingInbox`)),1)):e.items.length===0?(h(),x(`p`,Mt,k(e.kind===`comments`?D(m)(`message.emptyComments`):D(m)(`message.emptyMentions`)),1)):d(``,!0),(h(!0),x(n,null,c(e.items,e=>(h(),r(xt,{key:`${e.inboxKind}-${e.id}`,item:e,onOpen:a[2]||(a[2]=e=>p(`open`,e)),onProfile:a[3]||(a[3]=e=>p(`profile`,e)),onLinkClick:a[4]||(a[4]=e=>p(`linkClick`,e))},null,8,[`item`]))),128))],544),i(`footer`,Nt,[i(`p`,Pt,k(D(m)(`message.inboxHint`)),1)])])}}}),[[`__scopeId`,`data-v-334a612c`]]),It={class:`flex min-h-0 flex-1 flex-col`},Lt={class:`flex shrink-0 items-center gap-2 border-b border-border bg-elevated px-3 py-2.5`},Rt=[`aria-label`],zt={class:`min-w-0 flex-1`},Bt={class:`text-[14px] font-bold text-primary`},Vt={class:`text-[12px] text-muted`},Ht={key:0,class:`py-8 text-center text-[13px] text-secondary`},Ut={key:1,class:`py-8 text-center text-[13px] text-secondary`},Wt={key:2,class:`space-y-2`},Gt={class:`flex items-start gap-2`},Kt=[`href`,`onClick`],qt=[`src`,`alt`],Jt={class:`min-w-0 flex-1`},Yt={class:`text-[12px] text-secondary`},Xt=[`href`,`onClick`],Zt=[`href`,`onClick`],Qt={class:`mt-1 text-[12px] text-muted`},$t={class:`text-[11px] text-muted`},en={class:`mt-3 flex flex-wrap gap-2`},tn=[`disabled`,`onClick`],nn=[`disabled`,`onClick`],rn={key:3,class:`py-3 text-center text-[11px] text-muted`},an=20,on=W(a({__name:`StaffInvitesPanel`,props:{active:{type:Boolean}},emits:[`back`,`count-change`],setup(e,{expose:t,emit:r}){let a=e,o=r,{t:f}=w(),v=_(),y=ge(),S=b([]),C=b(0),T=b(!1),E=b(!1),O=b(null),A=b(0),j=null,ee=p(()=>S.value.length<C.value);function M(){j!=null&&(window.clearInterval(j),j=null)}async function N(){let e=y.activeAccount?.token;if(!e){C.value=0,o(`count-change`,0);return}try{let t=await K(e,0,1);C.value=t.totalCount,o(`count-change`,t.totalCount)}catch{}}async function P(e=!1){let t=y.activeAccount?.token;if(t){e?(A.value=0,T.value=!0):E.value=!0;try{let n=await K(t,e?0:A.value,an);C.value=n.totalCount,o(`count-change`,n.totalCount),S.value=e?n.invites:[...S.value,...n.invites],A.value=S.value.length}finally{T.value=!1,E.value=!1}}}async function te(e,t){let n=y.activeAccount?.token;if(!(!n||O.value!=null)){O.value=e;try{t===`accept`?await q(e,n):await _e(e,n),S.value=S.value.filter(t=>t.id!==e),C.value=Math.max(0,C.value-1),o(`count-change`,C.value)}finally{O.value=null}}}function F(e,t){he(e,v,t)}return g(()=>a.active,e=>{e&&P(!0)},{immediate:!0}),g(()=>y.activeAccount?.token,e=>{if(M(),!e){S.value=[],C.value=0,o(`count-change`,0);return}N(),j=window.setInterval(()=>void N(),6e4)},{immediate:!0}),m(M),t({refresh:()=>P(!0)}),(e,t)=>{let r=s(`MaterialIcon`);return h(),x(`div`,It,[i(`header`,Lt,[i(`button`,{type:`button`,class:`inline-flex items-center text-secondary hover:text-accent md:hidden`,"aria-label":D(f)(`message.backToList`),onClick:t[0]||(t[0]=e=>o(`back`))},[u(r,{name:`arrow_back`,size:22})],8,Rt),i(`div`,zt,[i(`p`,Bt,k(D(f)(`videoStaff.invitesTitle`)),1),i(`p`,Vt,k(D(f)(`videoStaff.invitesSubtitle`,{count:C.value})),1)])]),i(`div`,{class:`nico-im-scroll min-h-0 flex-1 overflow-y-auto px-3 py-3`,onScroll:t[1]||(t[1]=e=>{e.target.scrollTop<50&&ee.value&&!E.value&&!T.value&&P(!1)})},[T.value&&S.value.length===0?(h(),x(`p`,Ht,k(D(f)(`videoStaff.loadingInvites`)),1)):!T.value&&S.value.length===0?(h(),x(`p`,Ut,k(D(f)(`videoStaff.noInvites`)),1)):(h(),x(`div`,Wt,[(h(!0),x(n,null,c(S.value,e=>(h(),x(`article`,{key:e.id,class:`rounded-[var(--radius-default)] border border-border bg-surface p-3`},[i(`div`,Gt,[i(`a`,{href:`/u/${e.ownerUid}`,class:`shrink-0`,onClick:t=>F(t,`/u/${e.ownerUid}`)},[e.ownerAvatarUrl?(h(),x(`img`,{key:0,src:e.ownerAvatarUrl,alt:e.ownerUsername,class:`h-9 w-9 rounded-full border border-border object-cover`},null,8,qt)):d(``,!0)],8,Kt),i(`div`,Jt,[i(`p`,Yt,[i(`a`,{href:`/u/${e.ownerUid}`,class:`font-semibold text-primary hover:text-accent`,onClick:t=>F(t,`/u/${e.ownerUid}`)},k(e.ownerUsername),9,Xt),l(` `+k(D(f)(`videoStaff.invitedYou`)),1)]),i(`a`,{href:`/v/${e.vid}`,class:`mt-1 block truncate text-[13px] font-semibold text-primary hover:text-accent`,onClick:t=>F(t,`/v/${e.vid}`)},k(e.videoTitle||`OV${e.vid}`),9,Zt),i(`p`,Qt,k(D(f)(`videoStaff.roleLabel`))+`:`+k(e.role),1),i(`p`,$t,k(e.invitedAt),1)])]),i(`div`,en,[i(`button`,{type:`button`,class:`nico-btn nico-btn-primary nico-btn-sm px-3 text-[12px]`,disabled:O.value===e.id,onClick:t=>te(e.id,`accept`)},k(D(f)(`videoStaff.accept`)),9,tn),i(`button`,{type:`button`,class:`nico-btn nico-btn-sm border border-border px-3 text-[12px] text-secondary`,disabled:O.value===e.id,onClick:t=>te(e.id,`reject`)},k(D(f)(`videoStaff.reject`)),9,nn)])]))),128))])),E.value?(h(),x(`p`,rn,k(D(f)(`common.loading`)),1)):d(``,!0)],32)])}}}),[[`__scopeId`,`data-v-95ed6892`]]),sn={class:`shrink-0`},cn=[`src`],ln={key:1,class:`flex h-8 w-8 items-center justify-center rounded-full border border-border bg-elevated`},un={key:0,class:`mb-0.5 text-[11px] text-muted`},dn=[`innerHTML`],fn=[`disabled`,`title`,`aria-label`],pn={class:`mt-0.5 text-[11px] text-muted`},mn={key:0,class:`ml-1 text-accent`},hn=a({__name:`MessageBubble`,props:{message:{},selfUid:{},friendName:{},friendAvatar:{},selfAvatar:{},deleting:{type:Boolean}},emits:[`delete`,`linkClick`],setup(e,{emit:t}){let n=e,r=t,{t:a}=w(),o=p(()=>n.message.sender===n.selfUid),c=p(()=>n.message.msg_id<=0);return(t,n)=>{let f=s(`MaterialIcon`);return h(),x(`div`,{class:v([`flex gap-2 px-3 py-1`,o.value?`flex-row-reverse`:`flex-row`])},[i(`div`,sn,[(o.value?e.selfAvatar:e.friendAvatar)?(h(),x(`img`,{key:0,src:o.value?e.selfAvatar:e.friendAvatar,alt:``,class:`h-8 w-8 rounded-full border border-border object-cover`},null,8,cn)):(h(),x(`div`,ln,[u(f,{name:`person`,size:18,class:`text-muted`})]))]),i(`div`,{class:v([`max-w-[78%] min-w-0`,o.value?`text-right`:`text-left`])},[!o.value&&e.friendName?(h(),x(`p`,un,k(e.friendName),1)):d(``,!0),i(`div`,{class:v([`flex items-end gap-1`,o.value?`flex-row-reverse`:`flex-row`])},[i(`div`,{class:v([`inline-block max-w-full rounded-[var(--radius-default)] px-3 py-2 text-[14px] leading-snug`,o.value?`bg-accent text-accent-contrast`:`border border-border bg-surface text-primary`])},[i(`div`,{class:v([`nico-blog-content break-words text-left [&_img]:max-w-[33%] [&_img]:rounded-[var(--radius-default)]`,o.value?`[&_a]:text-accent-contrast [&_a]:underline`:`[&_a]:text-accent [&_a]:underline`]),innerHTML:D(ct)(e.message.content),onClick:n[0]||(n[0]=e=>
2r(`linkClick`,e))},null,10,dn)],2),o.value?(h(),x(`button`,{key:0,type:`button`,class:`mb-0.5 inline-flex h-7 w-7 shrink-0 items-center justify-center rounded-full border border-border bg-elevated text-muted hover:bg-reader hover:text-primary disabled:opacity-50`,disabled:e.deleting||c.value,title:c.value?D(a)(`message.recallSyncing`):D(a)(`message.recall`),"aria-label":c.value?D(a)(`message.recallSyncing`):D(a)(`message.recall`),onClick:n[1]||(n[1]=t=>r(`delete`,e.message.msg_id))},[u(f,{name:`undo`,size:16})],8,fn)):d(``,!0)],2),i(`p`,pn,[l(k(D(be)(e.message.time,!0))+` `,1),o.value&&e.message.is_read!==void 0?(h(),x(`span`,mn,` · `+k(e.message.is_read?D(a)(`message.read`):D(a)(`message.unread`)),1)):d(``,!0)])],2)],2)}}}),gn=20,_n=15;function vn(e){return[...e].sort((e,t)=>e.time-t.time||e.id-t.id)}function yn(e,t){let n=new Map;for(let t of e)n.set(t.id,t);for(let e of t)e.id>0&&n.set(e.id,e);return vn(Array.from(n.values()))}function bn(){let e=ge(),t=p(()=>e.activeAccount?.token??``),n=b(0),r=b(0),i=b([]),a=b(!1),o=b(!1),s=b(!0),c=b(!1),l=b(0),u=b(0),d=b(null),f=null,h=null;function _(){f?.abort(),f=null}function v(){h!=null&&(window.clearTimeout(h),h=null)}async function y(){let e=t.value;if(!e){n.value=0,r.value=0;return}try{let[t,i]=await Promise.all([fetch(oe(e),{cache:`no-store`}),fetch(z(e),{cache:`no-store`})]),[a,o]=await Promise.all([M(t),M(i)]);n.value=me(a),r.value=me(o)}catch{}}async function x(e,n,r,i){let a=t.value;if(!a)return{list:[],total:0};let o=e===`comments`?U({token:a,offset:n,num:r}):se({token:a,offset:n,num:r}),s=await fetch(o,{cache:`no-store`,signal:i}),c=await M(s);if(H(s,c))return{list:[],total:0};let l=re(c);return{list:l.list.map(t=>e===`comments`?ie(t):G(t)),total:l.total}}async function S(e,n=!0){if(!t.value){i.value=[];return}n&&(_(),l.value=0,s.value=!0,i.value=[]);let r=new AbortController;f=r,a.value=!0,d.value=e;try{let{list:t,total:n}=await x(e,0,gn,r.signal);if(r.signal.aborted||d.value!==e)return;i.value=vn(t),l.value=t.length,u.value=n,s.value=t.length>=gn&&(n<=0||i.value.length<n)}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return}finally{f===r&&(f=null),(!r.signal.aborted&&d.value===e||r.signal.aborted)&&(a.value=!1)}}async function C(){let e=d.value,n=t.value;if(!(!e||!n||o.value||a.value||!s.value)){o.value=!0;try{let{list:t,total:n}=await x(e,l.value,gn);if(d.value!==e)return;if(t.length===0){s.value=!1;return}i.value=yn(i.value,t),l.value+=t.length,u.value=n,s.value=t.length>=gn&&(n<=0||i.value.length<n)}catch{}finally{o.value=!1}}}async function w(e,n=_n){if(t.value)try{let{list:t}=await x(e,0,n);if(d.value!==e)return;i.value=yn(i.value,t)}catch{}}function T(e){let t=i.value.find(t=>t.id===e);!t||t.isRead||(i.value=i.value.map(t=>t.id===e?{...t,isRead:!0}:t),t.inboxKind===`comments`?n.value=Math.max(0,n.value-1):r.value=Math.max(0,r.value-1))}async function E(e){let n=t.value;if(!(!n||e.isRead)){T(e.id);try{let t=e.inboxKind===`comments`?await L(e.id,n):await B(e.id,n),r=await M(t);H(t,r)&&y()}catch{y()}}}async function D(e){let a=t.value;if(!(!a||c.value)){c.value=!0;try{let t=e===`comments`?await V(a):await le(a),o=await M(t);if(H(t,o))return;i.value=i.value.map(e=>({...e,isRead:!0})),e===`comments`?n.value=0:r.value=0}catch{}finally{c.value=!1}}}function O(){v(),!(document.hidden||d.value==null)&&(h=window.setTimeout(()=>{(async()=>{let e=d.value;e==null||document.hidden||(await Promise.all([w(e),y()]),O())})()},12e3))}function k(e){if(e==null){_(),d.value=null,i.value=[],v();return}if(d.value===e&&i.value.length>0){O();return}S(e,!0),O()}function A(){if(document.hidden){v();return}y(),d.value&&O()}return g(()=>[e.isReady,e.isAuthenticated,t.value],()=>{if(e.isReady){if(!e.isAuthenticated){n.value=0,r.value=0,i.value=[],d.value=null,_(),v();return}y()}},{immediate:!0}),typeof document<`u`&&document.addEventListener(`visibilitychange`,A),m(()=>{_(),v(),document.removeEventListener(`visibilitychange`,A)}),{unreadComments:n,unreadMentions:r,items:i,loading:a,loadingMore:o,hasMore:s,markingAllRead:c,activeKind:d,loadUnread:y,loadList:S,loadMore:C,markItemRead:E,markAllRead:D,setActiveKind:k,schedulePoll:O,clearPollTimer:v}}var xn=12,Sn=50,Cn=20,wn=120,Tn=2,En=`otto-im-last-uid`;
2function Dn(){let e=ge(),{t:n}=w(),{resolvedAvatarUrl:r}=de(),i=b([]),a=b(!1),s=b(!0),c=b(0),l=b(null),u=b(null),d=b([]),f=b(!1),h=b(!1),_=b(0),v=b(!0),y=b(``),x=b([]),S=b(!1),C=b(!1),T=b(!1),E=b(``),D=b(!1),O=b(null),k=b(!1),A=b(null),j=b(null),ee=b(0),L=b(null),ne=b(null),re=b(null),ie=b(null),z=b(null),oe=b(null),se=b(null),B=null,V=b(null);V.value=l.value,g(l,e=>{V.value=e});let le=0,ue=p(()=>e.activeAccount?.uid??0),U=p(()=>e.activeAccount?.token??``),me=p(()=>l.value==null?null:i.value.find(e=>e.uid===l.value)||{uid:l.value,username:`OID ${l.value}`});function W(e){L.value=e,e&&window.setTimeout(()=>{L.value===e&&(L.value=null)},3200)}function he(){return le+=1,-(Date.now()*1e3+le)}function G(){B?.abort(),B=null}function K(e){return i.value.some(t=>t.uid===e)}function _e(){if(u.value!=null)return;let e=i.value;if(e.length===0){l.value!=null&&!K(l.value)&&(l.value=null);return}let t=se.value;if(se.value=null,t!=null&&e.some(e=>e.uid===t)){l.value!==t&&(l.value=t);return}l.value!=null&&e.some(e=>e.uid===l.value)||(l.value=e[0].uid)}async function q(e,t=10){let n=U.value;if(n)try{let r=N(e,{token:n,offset:0,num:t,ifTimeDesc:!0}),i=await fetch(r,{cache:`no-store`}),a=await M(i);if(H(i,a))return;let o=R(a).map(e=>P(e)).reverse();if(V.value!==e)return;d.value=(()=>{let e=d.value.filter(e=>e.msg_id>0),t=new Map;for(let n of e)t.set(n.msg_id,n);for(let e of o)e.msg_id>0&&t.set(e.msg_id,e);return Array.from(t.values()).sort((e,t)=>e.time-t.time||e.msg_id-t.msg_id)})()}catch{}}async function J(t=!0){let n=U.value;if(!e.isAuthenticated||!n){i.value=[],c.value=0,s.value=!0;return}if(t&&(c.value=0,s.value=!0),!(!s.value&&!t)){a.value=!0;
2try{let e=pe({token:n,offset:t?0:c.value,num:xn,ifTimeDesc:!0}),r=await fetch(e,{cache:`no-store`}),a=await M(r),o=I(a).map(e=>ce(e));if(t)i.value=o;else{let e=[...i.value,...o];i.value=e.filter((e,t,n)=>t===n.findIndex(t=>t.uid===e.uid))}c.value=i.value.length,s.value=o.length>=xn,t&&_e()}catch{}finally{a.value=!1}}}async function ye(){a.value||!s.value||await J(!1)}async function be(){let n=l.value,r=U.value;if(!e.isAuthenticated||!r||n==null||i.value.length>0&&!K(n))return;G();let a=new AbortController;B=a,d.value=[],_.value=0,v.value=!0,f.value=!0;try{let e=N(n,{token:r,offset:0,num:Cn,ifTimeDesc:!0}),t=await fetch(e,{cache:`no-store`,signal:a.signal}),i=await M(t),o=R(i).map(e=>P(e)).reverse();if(a.signal.aborted||V.value!==n)return;d.value=o,_.value=o.length,v.value=o.length>=Cn}catch(e){if(e instanceof DOMException&&e.name===`AbortError`)return}finally{B===a&&(B=null),!a.signal.aborted&&V.value===n?(f.value=!1,await t(),Se()):a.signal.aborted&&(f.value=!1)}}async function xe(){let e=l.value,n=U.value;if(!n||e==null||h.value||!v.value)return;h.value=!0;let r=re.value,i=r?.scrollHeight??0,a=r?.scrollTop??0;try{let o=N(e,{token:n,offset:_.value,num:Sn,ifTimeDesc:!0}),s=await fetch(o,{cache:`no-store`}),c=await M(s),l=R(c).map(e=>P(e)).reverse();if(l.length===0){v.value=!1;return}d.value=[...l,...d.value].filter((e,t,n)=>t===n.findIndex(t=>t.msg_id===e.msg_id)).sort((e,t)=>e.time-t.time),_.value+=l.length,l.length<Sn&&(v.value=!1),await t(),r&&(r.scrollTop=a+(r.scrollHeight-i))}catch{}finally{h.value=!1}}function Se(){let e=re.value;e&&(e.scrollTop=e.scrollHeight)}function Ce(){let e=ie.value;e&&(e.style.height=`auto`,e.style.height=`${Math.min(e.scrollHeight,wn)}px`)}async function we(){let e=y.value.slice(0,200).trim(),n=l.value,r=U.value;if(!e&&x.value.length===0||C.value||!r||n==null)return;let i=e;if(x.value.length>0){let t=x.value.map(e=>`![](${e})`).join(`
3`);i=e?`${e}\n\n${t}`:t}let a=i.replace(/\r\n|\n|\r/g,`\\n`);C.value=!0;try{let i=await fetch(ae(),{method:`POST`,headers:{"Content-Type":`application/json`},body:JSON.stringify({token:r,receiver:n,message:a}),cache:`no-store`}),o=await M(i),s=H(i,o,`发送消息失败`);if(s){W({type:`error`,text:s});return}let c=Math.floor(Date.now()/1e3),l=e?x.value.length>0?`${e}\n\n${x.value.map(e=>`![](${e})`).join(`
4`)}`:e:x.value.map(e=>`![](${e})`).join(`
5`);d.value=[...d.value,{msg_id:he(),sender:ue.value,receiver:n,content:l,time:c,is_read:!1}],y.value=``,x.value=[],await t(),Se(),q(n)}finally{C.value=!1}}async function Te(e){let t=U.value;if(!(!t||j.value!==null)){if(e<=0){W({type:`info`,text:n(`message.recallSyncing`)}),l.value!=null&&q(l.value),A.value=null;return}j.value=e;try{let r=await F(e,t),a=await M(r),o=H(r,a,n(`message.recallFailed`));if(o){W({type:`error`,text:o});return}let s=d.value.filter(t=>t.msg_id!==e);d.value=s;let c=l.value;if(c!=null){let e=s[s.length-1];i.value=i.value.map(t=>t.uid===c?{...t,latest_message:e?.content,latest_time:e?.time}:t)}}catch{W({type:`error`,text:n(`message.recallFailed`)})}finally{j.value=null,A.value=null}}}async function Ee(e){let t=U.value;if(t){D.value=!0,O.value=null;try{let n=N(e.uid,{token:t,offset:0,num:1,ifTimeDesc:!0}),r=await fetch(n,{cache:`no-store`}),a=await M(r),o=H(r,a,`加载失败,请稍后重试`);if(o){O.value=o;return}let s=R(a),c=e.username,d=e.avatar_url;if(s.length>0){let t=s[0];Number(t.sender)===e.uid?(c=String(t.sender_name??c),d=typeof t.sender_avatar_url==`string`?t.sender_avatar_url:d):Number(t.receiver)===e.uid&&(c=String(t.receiver_name??c),d=typeof t.receiver_avatar_url==`string`?t.receiver_avatar_url:d)}i.value.some(t=>t.uid===e.uid)||(i.value=[...i.value,{uid:e.uid,username:c,avatar_url:d}]),u.value=null,l.value=e.uid,k.value=!0,Oe()}catch{O.value=`加载失败,请稍后重试`}finally{D.value=!1}}}function De(){T.value=!0,E.value=``,O.value=null}function Oe(){D.value||(T.value=!1,E.value=``,O.value=null)}function ke(e){u.value=null,l.value=e,k.value=!0}function Ae(e){l.value=null,u.value=e,k.value=!0}function je(e){let t=e.target;!s.value||a.value||t.scrollHeight-t.scrollTop-t.clientHeight<=150&&ye()}function Me(e){e.target.scrollTop<50&&v.value&&!h.value&&!f.value&&xe()}function Ne(){if(!U.value){e.openAuth(`login`);return}if(x.value.length>=Tn){W({type:`error`,text:`最多只能发送 ${Tn} 张图片`});return}z.value?.click()}async function Y(e){let t=e.target,n=t.files?.[0];t.value=``;let r=U.value;if(!(!n||!r)){if(x.value.length>=Tn){W({type:`error`,text:`最多只能发送 ${Tn} 张图片`});return}S.value=!0;try{let e=await ve(r,n);x.value=[...x.value,e]}catch(e){W({type:`error`,text:e instanceof Error?e.message:`网络错误,上传图片失败`})}finally{S.value=!1}}}
5function Pe(e){x.value=x.value.filter((t,n)=>n!==e)}async function Fe(){let e=U.value;if(!e){ee.value=0;return}try{let t=await(await fetch(fe(e),{cache:`no-store`})).json();ee.value=te(t)}catch{ee.value=0}}let Ie=null;function Le(){Ie!=null&&(window.clearTimeout(Ie),Ie=null)}function X(){Le(),!(document.hidden||l.value==null)&&(Ie=window.setTimeout(()=>{(async()=>{let e=l.value;e==null||document.hidden||(await q(e,15),X())})()},12e3))}let Z=null,Q=null;function $(){if(l.value==null)try{let e=sessionStorage.getItem(En),t=e?Number(e):NaN;Number.isFinite(t)&&t>0&&(se.value=t)}catch{}}o(()=>{Z=new IntersectionObserver(e=>{for(let t of e)t.isIntersecting&&s.value&&!a.value&&ye()},{rootMargin:`50px`,threshold:.1});let e=()=>{document.hidden?Le():(Fe(),X())};document.addEventListener(`visibilitychange`,e),Q=()=>document.removeEventListener(`visibilitychange`,e)}),m(()=>{Le(),G(),Z?.disconnect(),Q?.()}),g(oe,e=>{Z?.disconnect(),e&&Z?.observe(e)}),g(()=>[e.isReady,e.isAuthenticated,U.value],()=>{if(e.isReady){if(!e.isAuthenticated){i.value=[],l.value=null,u.value=null,se.value=null,d.value=[],G();return}$(),J(!0),Fe()}},{immediate:!0}),g(l,(e,t)=>{if(e==null){G();return}if(e!==t){try{sessionStorage.setItem(En,String(e))}catch{}i.value=i.value.map(t=>t.uid===e?{...t,new_message_num:0}:t),y.value=``,x.value=[],(i.value.length===0||K(e))&&be(),Le(),X()}}),g(y,()=>{t(()=>Ce())});function Re(e){return e>0?!1:(W({type:`info`,text:n(`message.recallSyncing`)}),l.value!=null&&q(l.value),!0)}return{authStore:e,resolvedAvatarUrl:r,selfUid:ue,friends:i,loadingFriends:a,hasMoreFriends:s,activeUid:l,activeInbox:u,activeFriend:me,messages:d,loadingMessages:f,loadingMoreMessages:h,input:y,imageUrls:x,uploadingImage:S,sending:C,showStartChat:T,startChatInput:E,startingChat:D,startChatError:O,isMobileChatOpen:k,showDeleteConfirm:A,deletingMsgId:j,unreadModerationCount:ee,pageTip:L,friendListRef:ne,messagesContainerRef:re,inputRef:ie,imageInputRef:z,loadMoreFriendsTriggerRef:oe,MAX_IMAGES:Tn,showTip:W,requestRecall:Re,selectConversation:ke,selectInbox:Ae,openStartChat:De,closeStartChat:Oe,startChatWithUser:Ee,onFriendListScroll:je,onMessagesScroll:Me,handleSend:we,handleDeleteMessage:Te,pickImage:Ne,onImageFileChange:Y,removeImage:Pe,adjustInputHeight:Ce,scrollMessagesToBottom:Se}}var On={key:0,class:`flex flex-1 items-center justify-center px-4`},kn={class:`text-center`},An={class:`text-[13px] text-secondary`},jn={key:1,class:`relative flex min-h-0 flex-1 flex-col overflow-hidden border-border bg-base md:rounded-[var(--radius-default)] md:border`},Mn={key:0,class:`pointer-events-none absolute inset-x-0 top-2 z-30 flex justify-center px-3`},Nn={class:`flex min-h-0 flex-1`},Pn={class:`flex shrink-0 items-center gap-2 border-b border-border bg-elevated px-3 py-2.5`},Fn=[`aria-label`],In=[`href`],Ln=[`src`,`alt`],Rn={key:1,class:`flex h-9 w-9 items-center justify-center rounded-full border border-border bg-surface`},zn={class:`min-w-0`},Bn={class:`truncate text-[14px] font-bold text-primary`},Vn={class:`text-[12px] text-muted`},Hn=[`title`],Un={key:0,class:`mb-2 text-center`},Wn={type:`button`,class:`text-[12px] text-accent hover:underline`,disabled:``},Gn={key:1,class:`py-8 text-center text-[13px] text-secondary`},Kn={key:2,class:`py-8 text-center text-[13px] text-secondary`},qn={class:`border-t border-border bg-surface px-3 py-2`},Jn={key:0,class:`mb-2 flex flex-wrap gap-2`},Yn=[`src`,`alt`],Xn=[`onClick`],Zn=[`placeholder`],Qn=[`disabled`,`title`],$n=[`disabled`],er={class:`hidden sm:inline`},tr={key:3,class:`flex flex-1 flex-col items-center justify-center gap-3 px-6 text-center`},nr={class:`text-[15px] font-bold text-primary`},rr={class:`text-[13px] text-secondary`},ir={class:`w-full max-w-md rounded-[var(--radius-default)] border border-border bg-surface shadow-lg`},ar={class:`flex items-center justify-between border-b border-border px-4 py-3`},or={class:`text-sm font-bold text-primary`},sr=[`aria-label`,`disabled`],cr={class:`space-y-2 px-4 py-3`},lr={class:`text-[13px] text-muted`},ur={key:0,class:`text-[12px] text-muted`},dr={key:1,class:`text-[12px] text-danger`},fr={class:`w-full max-w-sm rounded-[var(--radius-default)] border border-border bg-surface p-4 shadow-xl`},pr={class:`text-[14px] font-bold text-primary`},mr={class:`mt-2 text-[12px] text-secondary`},hr={class:`mt-4 flex justify-end gap-2`},gr=[`disabled`],_r=[`disabled`],vr={class:`w-full max-w-sm rounded-[var(--radius-default)] border border-border bg-surface p-4 shadow-xl`},yr={class:`text-[14px] font-bold text-primary`},br={class:`mt-2 text-[12px] text-secondary`},xr={class:`mt-4 flex justify-end gap-2`},Sr=[`disabled`],Cr=[`disabled`],wr=W(a({__name:`MessageView`,setup(a){let{t:o}=w(),S=_(),T=Dn(),{authStore:E,resolvedAvatarUrl:M,selfUid:N,friends:P,loadingFriends:te,hasMoreFriends:F,activeInbox:I,activeFriend:L,messages:R,loadingMessages:re,loadingMoreMessages:ie,input:ae,imageUrls:z,uploadingImage:oe,sending:se,showStartChat:ce,startingChat:B,startChatError:V,isMobileChatOpen:le,showDeleteConfirm:H,deletingMsgId:de,unreadModerationCount:fe,pageTip:pe,requestRecall:U,selectConversation:me,selectInbox:W,openStartChat:ge,closeStartChat:G,startChatWithUser:_e,onFriendListScroll:q,onMessagesScroll:ve,handleSend:J,handleDeleteMessage:be,pickImage:xe,onImageFileChange:Se,removeImage:Ce,MAX_IMAGES:we}=T,{messagesContainerRef:Te,inputRef:Ee,imageInputRef:De,loadMoreFriendsTriggerRef:Oe}=T,{unreadComments:ke,unreadMentions:Ae,items:je,loading:Me,loadingMore:Ne,markingAllRead:Y,markItemRead:Pe,markAllRead:Fe,setActiveKind:Ie,loadMore:Le}=bn(),X=b(``),Z=b(null),Q=b(!1),$=b(0),Re=p(()=>le.value),ze=p(()=>I.value===`comments`?ke.value:I.value===`mentions`?Ae.value:0);function Be(e,t){he(e,S,t)}function Ve(e){let t=e.target?.closest(`a`);if(!t)return;let n=t.getAttribute(`href`);!n||!n.startsWith(`/`)||Be(e,n)}function He(e,t){if(t){U(e);return}H.value=e}function Ue(){X.value=``,ge(),t(()=>Z.value?.focus())}function We(){G(),X.value=``}function Ge(e){_e(e),X.value=``}function Ke(){le.value=!1}function qe(e){W(e)}function Je(e){$.value=e}let Ye=null;function Xe(){Ye!=null&&(window.clearInterval(Ye),Ye=null)}async function Ze(){let e=E.activeAccount?.token;if(!e){$.value=0;return}try{let t=await K(e,0,1);$.value=t.totalCount}catch{}}g(()=>E.activeAccount?.token,e=>{if(Xe(),!e){$.value=0;return}Ze(),Ye=window.setInterval(()=>void Ze(),6e4)},{immediate:!0}),m(Xe);function Qe(e){me(e)}function $e(e){e.target.scrollTop<50&&!Ne.value&&!Me.value&&Le()}function et(e){Pe(e),!(e.contentId<=0)&&ue(S,ne(e.contentType,e.contentId))}function tt(e){ue(S,`/u/${e}`)}function nt(){!I.value||ze.value<=0||(Q.value=!0)}function rt(){Y.value||(Q.value=!1)}function at(){let e=I.value;!e||e===`staff`||Y.value||(Q.value=!1,Fe(e))}return g(I,e=>{Q.value=!1,Ie(e===`comments`||e===`mentions`?e:null)},{immediate:!0}),(t,a)=>{let p=s(`MaterialIcon`);return D(E).isAuthenticated?(h(),x(`section`,jn,[u(C,{name:`fade`},{default:e(()=>[D(pe)?(h(),x(`div`,Mn,[i(`p`,{class:v([`rounded-[var(--radius-default)] px-3 py-1.5 text-[12px] shadow-md`,D(pe).type===`error`?`bg-danger text-white`:`border border-border bg-surface text-secondary`])},k(D(pe).text),3)])):d(``,!0)]),_:1}),i(`div`,Nn,[i(`aside`,{class:v([`flex w-full shrink-0 flex-col border-r border-border bg-surface md:w-72 lg:w-80`,Re.value?`hidden md:flex`:`flex`])},[u(it,{friends:D(P),"active-uid":D(I)?null:D(L)?.uid??null,"active-inbox":D(I),"loading-friends":D(te),"has-more-friends":D(F),"unread-moderation-count":D(fe),"unread-comments":D(ke),"unread-mentions":D(Ae),"unread-staff-invites":$.value,onOpenStartChat:Ue,onSelect:Qe,onSelectInbox:qe,onScroll:D(q)},{default:e(()=>[D(F)?(h(),x(`div`,{key:0,ref_key:`loadMoreFriendsTriggerRef`,ref:Oe,class:`h-1`},null,512)):d(``,!0)]),_:1},8,[`friends`,`active-uid`,`active-inbox`,`loading-friends`,`has-more-friends`,`unread-moderation-count`,`unread-comments`,`unread-mentions`,`unread-staff-invites`,`onScroll`])],2),i(`main`,{class:v([`min-w-0 flex-1 flex-col bg-base`,Re.value?`flex`:`hidden md:flex`])},[D(I)===`staff`?(h(),r(on,{key:0,active:!0,onBack:Ke,onCountChange:Je})):D(I)?(h(),r(Ft,{key:D(I),kind:D(I),items:D(je),loading:D(Me),"loading-more":D(Ne),"marking-all-read":D(Y),"unread-count":ze.value,onBack:Ke,onMarkAllRead:nt,onScroll:$e,onOpen:et,onProfile:tt,onLinkClick:Ve},null,8,[`kind`,`items`,`loading`,`loading-more`,`marking-all-read`,`unread-count`])):D(L)?(h(),x(n,{key:2},[i(`header`,Pn,[i(`button`,{type:`button`,class:`inline-flex items-center text-secondary hover:text-accent md:hidden`,"aria-label":D(o)(`message.backToList`),onClick:Ke},[u(p,{name:`arrow_back`,size:22})],8,Fn),i(`a`,{href:`/u/${D(L).uid}`,class:`flex min-w-0 flex-1 items-center gap-2 no-underline`,onClick:a[1]||(a[1]=e=>Be(e,`/u/${D(L).uid}`))},[D(L).avatar_url?(h(),x(`img`,{key:0,src:D(L).avatar_url,alt:D(L).username,class:`h-9 w-9 rounded-full border border-border object-cover`},null,8,Ln)):(h(),x(`span`,Rn,[u(p,{name:`person`,size:20,class:`text-muted`})])),i(`div`,zn,[i(`p`,Bn,k(D(L).username),1),i(`p`,Vn,`OID `+k(D(L).uid),1)])],8,In),i(`button`,{type:`button`,class:`nico-btn inline-flex h-8 !min-h-8 shrink-0 items-center border border-border bg-base px-2 text-secondary hover:text-accent md:hidden`,title:D(o)(`message.newChat`),onClick:Ue},[u(p,{name:`person_add`,size:20})],8,Hn)]),i(`div`,{ref_key:`messagesContainerRef`,ref:Te,class:`nico-im-scroll min-h-0 flex-1 overflow-y-auto py-3`,onScroll:a[3]||(a[3]=(...e)=>D(ve)&&D(ve)(...e))},[D(ie)?(h(),x(`div`,Un,[i(`button`,Wn,k(D(o)(`message.loadingMoreMessages`)),1)])):d(``,!0),D(re)?(h(),x(`p`,Gn,k(D(o)(`message.loadingMessages`)),1)):D(R).length===0?(h(),x(`p`,Kn,k(D(o)(`message.emptyMessages`)),1)):d(``,!0),(h(!0),x(n,null,c(D(R),(e,t)=>(h(),r(hn,{key:`${e.msg_id}-${e.time}-${t}`,message:e,"self-uid":D(N),"friend-name":D(L).username,"friend-avatar":D(L).avatar_url,"self-avatar":D(M)||void 0,deleting:D(de)===e.msg_id,onDelete:a[2]||(a[2]=e=>He(e,e<=0)),onLinkClick:Ve},null,8,[`message`,`self-uid`,`friend-name`,`friend-avatar`,`self-avatar`,`deleting`]))),128))],544),i(`footer`,qn,[D(z).length>0?(h(),x(`div`,Jn,[(h(!0),x(n,null,c(D(z),(e,t)=>(h(),x(`div`,{key:e,class:`group relative`},[i(`img`,{src:e,alt:D(o)(`message.imagePreview`,{index:t+1}),class:`h-20 w-20 rounded-[var(--radius-default)] border border-border object-cover`},null,8,Yn),i(`button`,{type:`button`,class:`absolute -right-1 -top-1 flex h-5 w-5 items-center justify-center rounded-full bg-danger text-white opacity-0 transition-opacity group-hover:opacity-100`,onClick:e=>D(Ce)(t)},[u(p,{name:`close`,size:12})],8,Xn)]))),128))])):d(``,!0),i(`form`,{class:`flex items-end gap-2`,onSubmit:a[9]||(a[9]=f((...e)=>D(J)&&D(J)(...e),[`prevent`]))}
5,[y(i(`textarea`,{ref_key:`inputRef`,ref:Ee,"onUpdate:modelValue":a[4]||(a[4]=e=>O(ae)?ae.value=e:null),rows:`1`,maxlength:`200`,class:`nico-input min-h-[40px] max-h-28 flex-1 resize-y py-2 text-[14px]`,placeholder:D(o)(`message.inputPlaceholder`),onKeydown:[a[5]||(a[5]=j(f((...e)=>D(J)&&D(J)(...e),[`ctrl`,`prevent`]),[`enter`])),a[6]||(a[6]=j(f((...e)=>D(J)&&D(J)(...e),[`meta`,`prevent`]),[`enter`]))]},null,40,Zn),[[ee,D(ae)]]),i(`button`,{type:`button`,class:`nico-icon-btn !h-10 !w-10 shrink-0`,disabled:D(oe)||D(z).length>=D(we),title:D(z).length>=D(we)?D(o)(`message.maxImages`,{count:D(we)}):D(o)(`message.addImage`),onClick:a[7]||(a[7]=(...e)=>D(xe)&&D(xe)(...e))},[u(p,{name:D(oe)?`hourglass_empty`:`image`,size:24},null,8,[`name`])],8,Qn),i(`input`,{ref_key:`imageInputRef`,ref:De,type:`file`,accept:`image/jpeg,image/png,image/gif,image/webp,.jpg,.jpeg,.png,.gif,.webp`,class:`sr-only`,tabindex:`-1`,"aria-hidden":`true`,onChange:a[8]||(a[8]=(...e)=>D(Se)&&D(Se)(...e))},null,544),i(`button`,{type:`submit`,class:`nico-btn nico-btn-primary inline-flex h-10 !min-h-10 shrink-0 items-center gap-1 px-3`,disabled:!D(ae).trim()&&D(z).length===0||D(se)},[u(p,{name:`send`,size:18}),i(`span`,er,k(D(o)(`message.send`)),1)],8,$n)],32)])],64)):(h(),x(`div`,tr,[u(p,{name:`chat_bubble_outline`,size:48,class:`text-muted`}),i(`p`,nr,k(D(o)(`message.pickConversation`)),1),i(`p`,rr,k(D(o)(`message.pickConversationHint`)),1),i(`button`,{type:`button`,class:`nico-btn inline-flex h-9 items-center gap-1 border border-border bg-base px-3 text-[13px] text-primary`,onClick:Ue},[u(p,{name:`person_add`,size:18}),l(` `+k(D(o)(`message.newChat`)),1)])]))],2)]),D(ce)?(h(),x(`div`,{key:0,class:`fixed inset-0 z-50 flex items-end justify-center bg-black/50 p-4 sm:items-center`,onClick:f(We,[`self`])},[i(`div`,ir,[i(`header`,ar,[i(`h2`,or,k(D(o)(`message.newChat`)),1),i(`button`,{type:`button`,class:`text-secondary hover:text-accent`,"aria-label":D(o)(`common.cancel`),disabled:D(B),onClick:We},[u(p,{name:`close`,size:22})],8,sr)]),i(`div`,cr,[i(`p`,lr,k(D(o)(`message.newChatHint`)),1),u(ye,{ref_key:`userMentionSearchRef`,ref:Z,modelValue:X.value,"onUpdate:modelValue":a[10]||(a[10]=e=>X.value=e),"direct-search":``,autofocus:``,placeholder:D(o)(`message.searchUserPh`),onSelect:Ge},null,8,[`modelValue`,`placeholder`]),D(B)?(h(),x(`p`,ur,k(D(o)(`message.searchingUsers`)),1)):d(``,!0),D(V)?(h(),x(`p`,dr,k(D(V)),1)):d(``,!0)])])])):d(``,!0),(h(),r(A,{to:`body`},[Q.value&&D(I)?(h(),x(`div`,{key:0,class:`fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4`,onClick:f(rt,[`self`])},[i(`div`,fr,[i(`h3`,pr,k(D(o)(`message.markAllReadConfirmTitle`)),1),i(`p`,mr,k(D(I)===`comments`?D(o)(`message.markAllReadConfirmBodyComments`):D(o)(`message.markAllReadConfirmBodyMentions`)),1),i(`div`,hr,[i(`button`,{type:`button`,class:`nico-btn nico-btn-sm border border-border text-secondary`,disabled:D(Y),onClick:rt},k(D(o)(`common.cancel`)),9,gr),i(`button`,{type:`button`,class:`nico-btn nico-btn-sm nico-btn-primary`,disabled:D(Y),onClick:at},k(D(Y)?D(o)(`message.markingAllRead`):D(o)(`message.markAllReadConfirm`)),9,_r)])])])):d(``,!0),D(H)===null?d(``,!0):(h(),x(`div`,{key:1,class:`fixed inset-0 z-50 flex items-center justify-center bg-black/40 p-4`,onClick:a[13]||(a[13]=f(e=>H.value=null,[`self`]))},[i(`div`,vr,[i(`h3`,yr,k(D(o)(`message.recallConfirmTitle`)),1),i(`p`,br,k(D(o)(`message.recallConfirmBody`)),1),i(`div`,xr,[i(`button`,{type:`button`,class:`nico-btn nico-btn-sm border border-border text-secondary`,disabled:D(de)!==null,onClick:a[11]||(a[11]=e=>H.value=null)},k(D(o)(`common.cancel`)),9,Sr),i(`button`,{type:`button`,class:`nico-btn nico-btn-sm nico-btn-primary`,disabled:D(de)!==null,onClick:a[12]||(a[12]=e=>D(H)!==null&&D(be)(D(H)))},k(D(de)===D(H)?D(o)(`message.recalling`):D(o)(`message.recallConfirm`)),9,Cr)])])]))]))])):(h(),x(`div`,On,[i(`div`,kn,[i(`p`,An,k(D(o)(`message.loginRequired`)),1),i(`button`,{type:`button`,class:`nico-btn nico-btn-primary mt-4`,onClick:a[0]||(a[0]=e=>D(E).openAuth(`login`))},k(D(o)(`accountMenu.login`)),1)])]))}}}),[[`__scopeId`,`data-v-b7d3b732`]]);export{wr as default};

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.