Repository navigation
Expand file tree
/
Copy pathappSelectPeers-CjRu438A.js
More file actions
3 lines (3 loc) · 30.5 KB
/
Copy pathappSelectPeers-CjRu438A.js
File metadata and controls
3 lines (3 loc) · 30.5 KB
1
2
3
//# allFunctionsCalledOnLoad
import{h as e}from"./userAgent-DC86zy_h.js";import{i as t,o as n}from"./themeController-Covyurl3.js";import{t as r}from"./icon-Dbpch75_.js";import{p as i,t as a}from"./apiManagerProxy-BsT2jiCe.js";import{k as o}from"./objectUrlUtils-DVl-EMJc.js";import{m as s,n as c}from"./rootScope-Bvsn3YYP.js";import{f as l}from"./encryptedStorageLayer-L4vLBdVi.js";import{a as u}from"./langPack-Cx34d7Qs.js";import{S as d,b as f,f as p,h as m,v as h}from"./solid-Beq2bZCx.js";import{n as g}from"./bindManagersToAccount-JVm7nXNI.js";import{t as ee}from"./cancelEvent-Bs2qkQ0q.js";import{t as _}from"./clamp-CCzIhYEL.js";import{c as v,h as y,l as te}from"./web-BIda0ujS.js";import{n as b}from"./hotReloadGuardProvider-M_nRCQzG.js";import{t as x}from"./liteMode-C33MNtex.js";import{n as S}from"./mediaSizes-o11ePi1Z.js";import{t as ne}from"./classNames-HGN7N_ne.js";import{t as re}from"./middleware-Dc03_CQ8.js";import{t as C}from"./listenerSetter-CQfoiUkF.js";import{t as w}from"./isDocumentRTL-D2Q0700l.js";import{i as T,n as ie}from"./clickEvent-DEE669v6.js";import{t as ae}from"./labelControl-4-91J8FU.js";import{i as oe}from"./sticker-crDJZoNb.js";import{t as se}from"./animation-Dhwk8pbl.js";import{t as E}from"./lottieLoader-DEtH2G7P.js";import{d as D}from"./inputField-yafnNQpV.js";import{o as ce}from"./animations-DigaVfT2.js";import{$t as le,Vt as ue,_ as O,b as k,c as A,h as j,lt as M,v as N}from"./confirmationPopup-Dcep-P6V.js";import{Jt as P,Qt as F,Xt as I,en as L,nn as R,rn as z,tn as B}from"./getChatMigratedTo-BkdTXEMB.js";import{n as V}from"./preloaderRing-bNUNQXOp.js";import{n as H}from"./wrapEmojiText-C7I3UKLK.js";import{t as U}from"./anchorCallback-B1hVp5wq.js";import{r as de,t as fe}from"./scrollable-CvE_vKwM.js";import{t as pe}from"./getUserStatusString-Dds6elH9.js";import{a as me,s as he}from"./emailVerification-BSPYl-u5.js";import{r as ge}from"./wrapSolidComponent-Bf9wvG1x.js";import{t as _e}from"./easeInOutSine-D04dAEQU.js";import{r as ve,t as ye}from"./toast-Bejp1X_Q.js";import{t as W}from"./selectorSearch-3ZugC-Az.js";import{t as be}from"./formatNumber-CrA4O9hN.js";function G(e,t){let n;n=t?B(t):e.participants_count||e.participants?.participants.length;let r=e.pFlags.broadcast;return n=n||1,u(r?`Peer.Status.Subscribers`:`Peer.Status.Member`,[ue(n)])}function K(e,t=c.managers,n,r,i){if(n??(n=a.getChat(e)),n._===`chatForbidden`)return u(`YouWereKicked`);if(r)return G(n,void 0);let s=i||t.appProfileManager.getCachedFullChat(e);return o(s,e=>G(n,e))}async function q({container:e,emoji:t,width:n,height:r,assetName:i,middleware:a,managers:o=c.managers,loop:s=!1,autoplay:l=!0}){e||(e=document.createElement(`div`)),e.classList.add(`media-sticker-wrapper`);let u;if(i)u=E.loadAnimationAsAsset({container:e,loop:s,autoplay:l,width:n,height:r,noCache:!0,middleware:a},i).then(e=>E.waitForFirstFrame(e));else if(t){let i=await o.appStickersManager.getAnimatedEmojiSticker(t);i&&(u=oe({doc:i,div:e,loop:s,play:l,width:n,height:r,emoji:t,managers:o,middleware:a}).then(e=>e.render))}return{container:e,promise:u}}var xe=y(`<div class=selector-empty-placeholder><div class=selector-empty-placeholder-title>`),J=y(`<div class=selector-empty-placeholder-description>`);async function Y({middleware:e,title:t,description:n,hide:r,assetName:i=`UtyanSearch`,width:a=140,height:o=140,isFullSize:s}){let{container:c,promise:l}=await q({width:a,height:o,assetName:i,middleware:e,loop:!0});if(!e()||(await l,!e()))return;c.classList.add(`selector-empty-placeholder-sticker`);let u;return f(i=>{e.onClean(i),u=(()=>{var e=xe(),i=e.firstChild;return e.classList.toggle(`is-full`,!!s),v(e,c,i),v(i,t),v(e,(()=>{var e=te(()=>!!n());return()=>e()&&(()=>{var e=J();return v(e,n),e})()})(),null),h(()=>e.classList.toggle(`hide`,!!r())),e})()}),u}function X(e,t,n,r,i,a,o,s){let c=e.canvas.dpr;if(c&&(t*=c,n*=c,r*=c,i*=c),typeof a==`number`)c&&(a*=c),a={tl:a,tr:a,br:a,bl:a};else{let e={tl:0,tr:0,br:0,bl:0};for(let t in e)a[t]=a[t]?c?a[t]*c:a[t]:e[t]}e.beginPath(),e.moveTo(t+a.tl,n),e.lineTo(t+r-a.tr,n),e.quadraticCurveTo(t+r,n,t+r,n+a.tr),e.lineTo(t+r,n+i-a.br),e.quadraticCurveTo(t+r,n+i,t+r-a.br,n+i),e.lineTo(t+a.bl,n+i),e.quadraticCurveTo(t,n+i,t,n+i-a.bl),e.lineTo(t,n+a.tl),e.quadraticCurveTo(t,n,t+a.tl,n),e.closePath(),o&&e.fill(),s&&e.stroke()}var Se=class{constructor(){this.font=`30pt Helvetica`,this.currTime=Date.now(),this.diffTime=0,this.spread=0,this.paused=!1,this.pausedTime=0,this.pauseInterval=850,this.lightSource=0,this.inc=.032,this.lightSpread=.55,this.animations=[`slide`,`slide`,`slide`,`slide`],this.currentAnimationIndex=0}keepTime(){this.diffTime=Date.now()-this.currTime,this.currTime=Date.now()}cycleAnimation(){++this.currentAnimationIndex,this.currentAnimationIndex>=this.animations.length&&(this.currentAnimationIndex=0)}animate(){let e=this.animations[this.currentAnimationIndex];if(e===`glow`)return this.animateGlow();if(e===`slide`)return this.animateSlide();console.log(`unknown animation type: `+String(e))}animateGlow(){var e=68,t=e,n=10,r=800;return()=>{var i=n*(this.diffTime/(1e3/60));return this.paused?Date.now()-this.pausedTime>r&&(t=e,this.cycleAnimation(),this.paused=!1):(t=parseInt(``+(t+i)),t>=255&&(this.paused=!0,this.pausedTime=Date.now())),`rgb(`+t+`,`+t+`,`+t+`)`}}animateSlide(){var e=w()?this.ctx.createLinearGradient(this.canvas.width,0,0,0):this.ctx.createLinearGradient(0,0,this.canvas.width,0),t=this.inc*(this.diffTime/(1e3/60)),r,i,a;if(this.paused){if(Date.now()-this.pausedTime>this.pauseInterval)return this.lightSource=-.6,this.cycleAnimation(),this.paused=!1,this.animateSlide()}else this.lightSource+=t,this.lightSource>1+this.lightSpread&&(this.paused=!0,this.pausedTime=Date.now());a=_(this.lightSource,0,1),r=_(this.lightSource-this.lightSpread,0,1),i=_(this.lightSource+this.lightSpread,0,1);let o=n.getProperty(`background-color`,this.night),s=n.getProperty(`surface-color`,this.night);return e.addColorStop(r,o),e.addColorStop(a,s),e.addColorStop(i,o),e}settings(e={}){this.canvas=e.canvas??document.createElement(`canvas`),this.ctx=this.canvas.getContext(`2d`),this.font=e.font??this.font,this.lightSpread=e.lightSpread??this.lightSpread,this.inc=e.inc??this.inc,this.animations=e.animations??this.animations,this.text=e.text??this.text,this.fillStyle=e.fillStyle,this.canvas.classList.add(`shimmer-canvas`)}on(){let{width:e,height:t}=this.canvas;this.keepTime(),this.ctx.clearRect(0,0,e,t),this.font&&(this.ctx.font=this.font),this.ctx.fillStyle=this.animate(),this.ctx.fillRect(0,0,e,t),this.fillStyle&&(this.ctx.fillStyle=this.fillStyle,this.ctx.fillRect(0,0,e,t)),this.text&&this.ctx.fillText(this.text,50,50)}},Z=class{constructor(e={}){this.inView=!0,this.onThemeChange=()=>{this.runAnimation()},this.onResize=()=>{let{canvas:e}=this,{width:t,height:n,dpr:r}=e;this.updateCanvasSize(),(e.width!==t||e.height!==n||e.dpr!==r)&&this.runAnimation()},this.shimmer=new Se,this.shimmer.night=this.night=e.night,this.tempId=0,this.canvas=document.createElement(`canvas`),this.canvas.classList.add(`dialogs-placeholder-canvas`),this.ctx=this.canvas.getContext(`2d`),this.generatedValues=[],this.avatarSize=e.avatarSize??54,this.avatarMarginRight=e.avatarMarginRight??10,this.marginVertical=e.marginVertical??9,this.marginLeft=e.marginLeft??17,this.gapVertical=e.gapVertical??0,this.totalHeight=e.totalHeight??this.avatarSize+this.marginVertical*2,this.lineHeight=10,this.lineBorderRadius=6,this.lineMarginVertical=e.lineMarginVertical??8,this.statusWidth=e.statusWidth??24,this.noSecondLine=e.noSecondLine}attach({container:e,rect:t,getRectFrom:n,onRemove:r,blockScrollable:i}){let{canvas:a}=this;this.detachTime=void 0,this.onRemove=r,this.getRectFrom=typeof n==`function`?n:(n||e).getBoundingClientRect.bind(n||e),(this.blockScrollable=i)&&(i.container.style.overflowY=`hidden`),this.updateCanvasSize(t),this.startAnimation(),e.append(a),this.observer?.disconnect(),this.observer=V(e=>{this.inView=e[e.length-1].isIntersecting,this.inView&&this.held&&(this.held=!1,this.runAnimation())}),this.observer.observe(a)}detach(e){if(this.detachTime)return;this.availableLength=e,this.detachTime=Date.now();let t=x.getAnimationLevel();!t||!this.inView||!this.hasSize()?this.remove():t===1?this.canvas.animate(ce.slice().reverse(),{duration:150,easing:`ease-in-out`,fill:`forwards`}).finished.then(()=>this.remove()):this.looping||this.runAnimation()}removeWithoutUnmounting(){this.stopAnimation(),this.onRemove?.(),this.onRemove=void 0}remove(){this.stopAnimation(),this.canvas.parentElement&&(this.canvas.remove(),this.blockScrollable&&(this.blockScrollable.container.style.overflowY=``,this.blockScrollable=void 0)),this.onRemove?.(),this.onRemove=void 0}updateCanvasSize(e=this.getRectFrom()){let{canvas:t}=this,n=t.dpr=window.devicePixelRatio;t.width=e.width*n,t.height=e.height*n,t.style.width=e.width+`px`,t.style.height=e.height+`px`}renderDetachAnimationFrame(){let{canvas:e,ctx:t,detachTime:n,length:r,availableLength:i}=this;if(!n)return;if(!x.isAvailable(`animations`)){this.remove();return}let{width:a}=e;t.globalCompositeOperation=`destination-out`;let o=Date.now()-n,s=!0;for(let e=0;e<r;++e){let n=o-(i<r&&e>=i?15*(i-1):15*e);if(n<=0){s=!1;continue}let c=_e(n,0,1,150);t.beginPath(),t.rect(0,this.dialogHeight*e,a,this.dialogHeight),t.fillStyle=`rgba(0, 0, 0, ${c})`,t.fill(),c<1&&(s=!1)}t.globalCompositeOperation=`source-over`,s&&this.remove()}renderFrame(){this.shimmer.on(),this.renderDetachAnimationFrame()}startAnimation(){this.runAnimation(),c.addEventListener(`theme_changed`,this.onThemeChange),S.addEventListener(`resize`,this.onResize)}hasSize(){let{canvas:e}=this;return!!(e.width&&e.height)}runAnimation(){let{canvas:e,shimmer:t}=this,n=++this.tempId;if(!this.hasSize()){this.looping=!1,this.detachTime&&this.remove();return}let r=this.createPattern();t.settings({canvas:e,fillStyle:r});let i=()=>this.tempId===n;this.renderFrame(),this.looping=x.isAvailable(`motion`),this.looping&&se(()=>i()?!x.isAvailable(`motion`)&&!this.detachTime?(this.looping=!1,!1):this.inView?(this.renderFrame(),i()):(this.looping=!1,this.detachTime?this.remove():this.held=!0,!1):!1)}stopAnimation(){++this.tempId,this.observer?.disconnect(),this.observer=void 0,this.held=!1,this.inView=!0,c.removeEventListener(`theme_changed`,this.onThemeChange),S.removeEventListener(`resize`,this.onResize)}createPattern(){let{canvas:e,ctx:t}=this,r=document.createElement(`canvas`),i=r.getContext(`2d`),a=e.dpr;r.dpr=a,r.width=e.width,r.height=e.height,i.fillStyle=n.getProperty(`surface-color`,this.night),i.fillRect(0,0,r.width,r.height),i.fillStyle=`#000`,i.globalCompositeOperation=`destination-out`,w()&&i.setTransform(-1,0,0,1,r.width,0);let o=this.dialogHeight=this.totalHeight*a,s=this.gapVertical*a,c=0,l=this.length=Math.ceil(e.height/o);for(let e=0;e<l;++e)this.drawChat(i,e,e*o+c),c+=s;return t.createPattern(r,`no-repeat`)}drawChat(e,t,n){let r=this.generatedValues[t];r||(r=this.generatedValues[t]={firstLineWidth:40+Math.random()*100,secondLineWidth:this.noSecondLine?0:120+Math.random()*130,statusWidth:this.statusWidth?this.statusWidth+Math.random()*16:void 0});let{firstLineWidth:a,secondLineWidth:o,statusWidth:s}=r,{canvas:c}=e,{dpr:l}=c;n/=l;let{avatarSize:u,marginVertical:d,lineHeight:f,lineBorderRadius:p,lineMarginVertical:m}=this,h=this.marginLeft;u&&(i(e,h,n+d,u/2,!0),h+=u+this.avatarMarginRight),X(e,h,n+d+m,a,f,p,!0),o&&X(e,h,n+this.totalHeight-d-f-m,o,f,p,!0),s&&X(e,c.width/l-24-s,n+d+m,s,f,p,!0)}},Q,Ce=`selector-row-with-checkbox`,$=class{constructor(t){this.container=document.createElement(`div`),this.list=b.appDialogsManager.createChatList(),this.selected=new Set,this.changes=[],this.freezed=!1,this.folderId=0,this.offsetIndex=0,this.query=``,this.loadedWhat={},this.renderedPeerIds=new Set,this.pendingLists=new Set,this.peerType=[`dialogs`],this.multiSelect=`enabled`,this.rippleEnabled=!0,this.avatarSize=`abitbigger`,this.tempIds={},this.selfPresence=`Presence.YourChat`,this.needSwitchList=!1,this.design=`round`,this.participants=new Map,this.starsAmountByPeer=new Map,this.prependedPeerIds=!1,this.onInput=()=>{let e=this.inputSearch.value;if(this.query!==e){(this.peerType.includes(`contacts`)||this.peerType.includes(`dialogs`))&&(this.cachedContacts=void 0),this.peerType.includes(`dialogs`)&&(this._setFolderId(e),this.offsetIndex=0);for(let e in this.tempIds)++this.tempIds[e];this.oldList?this.listMiddlewareHelper.destroy():(this.oldList=this.list,this.oldListMiddlewareHelper=this.listMiddlewareHelper),this.list=b.appDialogsManager.createChatList(),this.listMiddlewareHelper=this.middlewareHelper.get().create(),this.promise=void 0,this.query=e,this.onSearchChange?.(e),this.renderedPeerIds.clear(),this.prependedPeerIds=!1,this.needSwitchList=!0,this.middlewareHelperLoader.clean(),this.loadedWhat={},this.peerType.includes(`dialogs`)&&(this.loadedWhat.dialogs=!1,this.loadedWhat.archived=!1,this.loadedWhat.contacts=!1),this.peerType.includes(`contacts`)&&(this.loadedWhat.contacts=!1),this.peerType.includes(`channelParticipants`)&&(this.loadedWhat.channelParticipants=!1),this.peerType.includes(`custom`)&&(this.loadedWhat.custom=!1),this.oldList?.childElementCount&&this.emptySearchPlaceholderHideSetter?.(!0),this.getMoreResults()}},this.checkForTriggers=()=>{this.scrollable.checkForTriggers()},this.processPlaceholderOnResults=()=>{let e=this.list.childElementCount;if(e)this.dialogsPlaceholder?.detach(e),this.emptySearchPlaceholderHideSetter?.(!0),this.emptySearchPlaceholderQuerySetter?.(this.query);else if(this.emptySearchPlaceholderMiddlewareHelper)this.dialogsPlaceholder?.detach(e),this.emptySearchPlaceholderHideSetter(!1),this.emptySearchPlaceholderQuerySetter(this.query);else{this.emptySearchPlaceholderMiddlewareHelper=re();let e=this.emptySearchPlaceholderMiddlewareHelper.get();f(t=>{let[n,r]=d(this.query),[i,a]=d(),[o,s]=d(!1);this.emptySearchPlaceholderQuerySetter=r,this.emptySearchPlaceholderHideSetter=s,e.onClean(t),m(()=>{let e=n();a(e.trim()?u(`RequestJoin.List.SearchEmpty`,[H(e)]):u(`Search.EmptyQuery`))}),m(()=>{this.section.container.classList.toggle(`is-visible`,o())}),Y({middleware:e,title:()=>u(`SearchEmptyViewTitle`),description:i,hide:o}).then(t=>{e()&&this.heightContainer.append(t)})});return}},l(this,t),typeof t.multiSelect==`boolean`&&(this.multiSelect=t.multiSelect?`enabled`:`disabled`),this.listenerSetter??(this.listenerSetter=new C),this.checkboxSide??(this.checkboxSide=`right`),this.exceptSelf??(this.exceptSelf=!1),this.meAsSaved??(this.meAsSaved=this.peerType.length!==1||this.peerType[0]!==`channelParticipants`),this.headerSearch=!this.noSearch,this.excludePeerIds??(this.excludePeerIds=new Set),this.exceptSelf&&this.excludePeerIds.add(c.myId),this.children=[],this.middlewareHelper=t.middleware.create(),this.middlewareHelperLoader=this.middlewareHelper.get().create(),this.listMiddlewareHelper=this.middlewareHelper.get().create(),this.noPlaceholder||(this.dialogsPlaceholder=new Z(t.placeholderSizes||{avatarSize:42,avatarMarginRight:18,marginVertical:7,marginLeft:12+(this.design===`square`?48:0),totalHeight:56,gapVertical:t.placeholderElementsGap,statusWidth:0,night:this.night})),this.container.classList.add(`selector`,`selector-`+this.design,`selector-`+this.checkboxSide),this.setMultiSelectMode(this.multiSelect),this.multiSelectWasHidden=this.multiSelect===`hidden`;let n=(this.renderResultsFunc||this.renderResults).bind(this);this.renderResultsFunc=async(e,i)=>{let o=g(this.managers),s=this.middlewareHelperLoader.get();if(this.needSwitchList&&(this.needSwitchList=!1),e=e.filter(e=>{if(this.excludePeerIds.has(e))return!1;if(t.excludeMonoforums){let t=a.getChat(e.toChatId());if(t?._===`channel`&&t?.pFlags?.monoforum)return!1}if(t.excludeBotforums&&a.isBotforum(e))return!1;let n=!this.renderedPeerIds.has(e);return n&&this.renderedPeerIds.add(e),n}),this.filterPeerTypeBy){let t=typeof this.filterPeerTypeBy==`function`;if(e=await j(e,async e=>{if(e.isPeerId()){if(t){let t=await o.appPeersManager.getPeer(e);return this.filterPeerTypeBy(t)}for(let t of this.filterPeerTypeBy)if(await o.appPeersManager[t](e))return!0;return!1}return!0}),!s())return}await n(e,i),s()&&(this.promise||this.mountList(),this.promise||this.processPlaceholderOnResults(),this.chatRightsActions?.some(e=>e.startsWith(`send_`))&&Promise.all(e.map(async e=>{let t=e.toUserId(),{requirement:n,starsAmount:r,canManageDirectMessages:i}=await P({requirement:o.appUsersManager.getRequirementToContact(t),starsAmount:o.appPeersManager.getStarsAmount(e),canManageDirectMessages:e.isAnyChat()&&o.appChatsManager.canManageDirectMessages(e.toChatId())});return{peerId:e,userId:t,requirement:n,requiredStars:r,canManageDirectMessages:i}})).then(e=>{for(let{peerId:t,requirement:n,requiredStars:i,canManageDirectMessages:a}of e){this.starsAmountByPeer.set(t.toPeerId(!1),+i||0);let e=this.getElementByKey(t.toPeerId(!1));if(e){if(n?._===`requirementToContactPremium`){let t=r(`premium_lock`,`selector-premium-lock`);e.append(t),e.classList.add(`is-premium-locked`)}else if(+i&&!a){let t=be(+i,1),n=document.createElement(`span`);n.classList.add(`stars-badge-base`,`dialog-stars-badge`);let a=document.createElement(`span`);a.append(t+``),n.append(r(`star`,`stars-badge-base__icon`),a),e.append(n)}}}this.onStarsAmountUpdate?.()}))},this.heightContainer=document.createElement(`div`),this.heightContainer.classList.add(`selector-height-container`);let i,o,s=ge(()=>{let e=this;return p(me,{get class(){return ne(`is-visible`,!e.sectionCaption&&`selector-list-section-container`)},get name(){return e.sectionNameLangPackKey},get caption(){return e.sectionCaption},contentProps:{ref:e=>i=e},nameRef:e=>o=e})},this.middlewareHelper.get());this.sectionNameLangPackKey&&(i=he(s)),this.sectionCaption||i.classList.add(`selector-list-section-content`),i.append(this.list),this.section={container:s,content:i,title:o},this.heightContainer.append(s);let h=!!this.scrollable;if(this.scrollable||(this.scrollable=new fe),this.scrollable.container.classList.add(`selector-scrollable`),e.a11y&&(this.scrollable.container.tabIndex=0),this.container.append(this.scrollable.container),this.children.push(this.heightContainer),this.noSearch?this.scrollable.attachBorderListeners():(this.selectorSearch=new W({middlewareHelper:this.middlewareHelper,multiSelect:this.multiSelect!==`disabled`,onInput:()=>this.onInput(),onChipClick:e=>{if(this.freezed)return;let t=this.getElementByKey(e);t?T(t):this.remove(e)}}),this.searchSection=this.selectorSearch.section,this.inputSearch=this.selectorSearch.inputSearch,this.input=this.selectorSearch.input,this.children.unshift(this.selectorSearch.gradient,this.selectorSearch.section.container)),ie(this.container,async e=>{let t=D(e.target,`data-peer-id`);if(!t||!t.classList.contains(`row`)&&!t.classList.contains(`btn-primary`)||(ee(e),this.freezed))return;let n=t.dataset.peerId;if(n=n.isPeerId()?n.toPeerId():n,n.isPeerId()&&t.classList.contains(`is-premium-locked`)){M({peerId:n,onlyFirstName:!0}).then(e=>{ve({langPackKey:`OnlyPremiumCanMessage`,langPackArguments:[e,U(()=>{ye(),b.showPremiumPopup()})]})});return}let r=!this.selected.has(n);this.onSelect&&await this.onSelect(n,r,e)===!1||(r?this.add({key:n}):this.remove(n))&&this.toggleElementCheckboxByKey(n,r)}),this.multiSelect===`hidden`){let e,t;A({listenTo:this.container,buttons:[{icon:`select`,text:`SelectChat`,onClick:()=>{this.setMultiSelectMode(`enabled`),T(e)},verify:()=>!this.selected.has(t)},{icon:`close`,text:`Deselect`,onClick:()=>{T(e)},verify:()=>this.selected.has(t)}],findElement:e=>D(e.target,`data-peer-id`),onOpen:(n,r)=>{e=r,t=e.dataset.peerId,t=t.isPeerId()?t.toPeerId():t},listenerSetter:this.listenerSetter,middleware:this.middlewareHelper.get()})}this.scrollable.onScrolledBottom=()=>{this.getMoreResults()},this.appendTo.append(this.container);let _=(e,t,n=this.channelParticipantsUpdateFilter(e))=>{n?this.participants.set(t,e):this.participants.delete(t),n?this.renderResultsFunc([t],!1):this.deletePeerId(t)};this.channelParticipantsUpdateFilter&&this.listenerSetter.add(c)(`chat_participant`,e=>{e.channel_id.toPeerId(!0)===(this.channelParticipantsUpdatePeerId??this.peerId)&&_(e.new_participant,e.user_id.toPeerId(!1))}),this.channelParticipantsUpdateFilter&&a.getPeer(this.peerId)?._===`chat`&&this.listenerSetter.add(c)(`chat_full_update`,async e=>{if(e.toPeerId(!0)!==this.peerId)return;let t=this.middlewareHelperLoader.get(),n=await this.managers.appProfileManager.getChatFull(this.peerId.toChatId());if(!t())return;let r=n.participants,i=new Set;for(let e of r.participants){let t=e.user_id.toPeerId(!1);i.add(t),_(e,t,void 0)}this.participants.forEach((e,t)=>{i.has(t)||_(e,t,!1)})}),t.middleware.onDestroy(()=>{this.destroy()}),t.noInstantLoad||this.loadFirst(),h||this.scrollable.append(...this.children)}loadFirst(){this.loadedFirst||(this.loadedFirst=!0,setTimeout(()=>{let e=this.getMoreResults();this.onFirstRender&&e.then(()=>{this.onFirstRender()})},0))}static convertPeerTypes(e){let t={bots:`isBot`,users:`isRegularUser`,groups:`isAnyGroup`,channels:`isBroadcast`};return e.map(e=>t[e])}setLimit(e,t){this.limit=e,this.limitCallback=t}destroy(){this.middlewareHelper.destroy(),this.emptySearchPlaceholderMiddlewareHelper?.destroy(),this.listenerSetter.removeAll(),this.dialogsPlaceholder?.removeWithoutUnmounting(),this.selectorSearch?.destroy(),this.inputSearch?.remove()}deletePeerId(e){for(let t of[this.list,...this.pendingLists]){let n=t.querySelector(`[data-peer-id="${e}"]`),r=n?.dialogElement;r?r.remove():n?.remove()}this.renderedPeerIds.delete(e),this.promise||this.processPlaceholderOnResults()}_setFolderId(e){this.folderId=(e?0:this.selectedFolderId)??0}clearInput(){this.inputSearch.value=``,this.onInput()}async renderSaved(){!this.exceptSelf&&!this.offsetIndex&&this.folderId===0&&this.peerType.includes(`dialogs`)&&(!this.query||await this.managers.appUsersManager.testSelfSearch(this.query))&&await this.renderResultsFunc([c.myId])}getTempId(e){var t;(t=this.tempIds)[e]??(t[e]=0);let n=++this.tempIds[e];return{tempId:n,middleware:()=>this.tempIds[e]===n}}async getMoreDialogs(){if(this.loadedWhat.dialogs&&this.loadedWhat.archived)return;let e=t.height/56*1.25|0,{middleware:n}=this.getTempId(`dialogs`),r=this.managers.dialogsStorage.getDialogs({query:this.query,offsetIndex:this.offsetIndex,limit:e,filterId:this.folderId,skipMigrated:!0});r.catch(()=>{n()&&(this.loadedWhat[this.loadedWhat.dialogs?`archived`:`dialogs`]=!0)});let i=await r;if(!n())return;let a=i.dialogs;if(a.length){let e=I(a[a.length-1])||0;if(a=a.slice(),this.chatRightsActions&&(a=await j(a,e=>this.filterByRights(e.peerId)),!n())||(await this.renderSaved(),!n()))return;this.offsetIndex=e}if(await this.renderResultsFunc(a.map(e=>e.peerId)),i.isEnd){if(this.loadedWhat.dialogs)this.loadedWhat.archived=!0;else{if(await this.renderSaved(),!n())return;if(this.loadedWhat.dialogs=!0,this.selectedFolderId!==void 0)this.loadedWhat.archived=!0;else return this.offsetIndex=0,this.folderId=1,this.getMoreDialogs()}if(this.canLoadContacts())return this.getMoreContacts()}else if(this.renderedPeerIds.size<e)return this.getMoreDialogs()}async filterByRights(e){let t=a.getPeer(e);if(e.isUser())return this.chatRightsActions[0]!==`send_plain`||L(t);if(this.chatRightsActions.every(e=>F(t,e)))return!0}canLoadContacts(){return!(this.loadedWhat.contacts||!s.has(this.folderId))}async getMoreContacts(){if(!this.canLoadContacts())return;let e=this.peerType.includes(`contacts`);if(!this.cachedContacts){let{middleware:t}=this.getTempId(`contacts`),n=Promise.all([e?this.managers.appUsersManager.getContactsPeerIds(this.query):[],this.query?this.managers.appUsersManager.searchContacts(this.query):void 0]);n.catch(()=>{t()&&(this.loadedWhat.contacts=!0)});let[r,i]=await n;if(!t())return;if(i){let n=e?i.my_results.concat(i.results):i.my_results;if(this.chatRightsActions&&(n=await j(n,e=>this.filterByRights(e)),!t()))return;this.peerType.includes(`dialogs`)||(n=n.filter(e=>e.isUser())),this.cachedContacts=z(r.concat(n))}else this.cachedContacts=r.slice()}let n=t.height/56*1.25|0,r=this.cachedContacts.splice(0,n);await this.renderResultsFunc(r),this.cachedContacts.length||(this.loadedWhat.contacts=!0)}async getMoreChannelParticipants(){if(this.loadedWhat.channelParticipants)return;let e;e=this.channelParticipantsFilter?typeof this.channelParticipantsFilter==`function`?this.channelParticipantsFilter(this.query):this.channelParticipantsFilter:{_:`channelParticipantsSearch`,q:this.query};let{middleware:t}=this.getTempId(`channelParticipants`),n=this.managers.appProfileManager.getParticipants({id:this.peerId.toChatId(),filter:e,limit:50,offset:this.list.childElementCount});n.catch(()=>{t()&&(this.loadedWhat.channelParticipants=!0)});let r=await n;if(!t())return;let{participants:i}=r,a=i.map(e=>{let t=R(e);return this.participants.set(t,e),t});await this.renderResultsFunc(a);let o=r.count??i.length;(this.list.childElementCount>=o||i.length<50)&&(this.loadedWhat.channelParticipants=!0)}async _getMoreCustom(){if(this.loadedWhat.custom)return;let{middleware:e}=this.getTempId(`custom`),t=this.getMoreCustom(this.query,e);t.catch(()=>{e()&&(this.loadedWhat.custom=!0)});let n=await t;if(!e())return;let{result:r,isEnd:i}=n;await this.renderResultsFunc(r),i&&(this.loadedWhat.custom=!0)}_getMoreResults(){if(!this.query&&!this.prependedPeerIds&&this.prependPeerIds?.length)return this.prependedPeerIds=!0,Promise.resolve(this.renderResultsFunc(this.prependPeerIds)).then(()=>this._getMoreResults());if(this.peerType.includes(`dialogs`)&&!this.loadedWhat.archived)return this.getMoreSomething(`dialogs`);if((this.peerType.includes(`contacts`)||this.peerType.includes(`dialogs`))&&!this.loadedWhat.contacts&&this.canLoadContacts())return this.getMoreSomething(`contacts`);if(this.peerType.includes(`channelParticipants`)&&!this.loadedWhat.channelParticipants)return this.getMoreSomething(`channelParticipants`);if(this.peerType.includes(`custom`)&&!this.loadedWhat.custom)return this.getMoreSomething(`custom`)}getMoreResults(){if(this.promise)return this.promise;let e=this._getMoreResults();if(!e)return this.processPlaceholderOnResults(),Promise.resolve();let t=this.middlewareHelperLoader.get(),n=this.promise=e.catch(e=>{console.error(`get more result error`,e)}).then(()=>{if(this.promise===n&&(this.promise=void 0),t()){this.mountList();let e=Object.values(this.loadedWhat).every(e=>e),t=this.list.childElementCount;if(e&&!t)return this.dialogsPlaceholder?.detach(t),this.processPlaceholderOnResults();(t||e)&&(this.dialogsPlaceholder?.detach(t),this.emptySearchPlaceholderHideSetter?.(!0))}return this.checkForTriggers(),this.promise});return n}getRowsMiddleware(){return this.listMiddlewareHelper.get()}mountList(){this.oldList&&(this.oldList.replaceWith(this.list),this.oldList=void 0,this.oldListMiddlewareHelper.destroy(),this.oldListMiddlewareHelper=void 0)}getMoreSomething(e){return{dialogs:this.getMoreDialogs,contacts:this.getMoreContacts,channelParticipants:this.getMoreChannelParticipants,custom:this._getMoreCustom}[e].call(this)}async renderResults(e,t){let n=this.middlewareHelperLoader.get(),r=this.list;if(!this.peerType.includes(`dialogs`)&&this.loadedWhat.contacts&&(e=await j(e,e=>this.managers.appUsersManager.isNonContactUser(e))),!n())return;let i=document.createElement(`div`);this.pendingLists.add(i);let a=document.createComment(``);r[t===!1?`prepend`:`append`](a);let o=this.getRowsMiddleware(),s=new Promise(e=>n.onClean(e)),c=[],l=!1,u=[],d=e.map(async e=>{let r=this.additionalDialogParams?.(e),a=r?.loadPromises||[],l=b.appDialogsManager.addDialogNew({peerId:this.getPeerIdFromKey?.(e)??e,rippleEnabled:this.rippleEnabled,avatarSize:this.avatarSize,meAsSaved:this.meAsSaved,append:t,wrapOptions:{middleware:o},withStories:this.withStories,...r,container:i,loadPromises:a});c.push(l);let d=l.middlewareHelper.get();this.getPeerIdFromKey&&(l.container.dataset.peerId=e);let{dom:f}=l;if(this.design===`square`&&(f.containerEl.classList.add(k),l.media?.classList.add(N)),this.multiSelect!==`disabled`){let t=this.selected.has(e),n=this.checkbox(t,void 0,f.titleSpan);this.design===`square`&&n.classList.add(O),u.push({key:e,input:n.querySelector(`input`)}),this.checkboxSide===`right`?(f.containerEl.classList.add(Ce),f.containerEl.append(n)):f.containerEl.prepend(n)}let p=async()=>{let t;this.getSubtitleForElement&&(t=await this.getSubtitleForElement(e,d)),n()&&d()&&(t||(t=await this.wrapSubtitle(e)),n()&&d()&&(f.lastMessageSpan.append(t),this.processElementAfter&&await this.processElementAfter(e,l)))};return Promise.race([Promise.all([...a,p()]),new Promise(e=>d.onClean(e)),s])});try{if(await Promise.all(d),!n())return;for(let{key:e,input:t}of u)t.checked=this.selected.has(e);a.replaceWith(...i.children),l=!0}finally{a.remove(),this.pendingLists.delete(i),l||c.forEach(e=>e.destroy())}}async wrapSubtitle(e){let t=g(this.managers),n;return n=e.isAnyChat()?await K(e.toChatId()):e===c.myId?u(this.selfPresence):pe(await t.appUsersManager.getUser(e.toUserId())),n}checkbox(e,t=`secondary`,n){let r=new le({round:this.design===`round`,color:t});return e&&(r.input.checked=e),typeof n==`string`?r.input.setAttribute(`aria-label`,n):ae(r.input,n),r.label}add({key:e,title:t,scroll:n=!0,fireOnChange:r=!0,fallbackIcon:i}){if(this.limit&&this.selected.size>=this.limit)return this.limitCallback?.(),!1;let a=!this.selected.has(e);if(this.selected.add(e),a&&this.changes.push({key:e,add:!0}),this.multiSelect!==`enabled`||!this.input)return r&&this.dispatchOnChange(),this.multiSelect!==`disabled`;this.query.trim()&&this.clearInput();let o=this.selectorSearch.addChip({key:e,middleware:this.middlewareHelper.get(),title:t,scroll:n,fallbackIcon:i,primary:!0});return r&&this.dispatchOnChange(),o}remove(e,t=!0){return this.multiSelect===`enabled`&&(this.selected.delete(e)&&this.changes.push({key:e,add:!1}),t&&this.dispatchOnChange(),this.selectorSearch&&this.selectorSearch.removeChip(e),!0)}getSelected(){return[...this.selected]}getElementByKey(e){return this.container.querySelector(`.row[data-peer-id="${e}"]`)}toggleElementCheckboxByKey(e,t){let n=this.findCheckboxes(e),r=t===void 0?void 0:t;n.forEach(e=>e.checked=r??!e.checked)}addBatch(e){e.length&&(e.forEach(e=>{this.add({key:e,scroll:!1,fireOnChange:!1}),this.toggleElementCheckboxByKey(e,!0)}),this.dispatchOnChange())}removeBatch(e,t=!0){e.length&&(e.forEach(e=>{this.remove(e,!1),this.toggleElementCheckboxByKey(e,!1)}),t&&this.dispatchOnChange())}dispatchOnChange(){let e=this.changes;this.changes=[],this.onChange?.(this.selected.size,e),!this.selected.size&&this.multiSelectWasHidden&&this.setMultiSelectMode(`hidden`)}findCheckboxes(e){let t=`[data-peer-id="${e}"] input`;return[this.container].flatMap(e=>[...e.querySelectorAll(t)])}addInitial(e){e?.length&&(this.addBatch(e),this.selectorSearch&&window.requestAnimationFrame(()=>{this.selectorSearch.scrollToInput(de.Static)}))}setMultiSelectMode(e){this.multiSelect=e,this.container.classList.toggle(`selector-multiselect-hidden`,e===`hidden`)}setFolderId(e){let t=e||void 0;this.selectedFolderId!==t&&(this.selectedFolderId=t,this.loadedFirst?(this.query=``,this.onInput()):this._setFolderId(``))}};Q=$,Q.renderEntity=W.renderEntity;export{q as a,Y as i,Z as n,K as o,X as r,$ as t};
//# sourceMappingURL=appSelectPeers-CjRu438A.js.map