Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/im/v2/component/search/dist/ |
Upload File : |
this.BX=this.BX||{};this.BX.Messenger=this.BX.Messenger||{};(function(t,e,s,r,i,n,a,o,c,l,h){"use strict";class d extends s.RecentMenu{getMenuItems(){return[this.getSendMessageItem(),this.getCallItem(),this.getHistoryItem(),this.getOpenProfileItem()]}}const m={name:"CarouselUser",components:{Avatar:o.Avatar},props:{user:{type:Object,required:true}},computed:{name(){return this.user.dialog.name.split(" ")[0]},isExtranet(){return this.user.user.extranet},AvatarSize:()=>h.AvatarSize},created(){this.contextMenuManager=new d(this.$Bitrix)},beforeUnmount(){this.contextMenuManager.destroy()},methods:{onClick(){l.EventEmitter.emit(h.EventType.dialog.open,{dialogId:this.user.dialogId,chat:this.user.dialog,user:this.user.user});BX.MessengerProxy.clearSearchInput()},onRightClick(t){if(t.altKey&&t.shiftKey){return}const e={dialogId:this.user.dialogId};l.EventEmitter.emit(h.EventType.search.openContextMenu,{item:e,event:t})}},template:`\n\t\t<div class="bx-messenger-carousel-item" @click="onClick" @click.right.prevent="onRightClick">\n\t\t\t<Avatar :dialogId="user.dialogId" :size="AvatarSize.L" />\n\t\t\t<div :class="[isExtranet ? 'bx-messenger-carousel-item-extranet' : '', 'bx-messenger-carousel-item-title']">\n\t\t\t\t{{name}}\n\t\t\t</div>\n\t\t</div>\n\t`};const u=5;const p={name:"RecentUsersCarousel",components:{CarouselUser:m},props:{title:{type:String,required:false,default:""}},computed:{users(){const t=[];this.$store.getters["recent/getSortedCollection"].forEach((e=>{const s=this.$store.getters["dialogues/get"](e.dialogId,true);const r=this.$store.getters["users/get"](e.dialogId,true);t.push({...e,dialog:s,user:r})}));const e=t.filter((t=>t.dialog.type==="user"&&!t.user.bot&&t.user.id!==this.currentUserId));return e.slice(0,u)},currentUserId(){return this.$store.state.application.common.userId}},template:`\n\t\t<div v-if="title" class="bx-messenger-recent-users-carousel-title">{{title}}</div>\n\t\t<div class="bx-messenger-recent-users-carousel">\n\t\t\t<CarouselUser v-for="user in users" :key="user.dialogId" :user="user" />\n\t\t</div>\n\t`};const g={name:"SearchResultSection",props:{component:{type:Object,required:true},items:{type:Object,required:true},title:{type:String,required:true},showMoreButton:{type:Boolean,default:true,required:false},minItems:{type:Number,default:10,required:false},maxItems:{type:Number,default:50,required:false}},data:function(){return{expanded:false}},computed:{showMore(){if(!this.showMoreButton){return false}return this.items.size>this.minItems},showMoreButtonText(){return this.expanded?this.$Bitrix.Loc.getMessage("IM_SEARCH_SECTION_TITLE_SHOW_LESS"):this.$Bitrix.Loc.getMessage("IM_SEARCH_SECTION_TITLE_SHOW_MORE")},sectionItems(){const t=[...this.items.values()];if(!this.showMoreButton){return t}return this.expanded?t.slice(0,this.maxItems):t.slice(0,this.minItems)}},methods:{onShowMore(){this.expanded=!this.expanded}},template:`\n\t\t<div class="bx-messenger-search-result-section-wrapper">\n\t\t\t<div class="bx-messenger-search-result-section-title">{{title}}</div>\n\t\t\t<div>\n\t\t\t\t<component :is="component" v-for="item in sectionItems" :key="item.getEntityFullId()" :item="item" />\n\t\t\t</div>\n\t\t\t<div v-if="showMore" class="bx-messenger-search-result-section-show-more" @click.prevent="onShowMore">\n\t\t\t\t{{ showMoreButtonText }}\n\t\t\t</div>\n\t\t</div>\n\t`};const v=Object.freeze({user:"user",bot:"im-bot",chat:"im-chat",chatUser:"im-chat-user",department:"department",network:"imbot-network"});const I={getWordsFromString(t){const e=t.replaceAll("("," ").replaceAll(")"," ").replaceAll("["," ").replaceAll("]"," ").replaceAll("{"," ").replaceAll("}"," ").replaceAll("<"," ").replaceAll(">"," ").replaceAll("-"," ").replaceAll("#"," ").replaceAll('"'," ").replaceAll("'"," ").replace(/\s\s+/g," ");return e.split(" ").filter((t=>t!==""))},getTypeByEntityId(t){switch(t){case v.user:case v.bot:return"user";case v.chat:case v.chatUser:return"chat";case v.department:return"department";case v.network:return"network";default:throw new Error(`Unknown entity id: ${t}`)}},createItemMap(t){const e=new Map;t.forEach((t=>{const s=new y(t);e.set(s.getEntityFullId(),s)}));return e},getFirstItemFromMap(t){const e=t.entries();const s=e.next();const r=s.value;const[,i]=r;return i},convertKeysToLowerCase(t){const e={};Object.keys(t).forEach((s=>{if(c.Type.isObject(t[s])&&!c.Type.isArray(t[s])){e[s.toLowerCase()]=this.convertKeysToLowerCase(t[s])}else{e[s.toLowerCase()]=t[s]}}));return e},prepareRecentItems(t){return t.map((t=>{const[e,s]=t;const r=I.getTypeByEntityId(e);return{cacheId:`${r}|${s}`,date:new Date}}))}};class y{constructor(t){this.entityId=null;this.entityType=null;this.dialogId=null;this.title=null;this.subtitle=null;this.name=null;this.lastName=null;this.secondName=null;this.position=null;this.avatar=null;this.avatarOptions=null;this.customSort=0;this.contextSort=0;this.rawData=null;this.setRawData(t);this.setId(t);this.setDialogId(t);this.setEntityId(t);this.setEntityType(t);this.setTitle(t);this.setSubtitle(t);this.setName(t);this.setLastName(t);this.setSecondName(t);this.setPosition(t);this.setAvatar(t);this.setAvatarOptions(t);this.setContextSort(t)}isFromProviderResponse(t){return c.Type.isString(t.entityId)&&!c.Type.isNil(t.id)}isFromModel(t){return c.Type.isString(t.dialogId)&&c.Type.isObject(t.dialog)}setId(t){if(this.isFromProviderResponse(t)){this.id=t.id}else if(this.isFromModel(t)){this.id=t.dialogId.startsWith("chat")?t.dialogId.slice(4):t.dialogId}}setDialogId(t){if(this.isFromProviderResponse(t)){var e,s,r,i;if(((e=t.customData)==null?void 0:(s=e.imChat)==null?void 0:s.ID)>0){this.dialogId=`chat${t.customData.imChat.ID}`}else if(((r=t.customData)==null?void 0:(i=r.imUser)==null?void 0:i.ID)>0){this.dialogId=t.customData.imUser.ID.toString()}}else if(this.isFromModel(t)){this.dialogId=t.dialogId}}setEntityId(t){if(this.isFromProviderResponse(t)){this.entityId=t.entityId}else if(this.isFromModel(t)){if(!t.user){this.entityId=v.chat}else if(t.user.bot){this.entityId=v.bot}else{this.entityId=v.user}}}setEntityType(t){if(this.isFromProviderResponse(t)){this.entityType=t.entityType}}setTitle(t){if(this.isFromProviderResponse(t)){this.title=t.title}else if(this.isFromModel(t)){this.title=t.dialog.name}}setSubtitle(t){if(this.isFromProviderResponse(t)){this.subtitle=t.subtitle}}setName(t){if(this.isFromProviderResponse(t)){var e;this.name=(e=t.customData)==null?void 0:e.name}else if(this.isFromModel(t)){var s;this.name=(s=t.user)==null?void 0:s.firstName}}setLastName(t){if(this.isFromProviderResponse(t)){var e;this.lastName=(e=t.customData)==null?void 0:e.lastName}else if(this.isFromModel(t)){var s;this.lastName=(s=t.user)==null?void 0:s.lastName}}setSecondName(t){if(this.isFromProviderResponse(t)){var e;this.secondName=(e=t.customData)==null?void 0:e.secondName}}setPosition(t){if(this.isFromProviderResponse(t)){var e;this.position=(e=t.customData)==null?void 0:e.position}else if(this.isFromModel(t)){var s;this.position=(s=t.user)==null?void 0:s.workPosition}}setAvatar(t){if(this.isFromProviderResponse(t)){this.avatar=t.avatar}}setAvatarOptions(t){if(this.isFromProviderResponse(t)){this.avatarOptions=t.avatarOptions}}setContextSort(t){if(this.isFromProviderResponse(t)){this.contextSort=t.contextSort}}setRawData(t){this.rawData=t}getId(){return this.id}getEntityId(){return this.entityId}getEntityType(){return this.entityType}getEntityFullId(){const t=I.getTypeByEntityId(this.entityId);return`${t}|${this.id}`}getTitle(){return this.title}getSubtitle(){return this.subtitle}getName(){return this.name}getLastName(){return this.lastName}getSecondName(){return this.secondName}getPosition(){return this.position}getCustomData(){return this.rawData.customData}getDialogId(){return this.dialogId}getAvatar(){return this.avatar}getAvatarOptions(){return this.avatarOptions}getContextSort(){return this.contextSort?this.contextSort:0}addCustomSort(t){this.customSort+=t}getCustomSort(){return this.customSort}isUser(){if(this.isFromProviderResponse(this.rawData)){var t;return!!((t=this.rawData.customData)!=null&&t.imUser)&&this.rawData.customData.imUser.ID>0}return!!this.rawData.user}isChat(){return!this.isUser()}isExtranet(){if(this.isFromProviderResponse(this.rawData)){var t,e,s,r;return!!((t=this.rawData.customData)!=null&&(e=t.imUser)!=null&&e.EXTRANET)||!!((s=this.rawData.customData)!=null&&(r=s.imChat)!=null&&r.EXTRANET)}else if(this.isFromModel(this.rawData)){var i;return!!((i=this.rawData.user)!=null&&i.extranet)||!!this.rawData.dialog.extranet}}getUserCustomData(){var t;return(t=this.rawData.customData)!=null&&t.imUser?this.rawData.customData.imUser:null}getChatCustomData(){var t;return(t=this.rawData.customData)!=null&&t.imChat?this.rawData.customData.imChat:null}isOpeLinesType(){return this.getEntityType()==="LINES"}getOpenlineEntityId(){var t,e;if(!this.isOpeLinesType()){return""}const s=(t=this.rawData.customData)==null?void 0:(e=t.imChat)==null?void 0:e.ENTITY_ID;return s.toString().split("|")[0]}getAvatarColor(){let t="";if(this.isFromProviderResponse(this.rawData)){if(this.isUser()){var e,s,r;t=(e=this.rawData.customData)==null?void 0:(s=e.imUser)==null?void 0:(r=s.COLOR)==null?void 0:r.toString()}else if(this.isChat()){var i,n,a;t=(i=this.rawData.customData)==null?void 0:(n=i.imChat)==null?void 0:(a=n.COLOR)==null?void 0:a.toString()}}else if(this.isFromModel(this.rawData)){t=this.rawData.dialog.color.toString()}return t}isCrmSession(){if(this.isFromProviderResponse(this.rawData)&&this.isOpeLinesType()){var t,e;const s=(t=this.rawData.customData)==null?void 0:(e=t.imChat)==null?void 0:e.ENTITY_DATA_1.toString().split("|");return s[0]==="Y"}return false}}const f={lines:"lines",network:"network",livechat:"livechat",whatsappbytwilio:"whatsappbytwilio",avito:"avito",viber:"viber",telegrambot:"telegrambot",imessage:"imessage",wechat:"wechat",yandex:"yandex",vkgroup:"vkgroup",ok:"ok",olx:"olx",facebook:"facebook",facebookcomments:"facebookcomments",fbinstagramdirect:"fbinstagramdirect",fbinstagram:"fbinstagram",notifications:"notifications"};const S={name:"Avatar",props:{item:{type:y,required:true},size:{type:String,default:h.AvatarSize.M}},computed:{openlineType(){return this.item.getOpenlineEntityId()},chatAvatarStyle(){return{backgroundImage:`url('${this.item.getAvatar()}')`}},chatTypeIconClasses(){if(f[this.openlineType]){return`bx-im-search-avatar-openline__icon-${this.openlineType}`}return"bx-im-search-avatar-openline__icon-lines"},needCrmBadge(){if(!this.isCrmAvailable){return false}return this.item.isCrmSession()}},created(){this.isCrmAvailable=c.Extension.getSettings("im.v2.component.search").get("isCrmAvailable",false)},template:`\n\t\t<div \n\t\t\t:title="item.getTitle()" \n\t\t\t:class="'bx-im-search-avatar-openline__size-' + size.toLowerCase()" \n\t\t\tclass="bx-im-search-avatar-openline__wrap"\n\t\t>\n\t\t\t<div \n\t\t\t\tv-if="item.getAvatar()" \n\t\t\t\t:style="chatAvatarStyle" \n\t\t\t\tclass="bx-im-search-avatar-openline__content bx-im-search-avatar-openline__image"\n\t\t\t></div>\n\t\t\t<div \n\t\t\t\tv-else \n\t\t\t\t:style="{backgroundColor: this.item.getAvatarColor()}" \n\t\t\t\t:class="chatTypeIconClasses" \n\t\t\t\tclass="bx-im-search-avatar-openline__content bx-im-search-avatar-openline__icon"\n\t\t\t></div>\n\t\t\t<div v-if="needCrmBadge" class="bx-im-search-avatar-openline__crm-badge"></div>\n\t\t</div>\n\t`};const b={name:"SearchResultOpenlineItem",components:{AvatarOpenline:S},props:{item:{type:y,required:true}},computed:{title(){return a.Utils.text.htmlspecialcharsback(this.item.getTitle())}},methods:{onClick(t){l.EventEmitter.emit(h.EventType.dialog.open,{dialogId:this.item.getDialogId(),chat:I.convertKeysToLowerCase(this.item.getChatCustomData())});if(!t.altKey){BX.MessengerProxy.clearSearchInput()}}},template:`\n\t\t<div @click="onClick" class="bx-im-search-item">\n\t\t\t<div class="bx-im-search-avatar-wrap">\n\t\t\t\t<AvatarOpenline :item="item" size="L"></AvatarOpenline>\n\t\t\t</div>\n\t\t\t<div class="bx-im-search-result-item-content bx-im-search-result-item-department-content">\n\t\t\t\t<div v class="bx-im-component-chat-title-wrap">\n\t\t\t\t\t<div class="bx-im-component-chat-name-text" :title="item.getTitle()">{{title}}</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`};const w={name:"SearchResultNetworkItem",props:{item:{type:Object,required:true}},data:function(){return{isLoading:false}},computed:{hasAvatar(){return this.item.getAvatar()!==""},avatarStyle(){if(!this.hasAvatar){return{backgroundColor:this.item.getAvatarOptions().color}}return{backgroundImage:`url('${this.item.getAvatar()}')`}},title(){return a.Utils.text.htmlspecialcharsback(this.item.getTitle())}},methods:{onClick(t){this.isLoading=true;const e=this.item.getId().replace("networkLines","");l.EventEmitter.emitAsync(h.EventType.search.openNetworkItem,e).then((e=>{if(e[0].error){console.error("Error:",e[0].error);this.isLoading=false;return}const s=e[0].id.toString();const r=this.$store.getters["users/get"](s,true);const i=this.$store.getters["dialogues/get"](s,true);l.EventEmitter.emit(h.EventType.dialog.open,{dialogId:s,chat:i,user:r});this.isLoading=false;if(!t.altKey){BX.MessengerProxy.clearSearchInput()}})).catch((t=>{console.error(t);this.isLoading=false}))}},template:`\n\t\t<div @click="onClick" class="bx-im-search-item">\n\t\t\t<div class="bx-im-search-avatar-wrap">\n\t\t\t\t<div :title="item.getTitle()" class="bx-im-component-avatar-wrap bx-im-component-avatar-size-l">\n\t\t\t\t\t<div\n\t\t\t\t\t\tclass="bx-im-component-avatar-content bx-im-component-avatar-image"\n\t\t\t\t\t\t:class="[hasAvatar ? '' : 'bx-im-search-network-icon']"\n\t\t\t\t\t\t:style="avatarStyle"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="bx-im-search-result-item-content">\n\t\t\t\t<div v class="bx-im-component-chat-title-wrap">\n\t\t\t\t\t<div class="bx-im-component-chat-name-left-icon bx-im-component-chat-name-left-icon-network"></div>\n\t\t\t\t\t<div class="bx-im-component-chat-name-text bx-im-search-network-title">\n\t\t\t\t\t\t{{title}}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="bx-im-search-item-content-bottom">\n\t\t\t\t\t<div class="bx-im-search-result-item-text-wrap">\n\t\t\t\t\t\t<div class="bx-im-search-result-item-text">{{ item.getSubtitle() }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if="isLoading" class="bx-search-loader bx-search-loader-small-size"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`};const C={name:"SearchResultItem",components:{Avatar:o.Avatar,ChatTitle:o.ChatTitle},props:{item:{type:Object,required:true},child:{type:Boolean,default:false,required:false}},computed:{dialogId(){return this.item.getDialogId()},user(){return this.$store.getters["users/get"](this.dialogId,true)},dialog(){return this.$store.getters["dialogues/get"](this.dialogId,true)},isChat(){return!this.isUser},isUser(){return this.dialog.type===h.ChatTypes.user},userItemText(){if(!this.isUser){return""}const t=this.$store.getters["users/getLastOnline"](this.dialogId);if(t){return t}return this.$store.getters["users/getPosition"](this.dialogId)},chatItemText(){if(this.isUser){return""}if(this.dialog.type===h.ChatTypes.open){return this.$Bitrix.Loc.getMessage("IM_SEARCH_ITEM_CHAT_TYPE_OPEN")}return this.$Bitrix.Loc.getMessage("IM_SEARCH_ITEM_CHAT_TYPE_GROUP")},searchEntityId(){if(this.isUser){return this.user.bot?"im-bot":"user"}return"im-chat"},searchItemId(){if(this.dialogId.startsWith("chat")){return Number.parseInt(this.dialogId.slice(4),10)}return Number.parseInt(this.dialogId,10)},AvatarSize:()=>h.AvatarSize},methods:{onClick(t){const e={id:this.searchItemId,entityId:this.searchEntityId,dialogId:this.dialogId};l.EventEmitter.emit(h.EventType.search.selectItem,{selectedItem:e,onlyOpen:false,nativeEvent:t})},onRightClick(t){if(t.altKey&&t.shiftKey){return}const e={dialogId:this.dialogId};l.EventEmitter.emit(h.EventType.search.openContextMenu,{item:e,event:t})}},template:`\n\t\t<div @click="onClick" @click.right.prevent="onRightClick" class="bx-im-search-item" :class="[this.child ? 'bx-im-search-sub-item' : '']">\n\t\t\t<div class="bx-im-search-avatar-wrap">\n\t\t\t\t<Avatar :dialogId="dialogId" :size="AvatarSize.L" />\n\t\t\t</div>\n\t\t\t<div v-if="isUser" class="bx-im-search-result-item-content">\n\t\t\t\t<ChatTitle :dialogId="dialogId" />\n\t\t\t\t<div class="bx-im-search-item-content-bottom">\n\t\t\t\t\t<div class="bx-im-search-result-item-text-wrap">\n\t\t\t\t\t\t<div class="bx-im-search-result-item-text">\n\t\t\t\t\t\t\t{{ userItemText }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div v-else class="bx-im-search-result-item-content">\n\t\t\t\t<ChatTitle :dialogId="dialogId" />\n\t\t\t\t<div class="bx-im-search-item-content-bottom">\n\t\t\t\t\t<div class="bx-im-search-result-item-text-wrap">\n\t\t\t\t\t\t<div class="bx-im-search-result-item-text">{{ chatItemText }}</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t`};class x{constructor(t){this.userId=t;this.db=new n.Dexie("bx-im-search-results");this.db.version(2).stores({items:"id, *title, *name, *lastName, *secondName, *position, date",recentItems:"++id, cacheId, date",settings:"&name"}).upgrade((t=>{const e=t.table("items").clear();const s=t.table("recentItems").clear();return n.Dexie.Promise.all([e,s])}));this.db.version(3).stores({items:"id, *title, *name, *lastName, *position, date",recentItems:"++id, cacheId, date",settings:"&name"});this.checkTables();this.onAccessDeniedHandler=this.onAccessDenied.bind(this);l.EventEmitter.subscribe(h.EventType.dialog.errors.accessDenied,this.onAccessDeniedHandler)}checkTables(){this.db.open();this.db.on("ready",(()=>this.db.transaction("rw",this.db.settings,this.db.items,this.db.recentItems,(()=>this.db.settings.where("name").equals("userId").first())).then((t=>{const e=[];if((t==null?void 0:t.value)!==this.userId){const t=this.db.items.clear();const s=this.db.recentItems.clear();e.push(t,s)}return n.Dexie.Promise.all(e)})).then((()=>this.db.settings.put({name:"userId",value:this.userId})))))}destroy(){l.EventEmitter.unsubscribe(h.EventType.dialog.errors.accessDenied,this.onAccessDeniedHandler)}loadRecentFromCache(){const t={};return this.db.transaction("rw",this.db.items,this.db.recentItems,(()=>this.deleteExpiredItems().then((()=>this.db.recentItems.orderBy("id").toArray())))).then((e=>{t.recentItems=e;const s=[];t.recentItems.forEach((t=>{s.push(this.db.items.get({id:t.cacheId}))}));return n.Dexie.Promise.all(s)})).then((e=>{t.items=e.filter((t=>!c.Type.isUndefined(t))).map((t=>t.json));return t}))}save(t){const e=t.items?this.prepareItems(t.items):[];const s=t.recentItems?I.prepareRecentItems(t.recentItems):[];this.db.transaction("rw",this.db.items,this.db.recentItems,(()=>{if(e.length>0){this.db.items.bulkPut(e)}if(s.length>0){this.db.recentItems.clear().then((()=>{this.db.recentItems.bulkPut(s)}))}}))}deleteExpiredItems(){const t=new Date(Date.now()-60*60*1e3*24*7*30);return this.db.items.where("date").below(t).delete().then((()=>this.db.recentItems.where("date").below(t).delete()))}onAccessDenied({data:t}){const e=this.convertDialogIdToCacheItemId(t.dialogId);return this.db.items.where("id").equals(e).delete().then((()=>this.db.recentItems.where("cacheId").equals(e).delete()))}convertDialogIdToCacheItemId(t){if(t.startsWith("chat")){return`chat|${t.slice(4)}`}return`user|${t}`}prepareItems(t){return t.filter((t=>t.entityId!==v.department&&t.entityId!==v.network&&t.entityType!=="LINES")).map((t=>{var e,s,r,i;const n=I.getTypeByEntityId(t.entityId);return{id:`${n}|${t.id}`,name:(e=t.customData)!=null&&e.name?I.getWordsFromString(t.customData.name):[],lastName:(s=t.customData)!=null&&s.lastName?I.getWordsFromString(t.customData.lastName):[],position:(r=t.customData.imUser)!=null&&r.WORK_POSITION?I.getWordsFromString((i=t.customData.imUser)==null?void 0:i.WORK_POSITION):[],title:t.title?I.getWordsFromString(t.title):[],json:t,date:new Date}}))}unshiftItem(t){const[e,s]=t;const r=I.getTypeByEntityId(e);const i=`${r}|${s}`;this.db.transaction("rw",this.db.recentItems,(()=>this.db.recentItems.toArray())).then((t=>{const e=t.findIndex((t=>t.cacheId===i));if(e===0){return}if(e!==-1){const s=t.splice(e,1);s[0].date=new Date;t.unshift(s[0])}else{const e={cacheId:`${i}|${s}`,date:new Date};t.unshift(e)}t.forEach((t=>delete t.id));this.db.recentItems.clear().then((()=>{this.db.recentItems.bulkPut(t)}))}))}search(t){return this.db.transaction("r",this.db.items,function*(){const e=yield this.getQueryResultByWords(t);if(!c.Type.isArrayFilled(e)){return[]}const s=this.intersectArrays(...e);const r=[...new Set(s.flat())];return yield this.db.items.where(":id").anyOf(r).toArray()}.bind(this)).then((t=>t.map((t=>t.json))))}getQueryResultByWords(t){return n.Dexie.Promise.all(t.map((t=>this.db.items.where("name").startsWithIgnoreCase(t).or("lastName").startsWithIgnoreCase(t).or("position").startsWithIgnoreCase(t).or("title").startsWithIgnoreCase(t).distinct().primaryKeys())))}intersectArrays(t,e,...s){if(c.Type.isUndefined(e)){return t}const r=t.filter((t=>e.includes(t)));if(s.length===0){return r}return this.intersectArrays(r,...s)}}const E={get:()=>({dialog:{entities:[{id:"im-bot",options:{searchableBotTypes:["H","B","S","N"],fillDialogWithDefaultValues:false},dynamicLoad:true,dynamicSearch:true},{id:"user",dynamicLoad:true,dynamicSearch:true,filters:[{id:"im.userDataFilter"}]},{id:"im-chat-user",options:{searchableChatTypes:["C","O"],fillDialogWithDefaultValues:false},dynamicLoad:true,dynamicSearch:true}],preselectedItems:[],clearUnavailableItems:false,context:"IM_CHAT_SEARCH",id:"im-search"}}),getNetworkEntity:()=>({id:"imbot-network",dynamicSearch:true,options:{filterExistingLines:true}}),getDepartmentEntity:()=>({id:"department",dynamicLoad:true,dynamicSearch:true,options:{selectMode:"usersAndDepartments",allowSelectRootDepartment:true},filters:[{id:"im.departmentDataFilter"}]}),getChatEntity:()=>({id:"im-chat",options:{searchableChatTypes:["C","O","L"],fillDialogWithDefaultValues:false},dynamicLoad:true,dynamicSearch:true})};class T{constructor(t){this.store=t.Data.get("controller").store}search(t){const e=this.getRecentListItems();const s=[];e.forEach((e=>{if(this.searchByQueryWords(e,t)){s.push(e)}}));return Promise.resolve(I.createItemMap(s))}getRecentListItems(){return this.store.getters["recent/getSortedCollection"].map((t=>{const e=this.store.getters["dialogues/get"](t.dialogId,true);const s=e.type===h.ChatTypes.user;const r={dialogId:t.dialogId,dialog:e};if(s){r.user=this.store.getters["users/get"](t.dialogId,true)}return r}))}searchByQueryWords(t,e){if(t.user){return this.searchByUserFields(t,e)}return this.searchByDialogFields(t,e)}searchByDialogFields(t,e){const s=[];if(t.dialog.name){const e=I.getWordsFromString(t.dialog.name.toLowerCase());s.push(...e)}return this.doesItemMatchQuery(s,e)}searchByUserFields(t,e){const s=[];if(t.user.firstName){const e=I.getWordsFromString(t.user.firstName.toLowerCase());s.push(...e)}if(t.user.lastName){const e=I.getWordsFromString(t.user.lastName.toLowerCase());s.push(...e)}if(t.user.workPosition){const e=I.getWordsFromString(t.user.workPosition.toLowerCase());s.push(...e)}return this.doesItemMatchQuery(s,e)}doesItemMatchQuery(t,e){let s=0;e.forEach((e=>{let r=0;t.forEach((t=>{if(t.startsWith(e)){r++}}));if(r>0){s++}}));return s>=e.length}}const D="imopenlines.network.join";class L{static getInstance(t,e,s){if(!this.instance){this.instance=new this(t,e,s)}return this.instance}constructor(t,e,s){this.store=null;this.cache=null;this.recentList=null;this.store=t.Data.get("controller").store;this.cache=e;this.recentList=s;this.restClient=t.RestClient.get();this.onItemSelectHandler=this.onItemSelect.bind(this);this.onOpenNetworkItemHandler=this.onOpenNetworkItem.bind(this);l.EventEmitter.subscribe(h.EventType.search.selectItem,this.onItemSelectHandler);l.EventEmitter.subscribe(h.EventType.search.openNetworkItem,this.onOpenNetworkItemHandler)}loadRecentSearchFromCache(){return this.cache.loadRecentFromCache().then((t=>{i.Logger.warn("Im.Search: Recent search loaded from cache");return t})).then((t=>{const{items:e,recentItems:s}=t;const r=I.createItemMap(e);return this.updateModels(r).then((()=>this.getItemsFromRecentItems(s,r)))}))}loadRecentSearchFromServer(){return this.loadRecentFromServer().then((t=>{i.Logger.warn("Im.Search: Recent search loaded from server");const e=I.createItemMap(t.items);const s=I.prepareRecentItems(t.recentItems);return this.updateModels(e,true).then((()=>this.getItemsFromRecentItems(s,e)))}))}searchLocal(t){const e=t.trim().toLowerCase();const s=this.searchInCache(e);const r=this.searchInRecentList(e);return Promise.all([s,r]).then((t=>{const s=new Map([...t[1],...t[0]]);return this.getSortedItems(s,e)}))}searchOnServer(t,e){const s=t.trim().toLowerCase();let r=[];return this.searchRequest(s,e).then((t=>{r=I.createItemMap(t);return this.updateModels(r,true)})).then((()=>this.allocateSearchResults(r,s)))}searchOnNetwork(t){const e=t.trim().toLowerCase();return this.searchOnNetworkRequest(e).then((t=>I.createItemMap(t)))}loadDepartmentUsers(t){let e=[];return this.loadDepartmentUsersFromServer(t).then((t=>{e=I.createItemMap(t);return this.updateModels(e,true)})).then((()=>e))}destroy(){this.cache.destroy();l.EventEmitter.unsubscribe(h.EventType.search.selectItem,this.onItemSelectHandler);l.EventEmitter.unsubscribe(h.EventType.search.openNetworkItem,this.onOpenNetworkItemHandler)}searchInCache(t){let e=Promise.resolve([]);if(this.needLayoutChange(t)){const s=this.changeLayout(t);e=this.getItemsFromCacheByQuery(s)}const s=this.getItemsFromCacheByQuery(t);return Promise.all([s,e]).then((t=>new Map([...t[0],...t[1]]))).catch((t=>{console.error("Unknown exception",t);return new Map}))}searchInRecentList(t){let e=Promise.resolve([]);if(this.needLayoutChange(t)){const s=this.changeLayout(t);e=this.getItemsFromRecentListByQuery(s)}const s=this.getItemsFromRecentListByQuery(t);return Promise.all([s,e]).then((t=>new Map([...t[0],...t[1]])))}getItemsFromRecentListByQuery(t){const e=I.getWordsFromString(t);return this.recentList.search(e)}getSearchConfig(){return E.get()}onItemSelect(t){const{selectedItem:e,onlyOpen:s}=t.getData();const r=[e.entityId,e.id];if(!s){this.cache.unshiftItem(r);this.addItemsToRecentSearchResults(r)}}onOpenNetworkItem(t){const e=t.getData();return new Promise(((t,s)=>{this.restClient.callBatch(this.getDataRequestQuery(e),(e=>t(this.handleBatchRequestResult(e))),(t=>s(t)))}))}handleBatchRequestResult(t){if(t[D]&&t[D].error()){return{error:t[D].error().ex.error_description}}if(t[h.RestMethod.imUserGet]&&t[h.RestMethod.imUserGet].error()){return{error:t[h.RestMethod.imUserGet].error().ex.error_description}}const e=t[h.RestMethod.imUserGet].data();this.store.dispatch("users/set",[e]);const s=this.prepareChatForAdditionalUser(e);this.store.dispatch("dialogues/set",[s]);return e}prepareChatForAdditionalUser(t){return{dialogId:t.id,avatar:t.avatar,color:t.color,name:t.name,type:h.ChatTypes.user}}getDataRequestQuery(t){const e={[D]:[D,{code:t}]};e[h.RestMethod.imUserGet]=[h.RestMethod.imUserGet,{id:`$result[${D}]`}];return e}getItemsFromCacheByQuery(t){const e=I.getWordsFromString(t);return this.cache.search(e).then((t=>{const e=I.createItemMap(t);return this.updateModels(e).then((()=>e))}))}getSortedItems(t,e){let s=this.sortItemsBySearchField(t,e);s=this.sortItemsByEntityIdAndContextSort(s);return s}sortItemsBySearchField(t,e){let s=I.getWordsFromString(e);if(this.needLayoutChange(e)){const t=I.getWordsFromString(this.changeLayout(e));s=[...s,...t]}const r=[...new Set(s)];const i={title:1e4,name:1e3,lastName:100,position:1};t.forEach((t=>{r.forEach((e=>{var s,r,n;if(t.getTitle().toLowerCase().startsWith(e)){t.addCustomSort(i.title)}else if((s=t.getName())!=null&&s.toLowerCase().startsWith(e)){t.addCustomSort(i.name)}else if((r=t.getLastName())!=null&&r.toLowerCase().startsWith(e)){t.addCustomSort(i.lastName)}else if((n=t.getPosition())!=null&&n.toLowerCase().startsWith(e)){t.addCustomSort(i.position)}}))}));return new Map([...t.entries()].sort(((t,e)=>{const[,s]=t;const[,r]=e;return r.getCustomSort()-s.getCustomSort()})))}sortItemsByEntityIdAndContextSort(t){const e={user:100,"im-chat":80,"im-chat-user":80,"im-bot":70,department:60,extranet:10};return new Map([...t.entries()].sort(((t,s)=>{const[,r]=t;const[,i]=s;const n=i.isExtranet()?"extranet":i.getEntityId();const a=r.isExtranet()?"extranet":r.getEntityId();if(e[n]<e[a]){return-1}else if(e[n]>e[a]){return 1}else{return i.getContextSort()-r.getContextSort()}})))}loadRecentFromServer(){const t={json:this.getSearchConfig()};const e=E.getChatEntity();e.options.searchableChatTypes=["C","O"];t.json.dialog.entities.push(e);return new Promise(((e,s)=>{c.ajax.runAction("ui.entityselector.load",t).then((t=>{i.Logger.warn(`Im.Search: Recent search request result`,t);this.cache.save(t.data.dialog);e(t.data.dialog)})).catch((t=>s(t)))}))}loadDepartmentUsersFromServer(t){const e={json:{...this.getSearchConfig(),parentItem:t}};const s=E.getDepartmentEntity();e.json.dialog.entities.push(s);return new Promise(((t,s)=>{c.ajax.runAction("ui.entityselector.getChildren",e).then((e=>{i.Logger.warn("Im.Search: load department users result",e);this.cache.save(e.data.dialog);t(e.data.dialog.items)})).catch((t=>s(t)))}))}searchRequest(t,e){const s={json:this.getSearchConfig()};if(e.network){const t=E.getNetworkEntity();s.json.dialog.entities.push(t)}if(e.departments){const t=E.getDepartmentEntity();s.json.dialog.entities.push(t)}const r=E.getChatEntity();s.json.dialog.entities.push(r);s.json.searchQuery={queryWords:I.getWordsFromString(t.trim()),query:t.trim()};return new Promise(((t,e)=>{c.ajax.runAction("ui.entityselector.doSearch",s).then((e=>{i.Logger.warn(`Im.Search: Search request result`,e);this.cache.save(e.data.dialog);t(e.data.dialog.items)})).catch((t=>e(t)))}))}searchOnNetworkRequest(t){const e={json:this.getSearchConfig()};const s=E.getNetworkEntity();e.json.dialog.entities=[s];e.json.searchQuery={queryWords:I.getWordsFromString(t.trim()),query:t.trim()};return new Promise(((t,s)=>{c.ajax.runAction("ui.entityselector.doSearch",e).then((e=>{i.Logger.warn(`Im.Search: Network Search request result`,e);t(e.data.dialog.items)})).catch((t=>s(t)))}))}addItemsToRecentSearchResults(t){const[e,s]=t;const r=[{id:s,entityId:e}];const i={json:{...this.getSearchConfig(),recentItems:r}};const n=E.getChatEntity();i.json.dialog.entities.push(n);c.ajax.runAction("ui.entityselector.saveRecentItems",i)}updateModels(t,e=false){const{users:s,dialogues:r}=this.prepareDataForModels(t);const i=e?"users/set":"users/add";const n=e?"dialogues/set":"dialogues/add";const a=this.store.dispatch(i,s);const o=this.store.dispatch(n,r);return Promise.all([a,o])}prepareDataForModels(t){const e={users:[],dialogues:[]};t.forEach((t=>{if(!t.getCustomData()){return}if(t.isUser()){const s=I.convertKeysToLowerCase(t.getUserCustomData());e.users.push(s);e.dialogues.push({avatar:s.avatar,color:s.color,name:s.name,type:h.ChatTypes.user,dialogId:t.getId()})}if(t.isChat()&&!t.isOpeLinesType()){const s=I.convertKeysToLowerCase(t.getChatCustomData());e.dialogues.push({...s,dialogId:`chat${s.id}`})}}));return e}getItemsFromRecentItems(t,e){const s=new Map;t.forEach((t=>{const r=e.get(t.cacheId);if(r&&!r.isOpeLinesType()){s.set(r.getEntityFullId(),r)}}));return s}allocateSearchResults(t,e){const s=new Map;const r=new Map;const i=new Map;const n=new Map;const a=new Map;t.forEach((t=>{switch(t.getEntityId()){case v.chatUser:{r.set(t.getEntityFullId(),t);break}case v.department:{i.set(t.getEntityFullId(),t);break}case v.network:{a.set(t.getEntityFullId(),t);break}default:{if(t.isOpeLinesType()){n.set(t.getEntityFullId(),t)}else{s.set(t.getEntityFullId(),t)}}}}));return{usersAndChats:this.getSortedItems(s,e),chatUsers:r,departments:i,openLines:n,network:a}}isRussianInterface(){return this.store.state.application.common.languageId==="ru"}changeLayout(t){if(this.isRussianInterface()&&BX.correctText){return BX.correctText(t,{replace_way:"AUTO"})}return t}needLayoutChange(t){const e=this.changeLayout(t);const s=e===t;return this.isRussianInterface()&&!s}}L.instance=null;const R={name:"SearchResultDepartmentItem",components:{SearchResultItem:C},props:{item:{type:Object,required:true}},data:function(){return{expanded:false,isLoading:false,usersInDepartment:[]}},computed:{departmentAvatarStyle(){var t;if((t=this.item.avatarOptions)!=null&&t.color){return{backgroundColor:this.item.avatarOptions.color}}return{backgroundColor:"#df532d"}},title(){return a.Utils.text.htmlspecialcharsback(this.item.title)}},created(){const t=new x(this.getCurrentUserId());const e=new T(this.$Bitrix);this.searchService=L.getInstance(this.$Bitrix,t,e)},methods:{onClick(){if(!this.expanded){this.openDepartment()}else{this.closeDepartment()}},openDepartment(){this.isLoading=true;if(c.Type.isArrayFilled(this.usersInDepartment)){this.isLoading=false;this.expanded=true;return}this.searchService.loadDepartmentUsers(this.item).then((t=>{this.usersInDepartment=[...t.values()].filter((t=>t.isUser()));this.isLoading=false;this.expanded=true}))},closeDepartment(){this.expanded=false},getCurrentUserId(){return this.$store.state.application.common.userId},enterTransition(t){c.Dom.style(t,"height",0);c.Dom.style(t,"opacity",0);requestAnimationFrame((()=>{requestAnimationFrame((()=>{c.Dom.style(t,"opacity",1);c.Dom.style(t,"height",`${t.scrollHeight}px`)}))}))},afterEnterTransition(t){c.Dom.style(t,"height","auto")},leaveTransition(t){c.Dom.style(t,"height",`${t.scrollHeight}px`);requestAnimationFrame((()=>{c.Dom.style(t,"height",0);c.Dom.style(t,"opacity",0)}))}},template:`\n\t\t<div @click="onClick" class="bx-im-search-item">\n\t\t\t<div class="bx-im-search-avatar-wrap">\n\t\t\t\t<div :title="item.title" class="bx-im-component-avatar-wrap bx-im-component-avatar-size-l">\n\t\t\t\t\t<div \n\t\t\t\t\t\tclass="bx-im-component-avatar-content bx-im-component-avatar-image bx-search-item-department-icon"\n\t\t\t\t\t\t:style="departmentAvatarStyle"\n\t\t\t\t\t></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div class="bx-im-search-result-item-content bx-im-search-result-item-department-content">\n\t\t\t\t<div class="bx-im-component-chat-title-wrap">\n\t\t\t\t\t<div class="bx-im-component-chat-name-text">\n\t\t\t\t\t\t{{title}}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class="bx-search-item-department-expand-button">\n\t\t\t\t\t<div v-if="isLoading" class="bx-search-loader bx-search-loader-large-size bx-search-item-department-expand-loader"></div>\n\t\t\t\t\t<div v-else-if="expanded" class="bx-search-item-department-down-arrow"></div>\n\t\t\t\t\t<div v-else class="bx-search-item-department-up-arrow"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<transition\n\t\t\tname="bx-im-search-department-expand"\n\t\t\t@enter="enterTransition"\n\t\t\t@after-enter="afterEnterTransition"\n\t\t\t@leave="leaveTransition"\n\t\t>\n\t\t\t<div v-if="expanded" class="bx-search-department-users-wrapper">\n\t\t\t\t<div class="bx-search-department-users">\n\t\t\t\t\t<SearchResultItem v-for="user in usersInDepartment" :key="user.getEntityFullId()" :item="user" :child="true"/>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</transition>\n\t`};const k={components:{RecentUsersCarousel:p,SearchResultSection:g,LoadingState:o.RecentLoadingState,SearchResultOpenlineItem:b,SearchResultNetworkItem:w,SearchResultDepartmentItem:R,SearchResultItem:C},props:{searchQuery:{type:String,required:true},searchMode:{type:Boolean,required:true}},data:function(){return{isRecentLoading:false,isLocalLoading:false,isServerLoading:false,isNetworkLoading:false,currentServerQueries:0,isNetworkButtonClicked:false,isNetworkAvailable:false,result:{recent:new Map,usersAndChats:new Map,chatUsers:new Map,departments:new Map,openLines:new Map,network:new Map}}},computed:{isEmptyState(){if(this.isServerLoading||this.isLocalLoading||this.isNetworkLoading){return false}if(this.isNetworkAvailable&&!this.isNetworkButtonClicked&&this.isServerSearch){return false}return this.result.usersAndChats.size===0&&this.result.departments.size===0&&this.result.chatUsers.size===0&&this.result.openLines.size===0&&this.result.network.size===0},isLoadingState(){return this.isServerLoading||this.isRecentLoading},isServerSearch(){return this.searchQuery.trim().length>=this.minTokenSize},needToShowNetworkSection(){return!this.isNetworkButtonClicked||this.result.network.size>0},showSearchResult(){return this.searchQuery.trim().length>0},itemComponent:()=>C,itemDepartmentComponent:()=>R,itemNetworkComponent:()=>w,itemOpenlineComponent:()=>b},watch:{searchQuery(t,e){const s=t.trim();const r=e.trim();if(s===r){return}this.startSearch(s)},searchMode(t,e){if(t===false&&e===true){this.isNetworkButtonClicked=false}else if(t===true&&e===false){if(this.result.recent.size>0){return}this.isRecentLoading=true}this.searchService.loadRecentSearchFromServer().then((t=>{this.result.recent=t;this.isRecentLoading=false}))}},created(){this.initSettings();this.contextMenuManager=new d(this.$Bitrix);const t=new x(this.getCurrentUserId());const e=new T(this.$Bitrix);this.searchService=L.getInstance(this.$Bitrix,t,e);this.searchOnServerDelayed=c.Runtime.debounce(this.searchOnServer,1500,this);l.EventEmitter.subscribe(h.EventType.search.openContextMenu,this.onOpenContextMenu);l.EventEmitter.subscribe(h.EventType.dialog.errors.accessDenied,this.onDelete);l.EventEmitter.subscribe(h.EventType.search.selectItem,this.onSelectItem);l.EventEmitter.subscribe(h.EventType.recent.updateSearch,this.onPressEnterKey);this.loadInitialRecentFromCache()},beforeUnmount(){this.searchService.destroy();this.contextMenuManager.destroy();l.EventEmitter.unsubscribe(h.EventType.search.openContextMenu,this.onOpenContextMenu);l.EventEmitter.unsubscribe(h.EventType.dialog.errors.accessDenied,this.onDelete);l.EventEmitter.unsubscribe(h.EventType.search.selectItem,this.onSelectItem);l.EventEmitter.unsubscribe(h.EventType.recent.updateSearch,this.onPressEnterKey)},methods:{loadInitialRecentFromCache(){this.searchService.loadRecentSearchFromCache().then((t=>{this.result.recent=t}))},initSettings(){const t=c.Extension.getSettings("im.v2.component.search");const e=3;this.minTokenSize=t.get("minTokenSize",e);this.isNetworkAvailable=t.get("isNetworkAvailable",false);this.isDepartmentsAvailable=t.get("isDepartmentsAvailable",false)},startSearch(t){if(t.length>0&&t.length<this.minTokenSize){this.isLocalLoading=true;const e=t;this.searchService.searchLocal(t).then((t=>{if(e!==this.searchQuery.trim()){return}this.result.usersAndChats=t;this.isLocalLoading=false}))}else if(t.length>=this.minTokenSize){this.isServerLoading=true;const e=t;this.searchService.searchLocal(t).then((t=>{if(e!==this.searchQuery.trim()){return}this.result.usersAndChats=t})).then((()=>this.searchOnServerDelayed(t)))}else{this.cleanSearchResult()}},cleanSearchResult(){this.result.usersAndChats=new Map;this.result.departments=new Map;this.result.chatUsers=new Map;this.result.network=new Map;this.result.openLines=new Map},searchOnServer(t){this.currentServerQueries++;this.isNetworkLoading=this.isNetworkButtonClicked;const e={network:this.isNetworkAvailable&&this.isNetworkButtonClicked,departments:!BX.MessengerProxy.isCurrentUserExtranet()&&this.isDepartmentsAvailable};const s=t;this.searchService.searchOnServer(t,e).then((t=>{if(s!==this.searchQuery.trim()){this.stopLoader();return}this.result.usersAndChats=this.mergeResults(this.result.usersAndChats,t.usersAndChats);this.result.departments=t.departments;this.result.chatUsers=t.chatUsers;this.result.openLines=t.openLines;this.result.network=t.network})).catch((t=>{console.error(t)})).finally((()=>{this.currentServerQueries--;this.stopLoader()}))},stopLoader(){if(this.currentServerQueries>0){return}this.isNetworkLoading=false;this.isServerLoading=false},searchOnNetwork(t){this.isNetworkLoading=true;const e=t;this.searchService.searchOnNetwork(t).then((t=>{if(e!==this.searchQuery){this.isNetworkLoading=false;return}this.result.network=t;this.isNetworkButtonClicked=true;this.isNetworkLoading=false}))},mergeResults(t,e){const s=new Map(t.entries());e.forEach(((t,e)=>{if(!s.has(e)){s.set(e,t)}}));return s},onOpenContextMenu({data:t}){if(t.event.altKey&&t.event.shiftKey){return}this.contextMenuManager.openMenu(t.item,t.event.currentTarget)},onDelete({data:t}){const{dialogId:e}=t;this.result.recent.delete(e);this.result.usersAndChats.delete(e);this.result.chatUsers.delete(e)},onScroll(){this.contextMenuManager.destroy()},onClickLoadNetworkResult(){this.searchOnNetwork(this.searchQuery)},onSelectItem(t){const{selectedItem:e,nativeEvent:s}=t.getData();l.EventEmitter.emit(h.EventType.dialog.open,{dialogId:e.dialogId,chat:this.$store.getters["dialogues/get"](e.dialogId,true),user:this.$store.getters["users/get"](e.dialogId,true)});if(!s.altKey){BX.MessengerProxy.clearSearchInput()}},onPressEnterKey(t){if(t.data.keyCode!==13){return}const e=this.getFirstItemFromSearchResults();if(!e){return}const s={id:e.getId(),entityId:e.getEntityId(),dialogId:e.getDialogId()};l.EventEmitter.emit(h.EventType.search.selectItem,{selectedItem:s,onlyOpen:e.isOpeLinesType(),nativeEvent:{}})},getFirstItemFromSearchResults(){if(!this.showSearchResult&&this.result.recent.size>0){return I.getFirstItemFromMap(this.result.recent)}if(this.result.usersAndChats.size>0){return I.getFirstItemFromMap(this.result.usersAndChats)}if(this.result.chatUsers.size>0){return I.getFirstItemFromMap(this.result.chatUsers)}if(this.result.openLines.size>0){return I.getFirstItemFromMap(this.result.openLines)}return null},getCurrentUserId(){return this.$store.state.application.common.userId}},template:`\n\t\t<div class="bx-messenger-search" @scroll="onScroll">\n\t\t\t<div>\n\t\t\t\t<template v-if="!showSearchResult">\n\t\t\t\t\t<RecentUsersCarousel />\n\t\t\t\t\t<SearchResultSection\n\t\t\t\t\t\t:component="itemComponent"\n\t\t\t\t\t\t:items="result.recent" \n\t\t\t\t\t\t:title="$Bitrix.Loc.getMessage('IM_SEARCH_SECTION_RECENT')" \n\t\t\t\t\t\t:showMoreButton="false" \n\t\t\t\t\t/>\n\t\t\t\t</template>\n\t\t\t\t<template v-if="showSearchResult">\n\t\t\t\t\t<SearchResultSection \n\t\t\t\t\t\tv-if="result.usersAndChats.size > 0"\n\t\t\t\t\t\t:component="itemComponent"\n\t\t\t\t\t\t:items="result.usersAndChats"\n\t\t\t\t\t\t:title="$Bitrix.Loc.getMessage('IM_SEARCH_SECTION_USERS_AND_CHATS')"\n\t\t\t\t\t\t:min-items:="20"\n\t\t\t\t\t\t:max-items="50"\n\t\t\t\t\t/>\n\t\t\t\t\t<template v-if="!isLoadingState && isServerSearch">\n\t\t\t\t\t\t<SearchResultSection\n\t\t\t\t\t\t\tv-if="result.chatUsers.size > 0"\n\t\t\t\t\t\t\t:component="itemComponent"\n\t\t\t\t\t\t\t:items="result.chatUsers"\n\t\t\t\t\t\t\t:title="$Bitrix.Loc.getMessage('IM_SEARCH_SECTION_CHAT_USERS')"\n\t\t\t\t\t\t\t:min-items:="5"\n\t\t\t\t\t\t\t:max-items="20"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SearchResultSection \n\t\t\t\t\t\t\tv-if="result.departments.size > 0"\n\t\t\t\t\t\t\t:component="itemDepartmentComponent"\n\t\t\t\t\t\t\t:items="result.departments" \n\t\t\t\t\t\t\t:title="$Bitrix.Loc.getMessage('IM_SEARCH_SECTION_DEPARTMENTS')"\n\t\t\t\t\t\t\t:min-items:="5"\n\t\t\t\t\t\t\t:max-items="20"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<SearchResultSection\n\t\t\t\t\t\t\tv-if="result.openLines.size > 0"\n\t\t\t\t\t\t\t:component="itemOpenlineComponent"\n\t\t\t\t\t\t\t:items="result.openLines"\n\t\t\t\t\t\t\t:title="$Bitrix.Loc.getMessage('IM_SEARCH_SECTION_OPENLINES')"\n\t\t\t\t\t\t\t:min-items:="5"\n\t\t\t\t\t\t\t:max-items="20"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<template v-if="isNetworkAvailable">\n\t\t\t\t\t\t\t<SearchResultSection\n\t\t\t\t\t\t\t\tv-if="needToShowNetworkSection"\n\t\t\t\t\t\t\t\t:component="itemNetworkComponent"\n\t\t\t\t\t\t\t\t:items="result.network"\n\t\t\t\t\t\t\t\t:title="$Bitrix.Loc.getMessage('IM_SEARCH_SECTION_NETWORK')"\n\t\t\t\t\t\t\t\t:min-items:="5"\n\t\t\t\t\t\t\t\t:max-items="20"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t<template v-if="!isNetworkButtonClicked">\n\t\t\t\t\t\t\t\t<div \n\t\t\t\t\t\t\t\t\tv-if="!isNetworkLoading"\n\t\t\t\t\t\t\t\t\t@click="onClickLoadNetworkResult"\n\t\t\t\t\t\t\t\t\tclass="bx-im-search-network-button"\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{{$Bitrix.Loc.getMessage('IM_SEARCH_SECTION_NETWORK_BUTTON')}}\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t<div v-else class="bx-search-network-loader-wrapper">\n\t\t\t\t\t\t\t\t\t<div class="bx-search-loader bx-search-loader-large-size"></div>\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</template>\n\t\t\t\t\t<div v-if="isEmptyState" class="bx-im-search-not-found-wrapper">\n\t\t\t\t\t\t<div class="bx-im-search-not-found-icon"></div>\n\t\t\t\t\t\t<div class="bx-im-search-not-found-title">{{ $Bitrix.Loc.getMessage('IM_SEARCH_RESULT_NOT_FOUND') }}</div>\n\t\t\t\t\t\t<div class="bx-im-search-not-found-title">\n\t\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_SEARCH_RESULT_NOT_FOUND_DESCRIPTION') }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<LoadingState v-if="isLoadingState" />\n\t\t\t</div>\n\t\t</div>\n\t`};t.Search=k})(this.BX.Messenger.v2=this.BX.Messenger.v2||{},BX,BX.Messenger.v2.Lib,BX,BX.Messenger.v2.Lib,BX.Dexie3,BX.Messenger.v2.Lib,BX.Messenger.v2,BX,BX.Event,BX.Messenger.v2.Const); //# sourceMappingURL=search.bundle.map.js