1import{G as H}from"./chunk-COBNBFGF.js";import{b as q}from"./chunk-P52SAZ7N.js";import"./chunk-G3PWCLSY.js";import"./chunk-372BPJQ3.js";import"./chunk-AFVSMPBC.js";import{a as Y}from"./chunk-PZJVX6OJ.js";import"./chunk-BYXBJQAS.js";import"./chunk-ZVCHMNXO.js";import"./chunk-JUAHV2TC.js";import"./chunk-BXOGPMZZ.js";import"./chunk-NRC4EHFH.js";import"./chunk-S2LG7ZZI.js";import{a as j}from"./chunk-FRZHUY6N.js";import{d as L,h as U}from"./chunk-32B64V2R.js";import"./chunk-3XLVKQRY.js";import"./chunk-DJ5AJG3T.js";import"./chunk-SLPC3Y4V.js";import"./chunk-XIRWNEM2.js";import"./chunk-AAORKXGN.js";import"./chunk-KDGXQRVY.js";import"./chunk-Q2KKZV5J.js";import{a as F}from"./chunk-JICM7NVH.js";import"./chunk-AB6CKZTE.js";import{d as G,e as $}from"./chunk-DIGPPQJE.js";import{r as W,x as B}from"./chunk-EU6HCBUP.js";import"./chunk-KAJMKXZ6.js";import{D as V,l as N,m as R}from"./chunk-ZAQTNZYS.js";import{c as z}from"./chunk-SRTXE2HR.js";import{Fa as D,Jb as l,Kb as w,L as P,Lb as h,S as O,Uc as g,Vc as f,Wb as o,Xb as r,Yb as u,Zb as M,_b as k,ac as T,da as x,db as a,gc as v,hc as p,la as b,ma as I,sa as E,sb as A,uc as c,vc as _,wc as y,yb as d}from"./chunk-NTTV6FWH.js";import{g as C}from"./chunk-W7GRJBO5.js";function K(n,e){if(n&1&&(o(0,"span",8),c(1),r()),n&2){let t=p();a(),_(t.invitations.length)}}function Q(n,e){n&1&&(o(0,"div",9),u(1,"i",10),r())}function X(n,e){if(n&1&&(M(0),c(1),k()),n&2){let t=p().$implicit,i=p(3);a(),_(i.initial(t))}}function Z(n,e){n&1&&u(0,"app-verified-badge",26),n&2&&l("size",13)}function ee(n,e){n&1&&u(0,"span",27)}function te(n,e){n&1&&(o(0,"span",28),c(1),g(2,"translate"),r()),n&2&&(a(),_(f(2,1,"MESSAGES_DM.PENDING")))}function ie(n,e){if(n&1){let t=T();o(0,"li",15),v("click",function(){let s=b(t).$implicit,m=p(3);return I(m.open(s))}),o(1,"span",16),d(2,X,2,1,"ng-container",7),r(),o(3,"div",17)(4,"div",18)(5,"span",19),c(6),d(7,Z,1,1,"app-verified-badge",20),r(),o(8,"span",21),c(9),r()(),o(10,"div",22)(11,"span",23),c(12),r(),d(13,ee,1,0,"span",24)(14,te,3,3,"span",25),r()()()}if(n&2){let t=e.$implicit,i=p(3);h("is-unread",i.isUnread(t)),a(),w("background-image",i.avatar(t)?"url("+i.avatar(t)+")":""),h("is-live",t.interlocutor==null?null:t.interlocutor.isLive),a(),l("ngIf",!i.avatar(t)),a(4),_(i.name(t)),a(),l("ngIf",t.interlocutor==null?null:t.interlocutor.isVerified),a(2),_(i.relTime(t.lastReplyAt)),a(3),_(i.preview(t)),a(),l("ngIf",i.isUnread(t)),a(),l("ngIf",t.dmStatus==="pending")}}function ne(n,e){n&1&&(o(0,"li",29),u(1,"i",30),o(2,"span"),c(3),g(4,"translate"),r()()),n&2&&(a(3),_(f(4,1,"MESSAGES_DM.EMPTY_MESSAGES")))}function ae(n,e){if(n&1&&(o(0,"ul",12),d(1,ie,15,13,"li",13)(2,ne,5,3,"li",14),r()),n&2){let t=p(2);a(),l("ngForOf",t.conversations),a(),l("ngIf",!t.conversations.length)}}function oe(n,e){if(n&1&&(M(0),c(1),k()),n&2){let t=p().$implicit,i=p(3);a(),_(i.initial(t))}}function re(n,e){if(n&1){let t=T();o(0,"li",32),v("click",function(){let s=b(t).$implicit,m=p(3);return I(m.open(s))}),o(1,"span",16),d(2,oe,2,1,"ng-container",7),r(),o(3,"div",17)(4,"div",18)(5,"span",19),c(6),r(),o(7,"span",21),c(8),r()(),o(9,"div",22)(10,"span",23),c(11),r()(),o(12,"div",33)(13,"button",34),v("click",function(s){let m=b(t).$implicit,S=p(3);return I(S.accept(m,s))}),c(14),g(15,"translate"),r(),o(16,"button",35),v("click",function(s){let m=b(t).$implicit,S=p(3);return I(S.decline(m,s))}),c(17),g(18,"translate"),r()()()()}if(n&2){let t=e.$implicit,i=p(3);a(),w("background-image",i.avatar(t)?"url("+i.avatar(t)+")":""),a(),l("ngIf",!i.avatar(t)),a(4),_(i.name(t)),a(2),_(i.relTime(t.lastReplyAt)),a(3),_(i.preview(t)),a(2),l("disabled",i.busyId===t.id),a(),y(" ",f(15,10,"MESSAGES_DM.ACCEPT")," "),a(2),l("disabled",i.busyId===t.id),a(),y(" ",f(18,12,"MESSAGES_DM.DECLINE")," ")}}function se(n,e){n&1&&(o(0,"li",29),u(1,"i",36),o(2,"span"),c(3),g(4,"translate"),r()()),n&2&&(a(3),_(f(4,1,"MESSAGES_DM.EMPTY_INVITATIONS")))}function le(n,e){if(n&1&&(o(0,"ul",12),d(1,re,19,14,"li",31)(2,se,5,3,"li",14),r()),n&2){let t=p(2);a(),l("ngForOf",t.invitations),a(),l("ngIf",!t.invitations.length)}}function ce(n,e){if(n&1&&(M(0),d(1,ae,3,2,"ul",11)(2,le,3,2,"ul",11),k()),n&2){let t=p();a(),l("ngIf",t.activeTab==="messages"),a(),l("ngIf",t.activeTab==="invitations")}}var J=class n{ticketService=x(Y);loginService=x(U);workspaceService=x(L);
1toast=x(F);router=x(W);platformId=x(D);destroyRef=x(E);loading=!0;activeTab="messages";conversations=[];invitations=[];busyId=null;sub=null;myWs=null;ngOnInit(){if(z(this.platformId)){if(!this.loginService.isLoggedIn){this.router.navigate(["/login"],{queryParams:{returnUrl:"/a/messages"}});return}this.load(),this.workspaceService.activeWorkspace$.pipe(O(1),P(),j(this.destroyRef)).subscribe(()=>{this.myWs=this.workspaceService.activeWorkspaceId,this.load()}),this.sub=this.ticketService.connectStream(e=>{(e.type==="new_message"||e.type==="new_ticket"||e.type==="status_changed")&&this.load(!0)})}}ngOnDestroy(){this.sub?.close()}load(e=!1){return C(this,null,function*(){e||(this.loading=!0),this.workspaceService.activeWorkspaceId||(yield this.workspaceService.listWorkspaces().catch(()=>{})),this.myWs=this.workspaceService.activeWorkspaceId;try{let i=(yield this.ticketService.findAll({contextType:"dm",sort:"lastReplyAt,DESC",limit:50})).data||[];this.invitations=i.filter(s=>this.isInvitation(s)),this.conversations=i.filter(s=>!this.isInvitation(s)&&s.dmStatus!=="declined")}catch{}finally{this.loading=!1}})}isInvitation(e){return e.dmStatus!=="pending"?!1:this.myWs&&e.recipientWorkspaceId?e.recipientWorkspaceId===this.myWs:e.lastMessage?!e.lastMessage.isOwn:!1}setTab(e){this.activeTab=e}open(e){this.router.navigate(["/a","messages",e.id])}accept(e,t){return C(this,null,function*(){if(t.stopPropagation(),!this.busyId){this.busyId=e.id;try{yield this.ticketService.acceptDm(e.id),this.router.navigate(["/a","messages",e.id])}catch{this.toast.error("Action impossible")}finally{this.busyId=null}}})}decline(e,t){return C(this,null,function*(){if(t.stopPropagation(),!this.busyId){this.busyId=e.id;try{yield this.ticketService.declineDm(e.id),this.invitations=this.invitations.filter(i=>i.id!==e.id)}catch{this.toast.error("Action impossible")}finally{this.busyId=null}}})}isUnread(e){return!e.lastMessage||e.lastMessage.isOwn||!e.lastReplyAt?!1:e.myLastReadAt?new Date(e.lastReplyAt).getTime()>new Date(e.myLastReadAt).getTime():!0}name(e){return e.interlocutor?.name||e.authorName||e.subject||"\u2014"}avatar(e){return e.interlocutor?.avatarUrl||null}initial(e){return(this.name(e)||"?").charAt(0).toUpperCase()}preview(e){let t=e.lastMessage;return t?t.hasAttachments&&!t.content?"\u{1F4CE}":(t.isOwn?"Toi : ":"")+(t.content||"").replace(/<[^>]+>/g,"").slice(0,80):""}relTime(e){if(!e)return"";let t=Date.now()-new Date(e).getTime(),i=Math.floor(t/6e4);if(i<1)return"\xE0 l'instant";if(i<60)return`${i} min`;let s=Math.floor(i/60);if(s<24)return`${s} h`;let m=Math.floor(s/24);return m<7?`${m} j`:new Date(e).toLocaleDateString("fr-FR",{day:"2-digit",month:"2-digit"})}static \u0275fac=function(t){return new(t||n)};static \u0275cmp=A({type:n,selectors:[["app-messages-inbox"]],decls:16,vars:16,consts:[[1,"mi"],[1,"mi__head"],[1,"mi__title"],[1,"mi__tabs"],["type","button",1,"mi__tab",3,"click"],["class","mi__badge",4,"ngIf"],["class","mi__loading",4,"ngIf"],[4,"ngIf"],[1,"mi__badge"],[1,"mi__loading"],[1,"pi","pi-spin","pi-spinner"],["class","mi__list",4,"ngIf"],[1,"mi__list"],["class","mi__row",3,"is-unread","click",4,"ngFor","ngForOf"],["class","mi__empty",4,"ngIf"],[1,"mi__row",3,"click"],[1,"mi__av"],[1,"mi__body"],[1,"mi__line1"],[1,"mi__name"],[3,"size",4,"ngIf"],[1,"mi__time"],[1,"mi__line2"],[1,"mi__preview"],["class","mi__dot",4,"ngIf"],["class","mi__pending",4,"ngIf"],[3,"size"],[1,"mi__dot"],[1,"mi__pending"],[1,"mi__empty"],[1,"pi","pi-comments"],["class","mi__row mi__row--inv",3,"click",4,"ngFor","ngForOf"],[1,"mi__row","mi__row--inv",3,"click"],[1,"mi__actions"],["type","button",1,"mi__accept",3,"click","disabled"],["type","button",1,"mi__decline",3,"click","disabled"],[1,"pi","pi-inbox"]],template:function(t,i){t&1&&(o(0,"app-shell")(1,"div",0)(2,"header",1)(3,"h1",2),c(4),g(5,"translate"),r(),o(6,"nav",3)(7,"button",4),v("click",function(){return i.setTab("messages")}),c(8),g(9,"translate"),r(),o(10,"button",4),v("click",function(){return i.setTab("invitations")}),c(11),g(12,"translate"),d(13,K,2,1,"span",5),r()()(),d(14,Q,2,0,"div",6)(15,ce,3,2,"ng-container",7),r()()),t&2&&(a(4),_(f(5,10,"MESSAGES_DM.TITLE")),a(3),h("is-active",i.activeTab==="messages"),a(),y(" ",f(9,12,"MESSAGES_DM.TAB_MESSAGES")," "),a(2),h("is-active",i.activeTab==="invitations"),a(),y(" ",f(12,14,"MESSAGES_DM.TAB_INVITATIONS")," "),a(2),l("ngIf",i.invitations.length),a(),l("ngIf",i.loading),a(),l("ngIf",!i.loading))},dependencies:[q,V,N,R,B,$,G,H],styles:["[_nghost-%COMP%]{--paper: #0a0a14;--surface: #12121e;--surface-2: #1a1a2e;--ink: #ffffff;--ink-soft: rgba(255, 255, 255, .66);--ink-muted: rgba(255, 255, 255, .45);--accent: #2f8eef;--accent-bright: #54a6f6;--live: #ff3b30;--error: #ef4444;--border: rgba(255, 255, 255, .1);--border-soft: rgba(255, 255, 255, .06);--topbar: 64px;--story-ring-a: #ffc83a;--story-ring-b: #ff7a1a;--story-ring-seen: rgba(255, 255, 255, .22);display:block;color:var(--ink);font-family:Inter,system-ui,sans-serif}*[_ngcontent-%COMP%]{box-sizing:border-box}button[_ngcontent-%COMP%]{font-family:inherit;cursor:pointer}.mi[_ngcontent-%COMP%]{max-width:720px;margin:0 auto}.mi__head[_ngcontent-%COMP%]{padding:18px 16px 0}.mi__title[_ngcontent-%COMP%]{margin:0 0 12px;font-size:22px;font-weight:800}.mi__tabs[_ngcontent-%COMP%]{display:flex;gap:6px;border-bottom:1px solid var(--border)}.mi__tab[_ngcontent-%COMP%]{position:relative;background:none;border:none;color:var(--ink-muted);font-size:14px;font-weight:700;padding:10px 4px 12px;margin-right:18px;border-bottom:2px solid transparent;display:inline-flex;align-items:center;gap:8px}.mi__tab.is-active[_ngcontent-%COMP%]{color:var(--ink);border-bottom-color:var(--accent)}.mi__badge[_ngcontent-%COMP%]{min-width:18px;height:18px;padding:0 5px;border-radius:999px;background:var(--accent);color:#fff;font-size:11px;font-weight:800;display:inline-flex;align-items:center;justify-content:center}.mi__loading[_ngcontent-%COMP%]{text-align:center;padding:60px;color:var(--ink-muted)}.mi__loading[_ngcontent-%COMP%] .pi[_ngcontent-%COMP%]{font-size:28px}.mi__list[_ngcontent-%COMP%]{list-style:none;margin:0;padding:6px 8px 40px}.mi__row[_ngcontent-%COMP%]{display:flex;gap:12px;padding:12px 8px;border-radius:12px;cursor:pointer;align-items:flex-start}.mi__row[_ngcontent-%COMP%]:hover{background:var(--surface-2)}.mi__row--inv[_ngcontent-%COMP%]{align-items:flex-start}.mi__av[_ngcontent-%COMP%]{flex-shrink:0;width:52px;height:52px;border-radius:50%;background:var(--surface-2) center/cover no-repeat;display:flex;align-items:center;justify-content:center;font-size:20px;font-weight:800;color:var(--ink)}
1.mi__av.is-live[_ngcontent-%COMP%]{box-shadow:0 0 0 2px var(--paper),0 0 0 4px var(--live)}.mi__body[_ngcontent-%COMP%]{flex:1;min-width:0}.mi__line1[_ngcontent-%COMP%]{display:flex;align-items:center;justify-content:space-between;gap:10px}.mi__name[_ngcontent-%COMP%]{font-weight:700;font-size:15px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;display:inline-flex;align-items:center;gap:5px}.mi__name[_ngcontent-%COMP%] .pi-verified[_ngcontent-%COMP%]{color:var(--accent-bright);font-size:13px}.mi__time[_ngcontent-%COMP%]{flex-shrink:0;font-size:12px;color:var(--ink-muted)}.mi__line2[_ngcontent-%COMP%]{display:flex;align-items:center;gap:8px;margin-top:3px}.mi__preview[_ngcontent-%COMP%]{flex:1;min-width:0;font-size:13px;color:var(--ink-soft);white-space:nowrap;overflow:hidden;text-overflow:ellipsis}.mi__dot[_ngcontent-%COMP%]{flex-shrink:0;width:9px;height:9px;border-radius:50%;background:var(--accent)}.mi__pending[_ngcontent-%COMP%]{flex-shrink:0;font-size:11px;font-weight:700;color:var(--ink-muted);border:1px solid var(--border);border-radius:999px;padding:1px 8px}.is-unread[_ngcontent-%COMP%] .mi__name[_ngcontent-%COMP%], .is-unread[_ngcontent-%COMP%] .mi__preview[_ngcontent-%COMP%]{color:var(--ink);font-weight:700}.mi__actions[_ngcontent-%COMP%]{display:flex;gap:8px;margin-top:10px}.mi__accept[_ngcontent-%COMP%], .mi__decline[_ngcontent-%COMP%]{height:34px;padding:0 16px;border-radius:8px;font-weight:700;font-size:13px;border:1px solid var(--border)}.mi__accept[_ngcontent-%COMP%]:disabled, .mi__decline[_ngcontent-%COMP%]:disabled{opacity:.6;cursor:default}.mi__accept[_ngcontent-%COMP%]{background:var(--accent);border-color:var(--accent);color:#fff}.mi__accept[_ngcontent-%COMP%]:hover{background:var(--accent-bright)}.mi__decline[_ngcontent-%COMP%]{background:transparent;color:var(--ink-soft)}.mi__empty[_ngcontent-%COMP%]{display:flex;flex-direction:column;align-items:center;gap:12px;padding:60px 20px;color:var(--ink-muted);text-align:center}.mi__empty[_ngcontent-%COMP%] .pi[_ngcontent-%COMP%]{font-size:42px;opacity:.5}"]})};export{J as MessagesInboxComponent};
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.