import{b as Z,d as C,e as ee}from"./chunk-QIJGSTAO.js";import{a as te}from"./chunk-CUOWKLRV.js";import{ca as X,da as B,ea as W}from"./chunk-Q232IBQN.js";import{j as Y}from"./chunk-LGT7QKWT.js";import{m as J,q as K}from"./chunk-Z3H43YNT.js";import{C as R,Ec as Q,Ic as L,K as P,Kc as f,Kd as G,La as O,Ob as w,Oc as z,Od as V,Pc as g,Q as q,Qc as x,Uc as y,Zc as h,_c as _,e as b,ga as j,ha as F,hc as $,j as M,ja as N,jc as p,lc as d,nc as D,oc as k,p as A,pc as H,qc as u,rc as a,sc as o,tc as m,v,wb as r,xa as E}from"./chunk-O7RN3KYY.js";import{a as T}from"./chunk-ZE2KCNEA.js";import{a as U,b as I}from"./chunk-CEWFFWI2.js";T();var ie=["searchInput"];function ne(t,l){t&1&&(a(0,"mat-option",6),m(1,"loader"),o())}function re(t,l){if(t&1&&m(0,"noto-emoji",14),t&2){let e=f().$implicit;u("emoji",e.status_emoji||"\u{1F4AC}")}}function oe(t,l){if(t&1&&(a(0,"div",15),h(1),o()),t&2){let e=f().$implicit;r(),_(e.email)}}function se(t,l){if(t&1&&m(0,"user-type",16),t&2){let e=f().$implicit;u("user",e)}}function ae(t,l){if(t&1&&(a(0,"div",17)(1,"span"),h(2),o()()),t&2){let e=f().$implicit;r(2),_(e.status_message)}}function le(t,l){if(t&1&&(a(0,"mat-option",7)(1,"div",8)(2,"div",9),m(3,"profile-pic",10),o(),a(4,"div",11)(5,"div",12)(6,"div",13),h(7),o(),p(8,re,1,1,"noto-emoji",14),o(),p(9,oe,2,1,"div",15)(10,se,1,1,"user-type",16),p(11,ae,3,1,"div",17),o()()()),t&2){let e=l.$implicit,n=f();u("value",e),r(3),u("profilePic",e.profile_pic),r(4),_(e.name),r(),d(e.status_message?8:-1),r(),d(n.includeEmail?9:10),r(2),d(e.status_message?11:-1)}}function ce(t,l){t&1&&(a(0,"div")(1,"mat-option",6)(2,"div",18),Q(3,2),o()()())}var Te=(()=>{class t{constructor(){this.userService=E(W),this.cdr=E(G),this.componentId=t.nextId++,this.disabled=!1,this.required=!1,this.includeEmail=!1,this.selectUser=new O,this.loading=!1,this.destroySubject=new b}static{this.nextId=0}ngAfterViewInit(){R(this.searchInput.nativeElement,"input").pipe(N(()=>{this.users=[],this.loading=!0,this.cdr.markForCheck()}),v(e=>e.target.value),q(500),j(e=>this.searchUsers(e).pipe(P(()=>A([])))),F(this.destroySubject)).subscribe(e=>{this.users=e,this.loading=!1,this.cdr.markForCheck()})}ngOnDestroy(){this.destroySubject.next(),this.destroySubject.complete()}searchUsers(e){if(!e)return M;let n=["id","name","profile_pic","header_info","champion","pronouns","status_message","status_emoji"];return this.includeEmail&&n.push("email"),this.userService.searchUsers(e,I(U({},this.extraParams),{field:n,limit:10})).pipe(v(i=>{let s=this.filterUsers?this.filterUsers.map(S=>S.id):[],c=i.results.filter(S=>!s.includes(S.id));return this.filterFunc&&typeof this.filterFunc=="function"&&(c=c.filter(this.filterFunc)),c}))}get getInputId(){return this.inputId??`selectUsers-${this.componentId}`}get inputRequired(){return this.required&&!this.filterUsers?.length}addUser(e){this.selectUser.emit(e),this.searchInput.nativeElement.value="",this.users=[]}focus(){this.searchInput?.nativeElement?.focus()}closePanel(){this.autocompleteTrigger?.closePanel()}static{this.\u0275fac=function(n){return new(n||t)}}static{this.\u0275cmp=w({type:t,selectors:[["search-users"]],viewQuery:function(n,i){if(n&1&&z(ie,5)(C,5),n&2){let s;g(s=x())&&(i.searchInput=s.first),g(s=x())&&(i.autocompleteTrigger=s.first)}},inputs:{inputId:"inputId",placeholder:"placeholder",disabled:"disabled",required:[2,"required","required",V],filterFunc:"filterFunc",filterUsers:"filterUsers",extraParams:"extraParams",includeEmail:"includeEmail"},outputs:{selectUser:"selectUser"},decls:10,vars:9,consts:()=>{let e;return e=$localize`No users match your query.`,[["searchInput",""],["auto","matAutocomplete"],e,[1,"visually-hidden",3,"for"],["type","search","name","search","autocomplete","off",1,"select-users","form-control","w-100",3,"id","placeholder","matAutocomplete","disabled"],[1,"select-users-results",3,"optionSelected"],["disabled","",1,"autocomplete-option-default","custom-content"],[1,"autocomplete-option-default","custom-content",3,"value"],[1,"select-users-result","d-flex","align-items-center","w-100","px-16","py-8","text-truncate","hoverable"],[1,"avatar","size-40","mr-12"],[3,"profilePic"],[1,"text-truncate"],[1,"d-flex","text-bold","text-truncate"],[1,"text-lg"],[1,"ml-4","text-sm","pointer",3,"emoji"],[1,"text-quiet","text-md"],[3,"user"],[1,"text-quiet","line-clamp-1","text-wrap"],[1,"text-center","text-quiet","pa-40"]]},template:function(n,i){if(n&1&&(a(0,"label",3),h(1),o(),m(2,"input",4,0),a(4,"mat-autocomplete",5,1),L("optionSelected",function(c){return i.addUser(c.option.value)}),p(6,ne,2,0,"mat-option",6),k(7,le,12,6,"mat-option",7,D),p(9,ce,4,0,"div"),o()),n&2){let s=y(3),c=y(5);u("for",i.getInputId),r(),_(i.placeholder),r(),u("id",i.getInputId)("placeholder",i.placeholder)("matAutocomplete",c)("disabled",i.disabled),$("required",i.inputRequired?"":null),r(4),d(i.loading&&s.value?6:-1),r(),H(i.users),r(2),d(!(i.users!=null&&i.users.length)&&s.value&&!i.loading?9:-1)}},dependencies:[ee,Z,J,C,K,Y,B,te,X],encapsulation:2})}}return t})();export{Te as a};