403Webshell
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/cvetdv.ru/bitrix/js/im/v2/provider/pull/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/v2/provider/pull/dist/registry.bundle.js.map
{"version":3,"file":"registry.bundle.js","sources":["../src/base/handlers/bot.js","../src/base/handlers/classes/message-delete-manager.js","../src/base/handlers/message.js","../src/base/handlers/chat.js","../src/base/handlers/tariff.js","../src/base/handlers/user.js","../src/base/handlers/desktop.js","../src/base/handlers/settings.js","../src/base/handlers/comments.js","../src/base/handlers/application.js","../src/base/handlers/collab.js","../src/base/base.js","../src/recent/classes/new-message-manager.js","../src/recent/classes/recent-update-manager.js","../src/recent/recent.js","../src/notification.js","../src/sidebar.js","../src/notifier.js","../src/online.js","../src/counter.js","../src/promotion.js","../src/anchor.js"],"sourcesContent":["import { Core } from 'im.v2.application.core';\nimport { UserManager } from 'im.v2.lib.user';\nimport { Logger } from 'im.v2.lib.logger';\n\nimport type { BotAddParams, BotUpdateParams } from '../../types/bot';\n\nexport class BotPullHandler\n{\n\t#store: Store;\n\n\tconstructor()\n\t{\n\t\tthis.#store = Core.getStore();\n\t}\n\n\thandleBotAdd(params: BotAddParams)\n\t{\n\t\tLogger.warn('BotPullHandler: handleBotAdd', params);\n\t\tconst { user } = params;\n\n\t\tvoid (new UserManager()).addUsersToModel(user);\n\t}\n\n\thandleBotUpdate(params: BotUpdateParams)\n\t{\n\t\tconst { user } = params;\n\n\t\tthis.#store.dispatch('users/update', {\n\t\t\tid: user.id,\n\t\t\tfields: user,\n\t\t});\n\t}\n}\n","import { Loc } from 'main.core';\nimport { EventEmitter } from 'main.core.events';\nimport { Store } from 'ui.vue3.vuex';\n\nimport { Core } from 'im.v2.application.core';\nimport { EventType } from 'im.v2.const';\nimport { Analytics } from 'im.v2.lib.analytics';\nimport { InputActionListener } from 'im.v2.lib.input-action';\nimport { Notifier } from 'im.v2.lib.notifier';\n\nimport type {\n\tMessageDeletePreparedParams,\n\tMessageDeleteCompletePreparedParams,\n\tDialogUpdateFieldsParams,\n} from '../../../types/message';\n\nexport class MessageDeleteManager\n{\n\t#store: Store;\n\n\tconstructor()\n\t{\n\t\tthis.#store = Core.getStore();\n\t}\n\n\tdeleteMessage(params: MessageDeletePreparedParams)\n\t{\n\t\tthis.#stopWriting(params.dialogId, params.senderId);\n\n\t\tvoid this.#store.dispatch('messages/update', {\n\t\t\tid: params.id,\n\t\t\tfields: {\n\t\t\t\ttext: '',\n\t\t\t\tisDeleted: true,\n\t\t\t\tfiles: [],\n\t\t\t\tattach: [],\n\t\t\t\treplyId: 0,\n\t\t\t},\n\t\t});\n\t}\n\n\tdeleteMessageComplete(params: MessageDeleteCompletePreparedParams)\n\t{\n\t\tthis.#stopWriting(params.dialogId, params.senderId);\n\n\t\tconst areChannelCommentsOpened = this.#store.getters['messages/comments/areOpenedForChannelPost'](params.id);\n\t\tif (areChannelCommentsOpened)\n\t\t{\n\t\t\tthis.#closeChannelComments(params);\n\t\t}\n\n\t\tvoid this.#store.dispatch('messages/delete', {\n\t\t\tid: params.id,\n\t\t});\n\n\t\tconst dialogUpdateFields = this.#prepareDialogUpdateFields(params);\n\n\t\tvoid this.#store.dispatch('chats/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: dialogUpdateFields,\n\t\t});\n\t}\n\n\t#stopWriting(dialogId: number, userId: number)\n\t{\n\t\tInputActionListener.getInstance().stopUserActionsInChat({ dialogId, userId });\n\t}\n\n\t#closeChannelComments(params: MessageDeleteCompletePreparedParams)\n\t{\n\t\tEventEmitter.emit(EventType.dialog.closeComments);\n\t\tAnalytics.getInstance().messageDelete.onDeletedPostNotification({\n\t\t\tdialogId: params.dialogId,\n\t\t\tmessageId: params.id,\n\t\t});\n\n\t\tNotifier.message.onNotFoundError();\n\t}\n\n\t#prepareDialogUpdateFields(params: MessageDeleteCompletePreparedParams): DialogUpdateFieldsParams\n\t{\n\t\tconst dialogUpdateFields = {\n\t\t\tcounter: params.counter,\n\t\t};\n\n\t\tconst lastMessageWasDeleted = Boolean(params.newLastMessage);\n\t\tif (lastMessageWasDeleted)\n\t\t{\n\t\t\tdialogUpdateFields.lastMessageId = params.newLastMessage.id;\n\t\t\tdialogUpdateFields.lastMessageViews = params.lastMessageViews;\n\n\t\t\tvoid this.#store.dispatch('messages/store', params.newLastMessage);\n\t\t}\n\n\t\treturn dialogUpdateFields;\n\t}\n}\n","import { EventEmitter } from 'main.core.events';\nimport { Store } from 'ui.vue3.vuex';\n\nimport { CopilotManager } from 'im.v2.lib.copilot';\nimport { Core } from 'im.v2.application.core';\nimport { Logger } from 'im.v2.lib.logger';\nimport { UserManager } from 'im.v2.lib.user';\nimport { UuidManager } from 'im.v2.lib.uuid';\nimport { InputActionListener } from 'im.v2.lib.input-action';\nimport { EventType, DialogScrollThreshold, UserRole, ChatType } from 'im.v2.const';\nimport { MessageService } from 'im.v2.provider.service.message';\n\nimport { MessageDeleteManager } from './classes/message-delete-manager';\n\nimport type { ImModelChat, ImModelMessage } from 'im.v2.model';\n\nimport type {\n\tMessageAddParams,\n\tMessageUpdateParams,\n\tMessageDeleteParams,\n\tMessageDeleteCompleteParams,\n\tMultipleMessageDeleteParams,\n\tReadMessageParams,\n\tReadMessageOpponentParams,\n\tPinAddParams,\n\tPinDeleteParams,\n\tAddReactionParams,\n\tDeleteReactionParams,\n\tMessageDeleteCompletePreparedParams,\n\tPrepareDeleteMessageParams,\n} from '../../types/message';\nimport type { PullExtraParams, RawFile, RawUser, RawMessage, RawChat } from '../../types/common';\n\ntype UserId = number;\n\nexport class MessagePullHandler\n{\n\t#store: Store;\n\t#messageViews: {[messageId: string]: Set<UserId>} = {};\n\t#messageDeleteManager: MessageDeleteManager;\n\n\tconstructor()\n\t{\n\t\tthis.#store = Core.getStore();\n\t\tthis.#messageDeleteManager = new MessageDeleteManager();\n\t}\n\n\thandleMessageAdd(params: MessageAddParams)\n\t{\n\t\tLogger.warn('MessagePullHandler: handleMessageAdd', params);\n\t\tthis.#setMessageChat(params);\n\t\tthis.#setUsers(params);\n\t\tthis.#setFiles(params);\n\t\tthis.#setAdditionalEntities(params);\n\t\tthis.#setCommentInfo(params);\n\t\tthis.#setCopilotRole(params);\n\t\tthis.#setMessagesAutoDeleteConfig(params);\n\n\t\tconst messageWithTemplateId = this.#store.getters['messages/isInChatCollection']({\n\t\t\tmessageId: params.message.templateId,\n\t\t});\n\n\t\tconst messageWithRealId = this.#store.getters['messages/isInChatCollection']({\n\t\t\tmessageId: params.message.id,\n\t\t});\n\n\t\t// update message with parsed link info\n\t\tif (messageWithRealId)\n\t\t{\n\t\t\tLogger.warn('New message pull handler: we already have this message', params.message);\n\t\t\tvoid this.#store.dispatch('messages/update', {\n\t\t\t\tid: params.message.id,\n\t\t\t\tfields: { ...params.message, error: false },\n\t\t\t});\n\t\t\tthis.#sendScrollEvent(params.chatId);\n\t\t}\n\t\telse if (!messageWithRealId && messageWithTemplateId)\n\t\t{\n\t\t\tLogger.warn('New message pull handler: we already have the TEMPORARY message', params.message);\n\t\t\tvoid this.#store.dispatch('messages/updateWithId', {\n\t\t\t\tid: params.message.templateId,\n\t\t\t\tfields: { ...params.message, error: false },\n\t\t\t});\n\t\t}\n\t\t// it's an opponent message or our own message from somewhere else\n\t\telse if (!messageWithRealId && !messageWithTemplateId)\n\t\t{\n\t\t\tLogger.warn('New message pull handler: we dont have this message', params.message);\n\t\t\tthis.#handleAddingMessageToModel(params);\n\t\t}\n\n\t\tconst hasLoadingMessage: boolean = this.#store.getters['messages/hasLoadingMessageByMessageId'](\n\t\t\tparams.message.templateId,\n\t\t);\n\t\tif (hasLoadingMessage)\n\t\t{\n\t\t\tvoid this.#store.dispatch('messages/delete', {\n\t\t\t\tid: params.message.templateId,\n\t\t\t});\n\t\t}\n\n\t\tInputActionListener.getInstance().stopUserActionsInChat({\n\t\t\tuserId: params.message.senderId,\n\t\t\tdialogId: params.dialogId,\n\t\t});\n\n\t\tthis.#updateDialog(params);\n\t}\n\n\thandleMessageUpdate(params: MessageUpdateParams)\n\t{\n\t\tLogger.warn('MessagePullHandler: handleMessageUpdate', params);\n\t\tInputActionListener.getInstance().stopUserActionsInChat({\n\t\t\tuserId: params.senderId,\n\t\t\tdialogId: params.dialogId,\n\t\t});\n\t\tthis.#store.dispatch('messages/update', {\n\t\t\tid: params.id,\n\t\t\tfields: {\n\t\t\t\ttext: params.text,\n\t\t\t\tparams: params.params,\n\t\t\t},\n\t\t});\n\t\tthis.#sendScrollEvent(params.chatId);\n\t}\n\n\thandleMessageDeleteV2(params: MultipleMessageDeleteParams)\n\t{\n\t\tLogger.warn('MessageDeletePullHandler: handleMultipleMessageDelete', params);\n\n\t\tconst messages = params.messages;\n\n\t\tmessages.forEach((message) => {\n\t\t\tif (message.completelyDeleted)\n\t\t\t{\n\t\t\t\tconst preparedParams = this.#prepareDeleteMessageParams(params, true, message);\n\t\t\t\tthis.#messageDeleteManager.deleteMessageComplete(preparedParams);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst preparedParams = this.#prepareDeleteMessageParams(params, false, message);\n\t\t\tthis.#messageDeleteManager.deleteMessage(preparedParams);\n\t\t});\n\t}\n\n\thandleMessageDelete(params: MessageDeleteParams)\n\t{\n\t\tLogger.warn('MessageDeletePullHandler: handleMessageDelete', params);\n\t\tconst preparedParams = this.#prepareDeleteMessageParams(params);\n\t\tthis.#messageDeleteManager.deleteMessage(preparedParams);\n\t}\n\n\thandleMessageDeleteComplete(params: MessageDeleteCompleteParams)\n\t{\n\t\tLogger.warn('MessageDeletePullHandler: handleMessageDeleteComplete', params);\n\n\t\tconst preparedParams = this.#prepareDeleteMessageParams(params, true);\n\t\tthis.#messageDeleteManager.deleteMessageComplete(preparedParams);\n\t}\n\n\thandleAddReaction(params: AddReactionParams)\n\t{\n\t\tLogger.warn('MessagePullHandler: handleAddReaction', params);\n\t\tconst {\n\t\t\tactualReactions: { reaction: actualReactionsState, usersShort },\n\t\t\tuserId,\n\t\t\treaction,\n\t\t} = params;\n\t\tif (Core.getUserId() === userId)\n\t\t{\n\t\t\tactualReactionsState.ownReactions = [reaction];\n\t\t}\n\n\t\tconst userManager = new UserManager();\n\t\tuserManager.addUsersToModel(usersShort);\n\n\t\tthis.#store.dispatch('messages/reactions/set', [actualReactionsState]);\n\t}\n\n\thandleDeleteReaction(params: DeleteReactionParams)\n\t{\n\t\tLogger.warn('MessagePullHandler: handleDeleteReaction', params);\n\t\tconst { actualReactions: { reaction: actualReactionsState } } = params;\n\t\tthis.#store.dispatch('messages/reactions/set', [actualReactionsState]);\n\t}\n\n\thandleMessageParamsUpdate(params)\n\t{\n\t\tLogger.warn('MessagePullHandler: handleMessageParamsUpdate', params);\n\n\t\tthis.#store.dispatch('messages/update', {\n\t\t\tid: params.id,\n\t\t\tchatId: params.chatId,\n\t\t\tfields: { params: params.params },\n\t\t});\n\t}\n\n\thandleReadMessage(params: ReadMessageParams, extra: PullExtraParams)\n\t{\n\t\tLogger.warn('MessagePullHandler: handleReadMessage', params);\n\t\tconst uuidManager = UuidManager.getInstance();\n\t\tif (uuidManager.hasActionUuid(extra.action_uuid))\n\t\t{\n\t\t\tLogger.warn('MessagePullHandler: handleReadMessage: we have this uuid, skip');\n\t\t\tuuidManager.removeActionUuid(extra.action_uuid);\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#store.dispatch('messages/readMessages', {\n\t\t\tchatId: params.chatId,\n\t\t\tmessageIds: params.viewedMessages,\n\t\t}).then(() => {\n\t\t\tthis.#store.dispatch('chats/update', {\n\t\t\t\tdialogId: params.dialogId,\n\t\t\t\tfields: {\n\t\t\t\t\tcounter: params.counter,\n\t\t\t\t\tlastId: params.lastId,\n\t\t\t\t},\n\t\t\t});\n\t\t}).catch((error) => {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error('MessagePullHandler: error handling readMessage', error);\n\t\t});\n\t}\n\n\thandleReadMessageOpponent(params: ReadMessageOpponentParams)\n\t{\n\t\tif (params.userId === Core.getUserId())\n\t\t{\n\t\t\treturn;\n\t\t}\n\t\tLogger.warn('MessagePullHandler: handleReadMessageOpponent', params);\n\t\tthis.#updateMessageViewedByOthers(params);\n\t\tthis.#updateChatLastMessageViews(params);\n\t}\n\n\thandlePinAdd(params: PinAddParams)\n\t{\n\t\tLogger.warn('MessagePullHandler: handlePinAdd', params);\n\t\tthis.#setFiles(params);\n\t\tthis.#setUsers(params);\n\t\tthis.#store.dispatch('messages/store', params.additionalMessages);\n\t\tthis.#store.dispatch('messages/pin/add', {\n\t\t\tchatId: params.pin.chatId,\n\t\t\tmessageId: params.pin.messageId,\n\t\t});\n\t\tif (Core.getUserId() !== params.pin.authorId)\n\t\t{\n\t\t\t// this.#sendScrollEvent(params.link.chatId);\n\t\t}\n\t}\n\n\thandlePinDelete(params: PinDeleteParams)\n\t{\n\t\tLogger.warn('MessagePullHandler: handlePinDelete', params);\n\t\tthis.#store.dispatch('messages/pin/delete', {\n\t\t\tchatId: params.chatId,\n\t\t\tmessageId: params.messageId,\n\t\t});\n\t}\n\n\t// helpers\n\t#setMessageChat(params: MessageAddParams)\n\t{\n\t\tconst chat = params.chat?.[params.chatId];\n\t\tif (!chat)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst chatToAdd = { ...params.chat[params.chatId], dialogId: params.dialogId };\n\t\tconst dialogExists = Boolean(this.#getDialog(params.dialogId));\n\t\tconst messageWithoutNotification = !params.notify || params.message?.params?.NOTIFY === 'N';\n\t\tif (!dialogExists && !messageWithoutNotification && !chatToAdd.role)\n\t\t{\n\t\t\tchatToAdd.role = UserRole.member;\n\t\t}\n\t\tthis.#store.dispatch('chats/set', chatToAdd);\n\t}\n\n\t#setUsers(params: {users: {[userId: string]: RawUser} | []})\n\t{\n\t\tif (!params.users)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst userManager = new UserManager();\n\t\tuserManager.setUsersToModel(Object.values(params.users));\n\t}\n\n\t#setFiles(params: {files: {[fileId: string]: RawFile} | [], message?: RawMessage})\n\t{\n\t\tif (!params.files)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst files = Object.values(params.files);\n\t\tfiles.forEach((file: RawFile) => {\n\t\t\tvoid this.#store.dispatch('files/set', file);\n\t\t});\n\t}\n\n\t#setAdditionalEntities(params: MessageAddParams): void\n\t{\n\t\tif (!params.message.additionalEntities)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst {\n\t\t\tadditionalMessages,\n\t\t\tmessages,\n\t\t\tfiles,\n\t\t\tusers,\n\t\t} = params.message.additionalEntities;\n\t\tconst newMessages = [...messages, ...additionalMessages];\n\t\tthis.#store.dispatch('messages/store', newMessages);\n\t\tthis.#store.dispatch('files/set', files);\n\t\tthis.#store.dispatch('users/set', users);\n\t}\n\n\t#setCommentInfo(params: MessageAddParams): void\n\t{\n\t\tconst chat: RawChat = params.chat?.[params.chatId];\n\t\tif (!chat || chat.type !== ChatType.comment)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#store.dispatch('messages/comments/set', {\n\t\t\tmessageId: chat.parent_message_id,\n\t\t\tchatId: params.chatId,\n\t\t\tmessageCount: chat.message_count,\n\t\t});\n\t\tthis.#store.dispatch('messages/comments/setLastUser', {\n\t\t\tmessageId: chat.parent_message_id,\n\t\t\tnewUserId: params.message.senderId,\n\t\t});\n\t}\n\n\t#handleAddingMessageToModel(params: MessageAddParams)\n\t{\n\t\tconst dialog = this.#getDialog(params.dialogId, true);\n\t\tif (dialog.hasNextPage)\n\t\t{\n\t\t\tthis.#store.dispatch('messages/store', params.message);\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst chatIsOpened = this.#store.getters['application/isChatOpen'](params.dialogId);\n\t\tconst unreadMessages: ImModelMessage[] = this.#store.getters['messages/getChatUnreadMessages'](params.chatId);\n\t\tconst RELOAD_LIMIT = MessageService.getMessageRequestLimit() * 5;\n\t\tif (dialog.inited && !chatIsOpened && unreadMessages.length > RELOAD_LIMIT)\n\t\t{\n\t\t\tvoid this.#store.dispatch('messages/store', params.message);\n\t\t\tconst messageService = new MessageService({ chatId: params.chatId });\n\t\t\tmessageService.reloadMessageList();\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#addMessageToModel(params.message);\n\t\tthis.#sendScrollEvent(params.chatId);\n\t}\n\n\t#addMessageToModel(message)\n\t{\n\t\tconst newMessage = { ...message };\n\t\tif (message.senderId === Core.getUserId())\n\t\t{\n\t\t\tnewMessage.unread = false;\n\t\t}\n\t\telse\n\t\t{\n\t\t\tnewMessage.unread = true;\n\t\t\tnewMessage.viewed = false;\n\t\t}\n\t\tthis.#store.dispatch('messages/setChatCollection', { messages: [newMessage] });\n\t}\n\n\t#updateDialog(params)\n\t{\n\t\tconst dialog = this.#getDialog(params.dialogId, true);\n\n\t\tconst dialogFieldsToUpdate = {};\n\t\tif (params.message.id > dialog.lastMessageId)\n\t\t{\n\t\t\tdialogFieldsToUpdate.lastMessageId = params.message.id;\n\t\t}\n\n\t\tif (params.message.senderId === Core.getUserId() && params.message.id > dialog.lastReadId)\n\t\t{\n\t\t\tdialogFieldsToUpdate.lastId = params.message.id;\n\t\t}\n\n\t\tdialogFieldsToUpdate.counter = params.counter;\n\n\t\tthis.#store.dispatch('chats/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: dialogFieldsToUpdate,\n\t\t});\n\t\tthis.#store.dispatch('chats/clearLastMessageViews', {\n\t\t\tdialogId: params.dialogId,\n\t\t});\n\t}\n\n\t#updateMessageViewedByOthers(params: ReadMessageOpponentParams)\n\t{\n\t\tthis.#store.dispatch('messages/setViewedByOthers', { ids: params.viewedMessages });\n\t}\n\n\t#updateChatLastMessageViews(params: ReadMessageOpponentParams)\n\t{\n\t\tconst dialog = this.#getDialog(params.dialogId);\n\t\tif (!dialog)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst isLastMessage = params.viewedMessages.includes(dialog.lastMessageId);\n\t\tif (!isLastMessage)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.#checkMessageViewsRegistry(params.userId, dialog.lastMessageId))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst hasFirstViewer = Boolean(dialog.lastMessageViews.firstViewer);\n\t\tif (hasFirstViewer)\n\t\t{\n\t\t\tthis.#store.dispatch('chats/incrementLastMessageViews', {\n\t\t\t\tdialogId: params.dialogId,\n\t\t\t});\n\t\t\tthis.#updateMessageViewsRegistry(params.userId, dialog.lastMessageId);\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#store.dispatch('chats/setLastMessageViews', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: {\n\t\t\t\tuserId: params.userId,\n\t\t\t\tuserName: params.userName,\n\t\t\t\tdate: params.date,\n\t\t\t\tmessageId: dialog.lastMessageId,\n\t\t\t},\n\t\t});\n\n\t\tthis.#updateMessageViewsRegistry(params.userId, dialog.lastMessageId);\n\t}\n\n\t#checkMessageViewsRegistry(userId: number, messageId: number): boolean\n\t{\n\t\treturn Boolean(this.#messageViews[messageId]?.has(userId));\n\t}\n\n\t#updateMessageViewsRegistry(userId: number, messageId: number): void\n\t{\n\t\tif (!this.#messageViews[messageId])\n\t\t{\n\t\t\tthis.#messageViews[messageId] = new Set();\n\t\t}\n\n\t\tthis.#messageViews[messageId].add(userId);\n\t}\n\n\t#sendScrollEvent(chatId: number)\n\t{\n\t\tEventEmitter.emit(EventType.dialog.scrollToBottom, { chatId, threshold: DialogScrollThreshold.nearTheBottom });\n\t}\n\n\t#getDialog(dialogId: string, temporary: boolean = false): ?ImModelChat\n\t{\n\t\treturn this.#store.getters['chats/get'](dialogId, temporary);\n\t}\n\n\t#setCopilotRole(params)\n\t{\n\t\tif (!params.copilot)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst copilotManager = new CopilotManager();\n\t\tvoid copilotManager.handleMessageAdd(params.copilot);\n\t}\n\n\t#setMessagesAutoDeleteConfig(params: MessageAddParams)\n\t{\n\t\tconst { messagesAutoDeleteConfigs } = params;\n\t\tvoid this.#store.dispatch('chats/autoDelete/set', messagesAutoDeleteConfigs);\n\t}\n\n\t#prepareDeleteMessageParams(\n\t\tparams: PrepareDeleteMessageParams,\n\t\tisComplete = false,\n\t\tmessage = null,\n\t): MessageDeleteCompletePreparedParams\n\t{\n\t\tconst baseParams = {\n\t\t\tid: message ? message.id : params.id,\n\t\t\tsenderId: message ? message.senderId : params.senderId,\n\t\t\tdialogId: params.dialogId,\n\t\t};\n\n\t\tif (isComplete)\n\t\t{\n\t\t\treturn {\n\t\t\t\t...baseParams,\n\t\t\t\tnewLastMessage: params.newLastMessage,\n\t\t\t\tlastMessageViews: params.lastMessageViews,\n\t\t\t\tcounter: params.counter,\n\t\t\t};\n\t\t}\n\n\t\treturn baseParams;\n\t}\n}\n","import { Store } from 'ui.vue3.vuex';\n\nimport { LayoutManager } from 'im.v2.lib.layout';\nimport { Messenger } from 'im.public';\nimport { ChatType, UserRole } from 'im.v2.const';\nimport { Core } from 'im.v2.application.core';\nimport { UserManager } from 'im.v2.lib.user';\nimport { CopilotManager } from 'im.v2.lib.copilot';\nimport { CallManager } from 'im.v2.lib.call';\nimport { ChannelManager } from 'im.v2.lib.channel';\nimport { InputActionListener } from 'im.v2.lib.input-action';\nimport { Logger } from 'im.v2.lib.logger';\nimport { getChatRoleForUser } from 'im.v2.lib.role-manager';\nimport { Analytics } from 'im.v2.lib.analytics';\nimport { Notifier } from 'im.v2.lib.notifier';\n\nimport type {\n\tChatOwnerParams,\n\tChatManagersParams,\n\tChatUserAddParams,\n\tChatUserLeaveParams,\n\tInputActionNotifyParams,\n\tChatUnreadParams,\n\tChatMuteNotifyParams,\n\tChatRenameParams,\n\tChatAvatarParams,\n\tChatConvertParams,\n\tChatDeleteParams,\n\tMessagesAutoDeleteDelayParams,\n} from '../../types/chat';\nimport type { RawUser, RawChat } from '../../types/common';\nimport type { ImModelChat } from 'im.v2.model';\n\nexport class ChatPullHandler\n{\n\t#store: Store;\n\n\tconstructor()\n\t{\n\t\tthis.#store = Core.getStore();\n\t}\n\n\thandleChatOwner(params: ChatOwnerParams)\n\t{\n\t\tLogger.warn('ChatPullHandler: handleChatOwner', params);\n\t\tthis.#store.dispatch('chats/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: {\n\t\t\t\townerId: params.userId,\n\t\t\t},\n\t\t});\n\t}\n\n\thandleChatManagers(params: ChatManagersParams)\n\t{\n\t\tLogger.warn('ChatPullHandler: handleChatManagers', params);\n\t\tthis.#store.dispatch('chats/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: {\n\t\t\t\tmanagerList: params.list,\n\t\t\t},\n\t\t});\n\n\t\tconst chat: ImModelChat = this.#store.getters['chats/get'](params.dialogId);\n\t\tif (!chat)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst userInManagerList = params.list.includes(Core.getUserId());\n\t\tif (chat.role === UserRole.member && userInManagerList)\n\t\t{\n\t\t\tthis.#store.dispatch('chats/update', {\n\t\t\t\tdialogId: params.dialogId,\n\t\t\t\tfields: {\n\t\t\t\t\trole: UserRole.manager,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\n\t\tif (chat.role === UserRole.manager && !userInManagerList)\n\t\t{\n\t\t\tthis.#store.dispatch('chats/update', {\n\t\t\t\tdialogId: params.dialogId,\n\t\t\t\tfields: {\n\t\t\t\t\trole: UserRole.member,\n\t\t\t\t},\n\t\t\t});\n\t\t}\n\t}\n\n\thandleChatUserAdd(params: ChatUserAddParams)\n\t{\n\t\tLogger.warn('ChatPullHandler: handleChatUserAdd', params);\n\t\tconst currentUserId = Core.getUserId();\n\t\tif (params.newUsers.includes(currentUserId))\n\t\t{\n\t\t\tthis.#store.dispatch('chats/update', {\n\t\t\t\tdialogId: params.dialogId,\n\t\t\t\tfields: { role: UserRole.member },\n\t\t\t});\n\t\t}\n\t\tthis.#updateChatUsers(params);\n\t}\n\n\thandleChatUserLeave(params: ChatUserLeaveParams)\n\t{\n\t\tLogger.warn('ChatPullHandler: handleChatUserLeave', params);\n\t\tconst currentUserIsKicked = params.userId === Core.getUserId();\n\n\t\tif (currentUserIsKicked)\n\t\t{\n\t\t\tthis.#store.dispatch('chats/update', {\n\t\t\t\tdialogId: params.dialogId,\n\t\t\t\tfields: { inited: false },\n\t\t\t});\n\t\t\tthis.#store.dispatch('messages/clearChatCollection', { chatId: params.chatId });\n\t\t}\n\n\t\tconst isChannel = ChannelManager.isChannel(params.dialogId);\n\t\tif (isChannel)\n\t\t{\n\t\t\tvoid this.#store.dispatch('counters/deleteForChannel', {\n\t\t\t\tchannelChatId: params.chatId,\n\t\t\t});\n\t\t}\n\n\t\tconst chatIsOpened = this.#store.getters['application/isChatOpen'](params.dialogId);\n\t\tif (currentUserIsKicked && chatIsOpened)\n\t\t{\n\t\t\tMessenger.openChat();\n\t\t}\n\n\t\tconst chatHasCall = CallManager.getInstance().getCurrentCallDialogId() === params.dialogId;\n\t\tif (currentUserIsKicked && chatHasCall)\n\t\t{\n\t\t\tCallManager.getInstance().leaveCurrentCall();\n\t\t}\n\n\t\tif (currentUserIsKicked)\n\t\t{\n\t\t\tCallManager.getInstance().deleteRecentCall(params.dialogId);\n\t\t}\n\n\t\tthis.#updateChatUsers(params);\n\t}\n\n\thandleInputActionNotify(params: InputActionNotifyParams)\n\t{\n\t\tLogger.warn('ChatPullHandler: handleInputActionNotify', params);\n\t\tInputActionListener.getInstance().startAction(params);\n\t\tthis.#store.dispatch('users/update', {\n\t\t\tid: params.userId,\n\t\t\tfields: { lastActivityDate: new Date() },\n\t\t});\n\t}\n\n\thandleChatUnread(params: ChatUnreadParams)\n\t{\n\t\tLogger.warn('ChatPullHandler: handleChatUnread', params);\n\t\tlet markedId = 0;\n\t\tif (params.active === true)\n\t\t{\n\t\t\tmarkedId = params.markedId;\n\t\t}\n\t\tthis.#store.dispatch('chats/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: { markedId },\n\t\t});\n\t}\n\n\thandleChatMuteNotify(params: ChatMuteNotifyParams)\n\t{\n\t\tif (params.muted)\n\t\t{\n\t\t\tthis.#store.dispatch('chats/mute', {\n\t\t\t\tdialogId: params.dialogId,\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#store.dispatch('chats/unmute', {\n\t\t\tdialogId: params.dialogId,\n\t\t});\n\t}\n\n\thandleChatRename(params: ChatRenameParams)\n\t{\n\t\tconst dialog = this.#store.getters['chats/getByChatId'](params.chatId);\n\t\tif (!dialog)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#store.dispatch('chats/update', {\n\t\t\tdialogId: dialog.dialogId,\n\t\t\tfields: {\n\t\t\t\tname: params.name,\n\t\t\t},\n\t\t});\n\t}\n\n\thandleChatAvatar(params: ChatAvatarParams)\n\t{\n\t\tconst dialog = this.#store.getters['chats/getByChatId'](params.chatId);\n\t\tif (!dialog)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#store.dispatch('chats/update', {\n\t\t\tdialogId: dialog.dialogId,\n\t\t\tfields: {\n\t\t\t\tavatar: params.avatar,\n\t\t\t},\n\t\t});\n\t}\n\n\thandleReadAllChats()\n\t{\n\t\tLogger.warn('ChatPullHandler: handleReadAllChats');\n\t\tthis.#store.dispatch('chats/clearCounters');\n\t\tthis.#store.dispatch('recent/clearUnread');\n\t}\n\n\thandleChatConvert(params: ChatConvertParams)\n\t{\n\t\tLogger.warn('ChatPullHandler: handleChatConvert', params);\n\t\tconst { dialogId, oldType, newType, newPermissions, newTypeParams } = params;\n\t\tconst fields = {\n\t\t\ttype: newType,\n\t\t\tpermissions: newPermissions,\n\t\t};\n\n\t\tif ([newType, oldType].includes(ChatType.collab))\n\t\t{\n\t\t\tfields.diskFolderId = 0;\n\t\t}\n\n\t\tthis.#store.dispatch('chats/update', {\n\t\t\tdialogId,\n\t\t\tfields,\n\t\t});\n\n\t\tconst dialog = this.#store.getters['chats/get'](dialogId);\n\t\tif (newType === ChatType.collab && dialog?.chatId > 0)\n\t\t{\n\t\t\tthis.#store.dispatch('chats/collabs/set', {\n\t\t\t\tchatId: dialog.chatId,\n\t\t\t\tcollabInfo: newTypeParams.collabInfo,\n\t\t\t});\n\t\t}\n\t}\n\n\thandleChatCopilotRoleUpdate(params)\n\t{\n\t\tif (!params.copilotRole)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst copilotManager = new CopilotManager();\n\t\tvoid copilotManager.handleRoleUpdate(params.copilotRole);\n\t}\n\n\thandleChatUpdate(params: {chat: RawChat})\n\t{\n\t\tvoid this.#store.dispatch('chats/update', {\n\t\t\tdialogId: params.chat.dialogId,\n\t\t\tfields: {\n\t\t\t\trole: getChatRoleForUser(params.chat),\n\t\t\t\t...params.chat,\n\t\t\t},\n\t\t});\n\t}\n\n\thandleChatFieldsUpdate(params: Partial<RawChat> & {dialogId: string, chatId: number})\n\t{\n\t\tvoid this.#store.dispatch('chats/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: {\n\t\t\t\t...params,\n\t\t\t},\n\t\t});\n\t}\n\n\thandleChatDelete(params: ChatDeleteParams)\n\t{\n\t\tLogger.warn('ChatPullHandler: handleChatDelete', params);\n\n\t\tconst currentUserId = Core.getUserId();\n\t\tif (params.userId === currentUserId)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.#store.dispatch('chats/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: { inited: false },\n\t\t});\n\t\tvoid this.#store.dispatch('recent/delete', { id: params.dialogId });\n\n\t\tconst isCommentChat = params.type === ChatType.comment;\n\t\tif (isCommentChat)\n\t\t{\n\t\t\tvoid this.#store.dispatch('counters/deleteForChannel', {\n\t\t\t\tchannelChatId: params.parentChatId,\n\t\t\t\tcommentChatId: params.chatId,\n\t\t\t});\n\t\t}\n\n\t\tconst isChannel = ChannelManager.isChannel(params.dialogId);\n\t\tif (isChannel)\n\t\t{\n\t\t\tvoid this.#store.dispatch('counters/deleteForChannel', {\n\t\t\t\tchannelChatId: params.chatId,\n\t\t\t});\n\t\t}\n\n\t\tvoid this.#store.dispatch('messages/clearChatCollection', { chatId: params.chatId });\n\n\t\tconst chatIsOpened = this.#store.getters['application/isChatOpen'](params.dialogId);\n\t\tif (chatIsOpened)\n\t\t{\n\t\t\tAnalytics.getInstance().chatDelete.onChatDeletedNotification(params.dialogId);\n\t\t\tNotifier.chat.onNotFoundError();\n\t\t\tvoid LayoutManager.getInstance().clearCurrentLayoutEntityId();\n\t\t\tvoid LayoutManager.getInstance().deleteLastOpenedElementById(params.dialogId);\n\t\t}\n\n\t\tconst chatHasCall = CallManager.getInstance().getCurrentCallDialogId() === params.dialogId;\n\t\tif (chatHasCall)\n\t\t{\n\t\t\tCallManager.getInstance().leaveCurrentCall();\n\t\t}\n\t}\n\n\thandleMessagesAutoDeleteDelayChanged(params: MessagesAutoDeleteDelayParams)\n\t{\n\t\tLogger.warn('ChatPullHandler: handleMessagesAutoDeleteDelayChanged', params);\n\n\t\tconst { chatId, delay } = params;\n\n\t\tvoid this.#store.dispatch('chats/autoDelete/set', {\n\t\t\tchatId,\n\t\t\tdelay,\n\t\t});\n\t}\n\n\t#updateChatUsers(params: {\n\t\tusers?: {[userId: string]: RawUser},\n\t\tdialogId: string,\n\t\tuserCount: number,\n\t\tchatExtranet: boolean,\n\t\tcontainsCollaber: boolean,\n\t})\n\t{\n\t\tif (params.users)\n\t\t{\n\t\t\tconst userManager = new UserManager();\n\t\t\tuserManager.setUsersToModel(Object.values(params.users));\n\t\t}\n\n\t\tthis.#store.dispatch('chats/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: {\n\t\t\t\tuserCounter: params.userCount,\n\t\t\t\textranet: params.chatExtranet,\n\t\t\t\tcontainsCollaber: params.containsCollaber,\n\t\t\t},\n\t\t});\n\t}\n}\n","import { Core } from 'im.v2.application.core';\nimport { Logger } from 'im.v2.lib.logger';\n\nimport { ChangeTariffParams } from '../../types/tariff';\n\nexport class TariffPullHandler\n{\n\thandleChangeTariff(params: ChangeTariffParams)\n\t{\n\t\tLogger.warn('TariffPullHandler: handleChangeTariff', params);\n\t\tconst { tariffRestrictions } = params;\n\t\tif (!tariffRestrictions)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (tariffRestrictions.fullChatHistory?.isAvailable === true)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid Core.getStore().dispatch('application/tariffRestrictions/set', tariffRestrictions);\n\t}\n}\n","import { Store } from 'ui.vue3.vuex';\n\nimport { Core } from 'im.v2.application.core';\nimport { UserManager } from 'im.v2.lib.user';\n\nimport type { UserInviteParams } from '../../types/user';\nimport type { UserShowInRecentParams } from '../../types/recent';\n\nexport class UserPullHandler\n{\n\t#store: Store;\n\n\tconstructor()\n\t{\n\t\tthis.#store = Core.getStore();\n\t}\n\n\thandleUserInvite(params: UserInviteParams)\n\t{\n\t\tif (params.invited)\n\t\t{\n\t\t\tconst userManager = new UserManager();\n\t\t\tuserManager.setUsersToModel([params.user]);\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#store.dispatch('users/update', {\n\t\t\tid: params.userId,\n\t\t\tfields: params.user,\n\t\t});\n\t}\n\n\thandleUserShowInRecent(params: UserShowInRecentParams)\n\t{\n\t\tconst usersToStore = params.items.map((item) => item.user);\n\n\t\tconst userManager = new UserManager();\n\t\tuserManager.setUsersToModel(usersToStore);\n\t}\n}\n","import { Logger } from 'im.v2.lib.logger';\nimport { DesktopManager } from 'im.v2.lib.desktop';\nimport { CounterManager } from 'im.v2.lib.counter';\n\nimport type { DesktopOnlineParams } from '../../types/desktop';\n\nexport class DesktopPullHandler\n{\n\thandleDesktopOnline(params: DesktopOnlineParams)\n\t{\n\t\tLogger.warn('DesktopPullHandler: handleDesktopOnline', params);\n\t\tconst desktopManager = DesktopManager.getInstance();\n\t\tdesktopManager.setDesktopActive(true);\n\t\tdesktopManager.setDesktopVersion(params.version);\n\n\t\tCounterManager.getInstance().removeBrowserTitleCounter();\n\t}\n\n\thandleDesktopOffline()\n\t{\n\t\tLogger.warn('DesktopPullHandler: handleDesktopOffline');\n\t\tDesktopManager.getInstance().setDesktopActive(false);\n\t\tDesktopManager.getInstance().setDesktopVersion(0);\n\t}\n}\n","import { Core } from 'im.v2.application.core';\nimport { Logger } from 'im.v2.lib.logger';\n\nimport { SettingsUpdateParams } from '../../types/settings';\n\nexport class SettingsPullHandler\n{\n\thandleSettingsUpdate(params: SettingsUpdateParams)\n\t{\n\t\tLogger.warn('SettingsPullHandler: handleSettingsUpdate', params);\n\t\tObject.entries(params).forEach(([optionName, optionValue]) => {\n\t\t\tCore.getStore().dispatch('application/settings/set', {\n\t\t\t\t[optionName]: optionValue,\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Core } from 'im.v2.application.core';\nimport { Logger } from 'im.v2.lib.logger';\n\nimport { CommentSubscribeParams, ReadAllChannelCommentsParams } from '../../types/comments';\n\nexport class CommentsPullHandler\n{\n\thandleCommentSubscribe(params: CommentSubscribeParams)\n\t{\n\t\tconst { messageId, subscribe } = params;\n\t\tLogger.warn('CommentsPullHandler: handleCommentSubscribe', params);\n\t\tif (subscribe)\n\t\t{\n\t\t\tCore.getStore().dispatch('messages/comments/subscribe', messageId);\n\n\t\t\treturn;\n\t\t}\n\n\t\tCore.getStore().dispatch('messages/comments/unsubscribe', messageId);\n\t}\n\n\thandleReadAllChannelComments(params: ReadAllChannelCommentsParams)\n\t{\n\t\tCore.getStore().dispatch('counters/readAllChannelComments', params.chatId);\n\t}\n}\n","import { Messenger } from 'im.public';\nimport { DesktopManager } from 'im.v2.lib.desktop';\nimport { MessengerSlider } from 'im.v2.lib.slider';\nimport { Logger } from 'im.v2.lib.logger';\nimport type { ApplicationOpenChatParams } from '../../types/application';\n\nexport class ApplicationPullHandler\n{\n\thandleApplicationOpenChat(params: ApplicationOpenChatParams): void\n\t{\n\t\tLogger.warn('ApplicationPullHandler: handleOpenChat', params);\n\n\t\tconst hasFocus = document.hasFocus();\n\t\tif (!hasFocus)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (DesktopManager.isDesktop())\n\t\t{\n\t\t\tif (!DesktopManager.isChatWindow())\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tvoid Messenger.openChat(params.dialogId);\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (!MessengerSlider.getInstance().isFocused())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid Messenger.openChat(params.dialogId);\n\t}\n}\n","import { Core } from 'im.v2.application.core';\nimport { Logger } from 'im.v2.lib.logger';\n\nimport { UpdateCollabEntityCounterParams, UpdateCollabGuestCountParams } from '../../types/collab';\n\nexport class CollabPullHandler\n{\n\thandleUpdateCollabEntityCounter(params: UpdateCollabEntityCounterParams)\n\t{\n\t\tLogger.warn('CollabPullHandler: handleUpdateCollabEntityCounter', params);\n\t\tconst { chatId, counter, entity } = params;\n\t\tvoid Core.getStore().dispatch('chats/collabs/setCounter', { chatId, entity, counter });\n\t}\n\n\thandleUpdateCollabGuestCount(params: UpdateCollabGuestCountParams)\n\t{\n\t\tLogger.warn('CollabPullHandler: handleUpdateCollabGuestCount', params);\n\t\tconst { chatId, guestCount } = params;\n\t\tvoid Core.getStore().dispatch('chats/collabs/setGuestCount', { chatId, guestCount });\n\t}\n}\n","import { BotPullHandler } from './handlers/bot';\nimport { MessagePullHandler } from './handlers/message';\nimport { ChatPullHandler } from './handlers/chat';\nimport { TariffPullHandler } from './handlers/tariff';\nimport { UserPullHandler } from './handlers/user';\nimport { DesktopPullHandler } from './handlers/desktop';\nimport { SettingsPullHandler } from './handlers/settings';\nimport { CommentsPullHandler } from './handlers/comments';\nimport { ApplicationPullHandler } from './handlers/application';\nimport { CollabPullHandler } from './handlers/collab';\n\nexport class BasePullHandler\n{\n\t#messageHandler: MessagePullHandler;\n\t#chatHandler: ChatPullHandler;\n\t#userHandler: UserPullHandler;\n\t#desktopHandler: DesktopPullHandler;\n\t#settingsHandler: SettingsPullHandler;\n\t#commentsHandler: CommentsPullHandler;\n\t#tariffPullHandler: TariffPullHandler;\n\t#applicationPullHandler: ApplicationPullHandler;\n\t#collabPullHandler: CollabPullHandler;\n\t#botPullHandler: BotPullHandler;\n\n\tconstructor()\n\t{\n\t\tthis.#messageHandler = new MessagePullHandler();\n\t\tthis.#chatHandler = new ChatPullHandler();\n\t\tthis.#userHandler = new UserPullHandler();\n\t\tthis.#desktopHandler = new DesktopPullHandler();\n\t\tthis.#settingsHandler = new SettingsPullHandler();\n\t\tthis.#commentsHandler = new CommentsPullHandler();\n\t\tthis.#tariffPullHandler = new TariffPullHandler();\n\t\tthis.#applicationPullHandler = new ApplicationPullHandler();\n\t\tthis.#collabPullHandler = new CollabPullHandler();\n\t\tthis.#botPullHandler = new BotPullHandler();\n\t}\n\n\tgetModuleId(): string\n\t{\n\t\treturn 'im';\n\t}\n\n\t// region 'message'\n\thandleMessage(params)\n\t{\n\t\tthis.#messageHandler.handleMessageAdd(params);\n\t}\n\n\thandleMessageChat(params)\n\t{\n\t\tthis.#messageHandler.handleMessageAdd(params);\n\t}\n\n\thandleMessageUpdate(params)\n\t{\n\t\tthis.#messageHandler.handleMessageUpdate(params);\n\t}\n\n\thandleMessageDeleteV2(params)\n\t{\n\t\tthis.#messageHandler.handleMessageDeleteV2(params);\n\t}\n\n\thandleMessageDelete(params)\n\t{\n\t\tthis.#messageHandler.handleMessageDelete(params);\n\t}\n\n\thandleMessageDeleteComplete(params)\n\t{\n\t\tthis.#messageHandler.handleMessageDeleteComplete(params);\n\t}\n\n\thandleAddReaction(params)\n\t{\n\t\tthis.#messageHandler.handleAddReaction(params);\n\t}\n\n\thandleDeleteReaction(params)\n\t{\n\t\tthis.#messageHandler.handleDeleteReaction(params);\n\t}\n\n\thandleMessageParamsUpdate(params)\n\t{\n\t\tthis.#messageHandler.handleMessageParamsUpdate(params);\n\t}\n\n\thandleReadMessage(params, extra)\n\t{\n\t\tthis.#messageHandler.handleReadMessage(params, extra);\n\t}\n\n\thandleReadMessageChat(params, extra)\n\t{\n\t\tthis.#messageHandler.handleReadMessage(params, extra);\n\t}\n\n\thandleReadMessageOpponent(params)\n\t{\n\t\tthis.#messageHandler.handleReadMessageOpponent(params);\n\t}\n\n\thandleReadMessageChatOpponent(params)\n\t{\n\t\tthis.#messageHandler.handleReadMessageOpponent(params);\n\t}\n\n\thandlePinAdd(params)\n\t{\n\t\tthis.#messageHandler.handlePinAdd(params);\n\t}\n\n\thandlePinDelete(params)\n\t{\n\t\tthis.#messageHandler.handlePinDelete(params);\n\t}\n\t// endregion 'message'\n\n\t// region 'chat'\n\thandleChatOwner(params)\n\t{\n\t\tthis.#chatHandler.handleChatOwner(params);\n\t}\n\n\thandleChatManagers(params)\n\t{\n\t\tthis.#chatHandler.handleChatManagers(params);\n\t}\n\n\thandleChatUserAdd(params)\n\t{\n\t\tthis.#chatHandler.handleChatUserAdd(params);\n\t}\n\n\thandleChatUserLeave(params)\n\t{\n\t\tthis.#chatHandler.handleChatUserLeave(params);\n\t}\n\n\thandleInputActionNotify(params)\n\t{\n\t\tthis.#chatHandler.handleInputActionNotify(params);\n\t}\n\n\thandleChatUnread(params)\n\t{\n\t\tthis.#chatHandler.handleChatUnread(params);\n\t}\n\n\thandleReadAllChats()\n\t{\n\t\tthis.#chatHandler.handleReadAllChats();\n\t}\n\n\thandleChatMuteNotify(params)\n\t{\n\t\tthis.#chatHandler.handleChatMuteNotify(params);\n\t}\n\n\thandleChatRename(params)\n\t{\n\t\tthis.#chatHandler.handleChatRename(params);\n\t}\n\n\thandleChatAvatar(params)\n\t{\n\t\tthis.#chatHandler.handleChatAvatar(params);\n\t}\n\n\thandleChatUpdate(params)\n\t{\n\t\tthis.#chatHandler.handleChatUpdate(params);\n\t}\n\n\thandleChatFieldsUpdate(params)\n\t{\n\t\tthis.#chatHandler.handleChatFieldsUpdate(params);\n\t}\n\n\thandleChatDelete(params)\n\t{\n\t\tthis.#chatHandler.handleChatDelete(params);\n\t}\n\n\thandleChatConvert(params)\n\t{\n\t\tthis.#chatHandler.handleChatConvert(params);\n\t}\n\n\thandleChatCopilotRoleUpdate(params)\n\t{\n\t\tthis.#chatHandler.handleChatCopilotRoleUpdate(params);\n\t}\n\n\thandleMessagesAutoDeleteDelayChanged(params)\n\t{\n\t\tthis.#chatHandler.handleMessagesAutoDeleteDelayChanged(params);\n\t}\n\t// endregion 'chat'\n\n\t// region 'user'\n\thandleUserInvite(params)\n\t{\n\t\tthis.#userHandler.handleUserInvite(params);\n\t}\n\n\thandleUserShowInRecent(params)\n\t{\n\t\tthis.#userHandler.handleUserShowInRecent(params);\n\t}\n\t// endregion 'user'\n\n\t// region 'desktop'\n\thandleDesktopOnline(params)\n\t{\n\t\tthis.#desktopHandler.handleDesktopOnline(params);\n\t}\n\n\thandleDesktopOffline()\n\t{\n\t\tthis.#desktopHandler.handleDesktopOffline();\n\t}\n\t// endregion 'desktop'\n\n\t// region 'settings'\n\thandleSettingsUpdate(params)\n\t{\n\t\tthis.#settingsHandler.handleSettingsUpdate(params);\n\t}\n\t// endregion 'settings'\n\n\t// region 'comments'\n\thandleCommentSubscribe(params)\n\t{\n\t\tthis.#commentsHandler.handleCommentSubscribe(params);\n\t}\n\n\thandleReadAllChannelComments(params)\n\t{\n\t\tthis.#commentsHandler.handleReadAllChannelComments(params);\n\t}\n\t// endregion 'comments'\n\n\t// region 'tariff'\n\thandleChangeTariff(params)\n\t{\n\t\tthis.#tariffPullHandler.handleChangeTariff(params);\n\t}\n\t// endregion 'tariff'\n\n\t// region 'collab'\n\thandleUpdateCollabEntityCounter(params)\n\t{\n\t\tthis.#collabPullHandler.handleUpdateCollabEntityCounter(params);\n\t}\n\n\thandleUpdateCollabGuestCount(params)\n\t{\n\t\tthis.#collabPullHandler.handleUpdateCollabGuestCount(params);\n\t}\n\t// endregion 'collab'\n\n\t// region 'application'\n\thandleApplicationOpenChat(params)\n\t{\n\t\tthis.#applicationPullHandler.handleApplicationOpenChat(params);\n\t}\n\t// endregion 'application'\n\n\t// region 'bot'\n\thandleBotAdd(params)\n\t{\n\t\tthis.#botPullHandler.handleBotAdd(params);\n\t}\n\n\thandleBotUpdate(params)\n\t{\n\t\tthis.#botPullHandler.handleBotUpdate(params);\n\t}\n\t// endregion 'application'\n}\n","import { Core } from 'im.v2.application.core';\nimport { ChatType, RecentType } from 'im.v2.const';\nimport { ChannelManager } from 'im.v2.lib.channel';\n\nimport type { PullExtraParams, RawChat } from '../../types/common';\nimport type { MessageAddParams } from '../../types/message';\n\nconst ActionNameByRecentType = {\n\t[RecentType.default]: 'recent/setRecent',\n\t[RecentType.copilot]: 'recent/setCopilot',\n\t[RecentType.openChannel]: 'recent/setChannel',\n\t[RecentType.collab]: 'recent/setCollab',\n};\n\nexport class NewMessageManager\n{\n\t#params: MessageAddParams;\n\t#extra: PullExtraParams;\n\n\tconstructor(params: MessageAddParams, extra: PullExtraParams = {})\n\t{\n\t\tthis.#params = params;\n\t\tthis.#extra = extra;\n\t}\n\n\tgetChatId(): number\n\t{\n\t\treturn this.#params.chatId;\n\t}\n\n\tgetParentChatId(): number\n\t{\n\t\treturn this.getChat()?.parent_chat_id || 0;\n\t}\n\n\tgetChat(): ?RawChat\n\t{\n\t\tconst chatId = this.getChatId();\n\n\t\treturn this.#params.chat?.[chatId];\n\t}\n\n\tgetChatType(): string\n\t{\n\t\tconst chat = this.getChat();\n\n\t\treturn chat?.type ?? '';\n\t}\n\n\tgetRecentTypes(): $Values<typeof RecentType>[]\n\t{\n\t\treturn this.#params.recentConfig.sections;\n\t}\n\n\tisLinesChat(): boolean\n\t{\n\t\treturn Boolean(this.#params.lines);\n\t}\n\n\tisCommentChat(): boolean\n\t{\n\t\treturn this.getChatType() === ChatType.comment;\n\t}\n\n\tisChannelChat(): boolean\n\t{\n\t\treturn ChannelManager.channelTypes.has(this.getChatType());\n\t}\n\n\tisUserInChat(): boolean\n\t{\n\t\tconst chatUsers = this.#params.userInChat[this.getChatId()];\n\t\tif (!chatUsers || this.isChannelListEvent())\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\treturn chatUsers.includes(Core.getUserId());\n\t}\n\n\tisChannelListEvent(): boolean\n\t{\n\t\treturn this.isChannelChat() && this.#extra.is_shared_event;\n\t}\n\n\tneedToSkipMessageEvent(): boolean\n\t{\n\t\treturn this.isLinesChat() || this.isCommentChat() || !this.isUserInChat();\n\t}\n\n\tgetAddActions(): string[]\n\t{\n\t\tconst recentTypes = this.getRecentTypes();\n\n\t\treturn recentTypes.map((recentType) => {\n\t\t\treturn ActionNameByRecentType[recentType];\n\t\t});\n\t}\n}\n","import { Core } from 'im.v2.application.core';\nimport { UserManager } from 'im.v2.lib.user';\n\nimport type { RecentUpdateParams } from '../../types/recent';\n\nexport class RecentUpdateManager\n{\n\t#params: RecentUpdateParams;\n\n\tconstructor(params: RecentUpdateParams)\n\t{\n\t\tthis.#params = params;\n\t}\n\n\tsetLastMessageInfo(): void\n\t{\n\t\tthis.#setMessageChat();\n\t\tthis.#setUsers();\n\t\tthis.#setFiles();\n\t\tthis.#setMessage();\n\t}\n\n\tgetDialogId(): string\n\t{\n\t\treturn this.#params.chat.dialogId;\n\t}\n\n\tgetLastMessageId(): number\n\t{\n\t\tconst [lastMessage] = this.#params.messages;\n\n\t\treturn lastMessage.id;\n\t}\n\n\t#setUsers(): void\n\t{\n\t\tconst userManager = new UserManager();\n\t\tuserManager.setUsersToModel(this.#params.users);\n\t}\n\n\t#setFiles(): void\n\t{\n\t\tCore.getStore().dispatch('files/set', this.#params.files);\n\t}\n\n\t#setMessageChat(): void\n\t{\n\t\tconst chat = { ...this.#params.chat, counter: this.#params.counter, dialogId: this.getDialogId() };\n\t\tCore.getStore().dispatch('chats/set', chat);\n\t}\n\n\t#setMessage(): void\n\t{\n\t\tconst [lastChannelPost] = this.#params.messages;\n\t\tCore.getStore().dispatch('messages/store', lastChannelPost);\n\t}\n}\n","import { Core } from 'im.v2.application.core';\nimport { Logger } from 'im.v2.lib.logger';\nimport { Utils } from 'im.v2.lib.utils';\nimport { ImModelMessage } from 'im.v2.model';\n\nimport { NewMessageManager } from './classes/new-message-manager';\nimport { RecentUpdateManager } from './classes/recent-update-manager';\n\nimport type { PullExtraParams, RawMessage } from '../types/common';\nimport type {\n\tMessageAddParams,\n\tAddReactionParams,\n\tMessageDeleteCompleteParams,\n\tMultipleMessageDeleteParams,\n} from '../types/message';\nimport type { ChatUnreadParams } from '../types/chat';\nimport type { UserInviteParams } from '../types/user';\nimport type { RecentUpdateParams, UserShowInRecentParams } from '../types/recent';\nimport type { ImModelRecentItem } from 'im.v2.model';\n\n// noinspection JSUnusedGlobalSymbols\nexport class RecentPullHandler\n{\n\tgetModuleId(): string\n\t{\n\t\treturn 'im';\n\t}\n\n\thandleMessage(params, extra)\n\t{\n\t\tthis.handleMessageAdd(params, extra);\n\t}\n\n\thandleMessageChat(params, extra)\n\t{\n\t\tthis.handleMessageAdd(params, extra);\n\t}\n\n\thandleMessageAdd(params: MessageAddParams, extra: PullExtraParams)\n\t{\n\t\tconst manager = new NewMessageManager(params, extra);\n\t\tif (manager.needToSkipMessageEvent(params))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tLogger.warn('RecentPullHandler: handleMessageAdd', params);\n\t\tconst newRecentItem = {\n\t\t\tid: params.dialogId,\n\t\t\tchatId: params.chatId,\n\t\t\tmessageId: params.message.id,\n\t\t};\n\n\t\tconst recentItem: ?ImModelRecentItem = Core.getStore().getters['recent/get'](params.dialogId);\n\t\tif (recentItem)\n\t\t{\n\t\t\tnewRecentItem.isFakeElement = false;\n\t\t\tnewRecentItem.isBirthdayPlaceholder = false;\n\t\t\tnewRecentItem.liked = false;\n\t\t}\n\n\t\tconst addActions = manager.getAddActions();\n\t\taddActions.forEach((actionName) => {\n\t\t\tCore.getStore().dispatch(actionName, newRecentItem);\n\t\t});\n\t}\n\n\thandleMessageDeleteV2(params: MultipleMessageDeleteParams)\n\t{\n\t\tthis.#deleteLastMessage(params.dialogId, params.newLastMessage);\n\t}\n\n\thandleMessageDeleteComplete(params: MessageDeleteCompleteParams)\n\t{\n\t\tthis.#deleteLastMessage(params.dialogId, params.newLastMessage);\n\t}\n\n\thandleChatUnread(params: ChatUnreadParams)\n\t{\n\t\tLogger.warn('RecentPullHandler: handleChatUnread', params);\n\t\tCore.getStore().dispatch('recent/unread', {\n\t\t\tid: params.dialogId,\n\t\t\taction: params.active,\n\t\t});\n\t}\n\n\thandleAddReaction(params: AddReactionParams)\n\t{\n\t\tLogger.warn('RecentPullHandler: handleAddReaction', params);\n\t\tconst recentItem: ?ImModelRecentItem = Core.getStore().getters['recent/get'](params.dialogId);\n\t\tif (!recentItem)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst chatIsOpened = Core.getStore().getters['application/isChatOpen'](params.dialogId);\n\t\tif (chatIsOpened)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst message: ?ImModelMessage = Core.getStore().getters['recent/getMessage'](params.dialogId);\n\t\tconst isOwnLike = Core.getUserId() === params.userId;\n\t\tconst isOwnLastMessage = Core.getUserId() === message.authorId;\n\t\tif (isOwnLike || !isOwnLastMessage)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tCore.getStore().dispatch('recent/like', {\n\t\t\tid: params.dialogId,\n\t\t\tmessageId: params.actualReactions.reaction.messageId,\n\t\t\tliked: true,\n\t\t});\n\t}\n\n\thandleChatPin(params)\n\t{\n\t\tLogger.warn('RecentPullHandler: handleChatPin', params);\n\t\tconst recentItem: ?ImModelRecentItem = Core.getStore().getters['recent/get'](params.dialogId);\n\t\tif (!recentItem)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tCore.getStore().dispatch('recent/pin', {\n\t\t\tid: params.dialogId,\n\t\t\taction: params.active,\n\t\t});\n\t}\n\n\thandleChatHide(params)\n\t{\n\t\tLogger.warn('RecentPullHandler: handleChatHide', params);\n\t\tconst recentItem: ?ImModelRecentItem = Core.getStore().getters['recent/get'](params.dialogId);\n\t\tif (!recentItem)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tCore.getStore().dispatch('recent/delete', {\n\t\t\tid: params.dialogId,\n\t\t});\n\t}\n\n\thandleChatUserLeave(params)\n\t{\n\t\tLogger.warn('RecentPullHandler: handleChatUserLeave', params);\n\t\tconst recentItem: ?ImModelRecentItem = Core.getStore().getters['recent/get'](params.dialogId);\n\t\tif (!recentItem || params.userId !== Core.getUserId())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tCore.getStore().dispatch('recent/delete', {\n\t\t\tid: params.dialogId,\n\t\t});\n\t}\n\n\thandleUserInvite(params: UserInviteParams)\n\t{\n\t\tLogger.warn('RecentPullHandler: handleUserInvite', params);\n\n\t\tconst messageId = Utils.text.getUuidV4();\n\t\tCore.getStore().dispatch('messages/store', {\n\t\t\tid: messageId,\n\t\t\tdate: params.date,\n\t\t});\n\n\t\tCore.getStore().dispatch('recent/setRecent', {\n\t\t\tid: params.user.id,\n\t\t\tinvited: params.invited ?? false,\n\t\t\tisFakeElement: true,\n\t\t\tmessageId,\n\t\t});\n\t}\n\n\thandleUserShowInRecent(params: UserShowInRecentParams)\n\t{\n\t\tLogger.warn('RecentPullHandler: handleUserShowInRecent', params);\n\t\tconst { items } = params;\n\n\t\titems.forEach((item) => {\n\t\t\tconst messageId = Utils.text.getUuidV4();\n\t\t\tCore.getStore().dispatch('messages/store', {\n\t\t\t\tid: messageId,\n\t\t\t\tdate: item.date,\n\t\t\t});\n\n\t\t\tCore.getStore().dispatch('recent/setRecent', {\n\t\t\t\tid: item.user.id,\n\t\t\t\tmessageId,\n\t\t\t});\n\t\t});\n\t}\n\n\thandleRecentUpdate(params: RecentUpdateParams)\n\t{\n\t\tLogger.warn('RecentPullHandler: handleRecentUpdate', params);\n\t\tconst manager = new RecentUpdateManager(params);\n\t\tmanager.setLastMessageInfo();\n\n\t\tconst newRecentItem = {\n\t\t\tid: manager.getDialogId(),\n\t\t\tmessageId: manager.getLastMessageId(),\n\t\t\tlastActivityDate: params.lastActivityDate,\n\t\t};\n\n\t\tCore.getStore().dispatch('recent/setRecent', newRecentItem);\n\t}\n\n\t#deleteLastMessage(dialogId: number, newLastMessage: RawMessage) {\n\t\tconst lastMessageWasDeleted = Boolean(newLastMessage);\n\n\t\tif (lastMessageWasDeleted)\n\t\t{\n\t\t\tthis.#updateRecentForMessageDelete(dialogId, newLastMessage.id);\n\t\t}\n\t}\n\n\t#updateRecentForMessageDelete(dialogId: string, newLastMessageId: number): void\n\t{\n\t\tif (!newLastMessageId)\n\t\t{\n\t\t\tCore.getStore().dispatch('recent/delete', { id: dialogId });\n\n\t\t\treturn;\n\t\t}\n\n\t\tCore.getStore().dispatch('recent/update', {\n\t\t\tid: dialogId,\n\t\t\tfields: { messageId: newLastMessageId },\n\t\t});\n\t}\n}\n","import {Runtime} from 'main.core';\n\nimport {Core} from 'im.v2.application.core';\nimport {UserManager} from 'im.v2.lib.user';\n\nimport type {NotifyAddParams} from './types/notification';\n\nexport class NotificationPullHandler\n{\n\tconstructor()\n\t{\n\t\tthis.store = Core.getStore();\n\t\tthis.userManager = new UserManager();\n\n\t\tthis.updateCounterDebounced = Runtime.debounce(this.updateCounter, 1500, this);\n\t}\n\n\tgetModuleId(): string\n\t{\n\t\treturn 'im';\n\t}\n\n\tgetSubscriptionType(): string\n\t{\n\t\treturn 'server';\n\t}\n\n\thandleNotifyAdd(params: NotifyAddParams)\n\t{\n\t\tif (params.onlyFlash === true)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.userManager.setUsersToModel(params.users);\n\t\tthis.store.dispatch('notifications/set', params);\n\n\t\tthis.updateCounterDebounced(params.counter);\n\t}\n\n\thandleNotifyConfirm(params)\n\t{\n\t\tthis.store.dispatch('notifications/delete', {\n\t\t\tid: params.id,\n\t\t});\n\n\t\tthis.updateCounterDebounced(params.counter);\n\t}\n\n\thandleNotifyRead(params)\n\t{\n\t\tparams.list.forEach(id => {\n\t\t\tthis.store.dispatch('notifications/read', {ids: [id], read: true});\n\t\t});\n\n\t\tthis.updateCounterDebounced(params.counter);\n\t}\n\n\thandleNotifyUnread(params)\n\t{\n\t\tparams.list.forEach(id => {\n\t\t\tthis.store.dispatch('notifications/read', {ids: [id], read: false});\n\t\t});\n\n\t\tthis.updateCounterDebounced(params.counter);\n\t}\n\n\thandleNotifyReadAll()\n\t{\n\t\tvoid this.store.dispatch('notifications/readAll');\n\t}\n\n\thandleNotifyDelete(params)\n\t{\n\t\tconst idsToDelete = Object.keys(params.id).map(id => Number.parseInt(id, 10));\n\n\t\tidsToDelete.forEach(id => {\n\t\t\tthis.store.dispatch('notifications/delete', {id});\n\t\t});\n\n\t\tthis.updateCounterDebounced(params.counter);\n\t}\n\n\tupdateCounter(counter: number)\n\t{\n\t\tthis.store.dispatch('notifications/setCounter', counter);\n\t}\n}\n","import { Type } from 'main.core';\n\nimport { Core } from 'im.v2.application.core';\nimport { UserManager } from 'im.v2.lib.user';\nimport { SidebarDetailBlock } from 'im.v2.const';\nimport { ChatUnreadParams } from './types/chat';\n\nimport type {\n\tAddMultidialogParams,\n\tChangeMultidialogSessionsLimitParams,\n\tChangeMultidialogStatusParams,\n} from './types/multidialog';\nimport { MessageChatParams, MessageParams, ReadMessageChatParams, ReadMessageParams } from './types/message';\nimport type { ChatUserAddParams, ChatUserLeaveParams } from './types/chat';\nimport type { ImModelSidebarMultidialogItem } from 'im.v2.model';\n\nexport class SidebarPullHandler\n{\n\tconstructor()\n\t{\n\t\tthis.store = Core.getStore();\n\t\tthis.userManager = new UserManager();\n\t}\n\n\tgetModuleId(): string\n\t{\n\t\treturn 'im';\n\t}\n\n\t// region members\n\thandleChatUserAdd(params: ChatUserAddParams)\n\t{\n\t\tif (this.getMembersCountFromStore(params.chatId) === 0)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.userManager.setUsersToModel(Object.values(params.users));\n\n\t\tvoid this.store.dispatch('sidebar/members/set', {\n\t\t\tchatId: params.chatId,\n\t\t\tusers: params.newUsers,\n\t\t});\n\t}\n\n\thandleChatUserLeave(params: ChatUserLeaveParams)\n\t{\n\t\tif (this.getMembersCountFromStore(params.chatId) === 0)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.store.dispatch('sidebar/members/delete', {\n\t\t\tchatId: params.chatId,\n\t\t\tuserId: params.userId,\n\t\t});\n\t}\n\t// endregion\n\n\t// region task\n\thandleTaskAdd(params)\n\t{\n\t\tif (!this.isSidebarInited(params.link.chatId))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.userManager.setUsersToModel(params.users);\n\n\t\tvoid this.store.dispatch('sidebar/tasks/set', {\n\t\t\tchatId: params.link.chatId,\n\t\t\ttasks: [params.link],\n\t\t});\n\t}\n\n\thandleTaskUpdate(params, extra)\n\t{\n\t\tthis.handleTaskAdd(params, extra);\n\t}\n\n\thandleTaskDelete(params)\n\t{\n\t\tif (!this.isSidebarInited(params.chatId))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.store.dispatch('sidebar/tasks/delete', {\n\t\t\tchatId: params.chatId,\n\t\t\tid: params.linkId,\n\t\t});\n\t}\n\t// endregion\n\n\t// region meetings\n\thandleCalendarAdd(params)\n\t{\n\t\tif (!this.isSidebarInited(params.link.chatId))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.userManager.setUsersToModel(params.users);\n\n\t\tvoid this.store.dispatch('sidebar/meetings/set', {\n\t\t\tchatId: params.link.chatId,\n\t\t\tmeetings: [params.link],\n\t\t});\n\t}\n\n\thandleCalendarUpdate(params, extra)\n\t{\n\t\tthis.handleCalendarAdd(params, extra);\n\t}\n\n\thandleCalendarDelete(params)\n\t{\n\t\tif (!this.isSidebarInited(params.chatId))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.store.dispatch('sidebar/meetings/delete', {\n\t\t\tchatId: params.chatId,\n\t\t\tid: params.linkId,\n\t\t});\n\t}\n\t// endregion\n\n\t// region links\n\thandleUrlAdd(params)\n\t{\n\t\tif (!this.isSidebarInited(params.link.chatId))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.userManager.setUsersToModel(params.users);\n\n\t\tvoid this.store.dispatch('sidebar/links/set', {\n\t\t\tchatId: params.link.chatId,\n\t\t\tlinks: [params.link],\n\t\t});\n\n\t\tconst counter = this.store.getters['sidebar/links/getCounter'](params.link.chatId);\n\t\tvoid this.store.dispatch('sidebar/links/setCounter', {\n\t\t\tchatId: params.link.chatId,\n\t\t\tcounter: counter + 1,\n\t\t});\n\t}\n\n\thandleUrlDelete(params)\n\t{\n\t\tif (!this.isSidebarInited(params.chatId))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.store.dispatch('sidebar/links/delete', {\n\t\t\tchatId: params.chatId,\n\t\t\tid: params.linkId,\n\t\t});\n\t}\n\t// endregion\n\n\t// region favorite\n\thandleMessageFavoriteAdd(params)\n\t{\n\t\tif (!this.isSidebarInited(params.link.chatId))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.userManager.setUsersToModel(params.users);\n\t\tvoid this.store.dispatch('files/set', params.files);\n\t\tvoid this.store.dispatch('messages/store', [params.link.message]);\n\n\t\tvoid this.store.dispatch('sidebar/favorites/set', {\n\t\t\tchatId: params.link.chatId,\n\t\t\tfavorites: [params.link],\n\t\t});\n\n\t\tconst counter = this.store.getters['sidebar/favorites/getCounter'](params.link.chatId);\n\t\tvoid this.store.dispatch('sidebar/favorites/setCounter', {\n\t\t\tchatId: params.link.chatId,\n\t\t\tcounter: counter + 1,\n\t\t});\n\t}\n\n\thandleMessageFavoriteDelete(params)\n\t{\n\t\tif (!this.isSidebarInited(params.chatId))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.store.dispatch('sidebar/favorites/delete', {\n\t\t\tchatId: params.chatId,\n\t\t\tid: params.linkId,\n\t\t});\n\t}\n\t// endregion\n\n\t// region files\n\thandleFileAdd(params)\n\t{\n\t\tif (!this.isSidebarInited(params.link.chatId))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.userManager.setUsersToModel(params.users);\n\t\tvoid this.store.dispatch('files/set', params.files);\n\n\t\tconst group = params.link.group ?? SidebarDetailBlock.fileUnsorted;\n\n\t\tvoid this.store.dispatch('sidebar/files/set', {\n\t\t\tchatId: params.link.chatId,\n\t\t\tfiles: [params.link],\n\t\t\tgroup,\n\t\t});\n\t}\n\n\thandleFileDelete(params)\n\t{\n\t\tconst chatId = Type.isNumber(params.chatId) ? params.chatId : Number.parseInt(params.chatId, 10);\n\t\tif (!this.isSidebarInited(chatId))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst sidebarFileId = params.linkId ?? params.fileId;\n\t\tvoid this.store.dispatch('sidebar/files/delete', {\n\t\t\tchatId,\n\t\t\tid: sidebarFileId,\n\t\t});\n\t}\n\t// endregion\n\n\t// region support24\n\n\thandleChangeMultidialogSessionsLimit(params: ChangeMultidialogSessionsLimitParams)\n\t{\n\t\tvoid this.store.dispatch('sidebar/multidialog/setOpenSessionsLimit', params.limit);\n\t}\n\n\thandleAddMultidialog(params: AddMultidialogParams)\n\t{\n\t\tconst { multidialog, count } = params;\n\t\tconst isSupport = multidialog.isSupport;\n\t\tif (!isSupport)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.store.dispatch('sidebar/multidialog/setChatsCount', count);\n\t\tvoid this.store.dispatch('sidebar/multidialog/addMultidialogs', [multidialog]);\n\t}\n\n\thandleReadMessageChat(params: ReadMessageChatParams)\n\t{\n\t\tthis.deleteUnreadSupportChats(params);\n\t}\n\n\thandleReadMessage(params: ReadMessageParams)\n\t{\n\t\tthis.deleteUnreadSupportChats(params);\n\t}\n\n\thandleChangeMultidialogStatus(params: ChangeMultidialogStatusParams)\n\t{\n\t\tconst { bot, chat, multidialog } = params;\n\n\t\tconst isSupport = multidialog.isSupport;\n\t\tif (!isSupport)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (chat)\n\t\t{\n\t\t\tvoid this.store.dispatch('chats/set', chat);\n\t\t}\n\n\t\tif (bot)\n\t\t{\n\t\t\tvoid this.userManager.setUsersToModel(bot);\n\t\t}\n\n\t\tvoid this.store.dispatch('sidebar/multidialog/addMultidialogs', [multidialog]);\n\t}\n\n\thandleMessage(params: MessageParams)\n\t{\n\t\tthis.setUnreadSupportTickets(params.multidialog);\n\t}\n\n\thandleChatUnread(params: ChatUnreadParams)\n\t{\n\t\tconst { chatId, dialogId } = params;\n\n\t\tconst isSupport = this.store.getters['sidebar/multidialog/isSupport'](dialogId);\n\t\tconst isInited = this.store.getters['sidebar/multidialog/isInited'];\n\n\t\tif (isSupport && isInited)\n\t\t{\n\t\t\tvoid this.store.dispatch('sidebar/multidialog/setUnreadChats', [chatId]);\n\t\t}\n\t}\n\t// endregion\n\n\t// region files unsorted and support24\n\thandleMessageChat(params: MessageChatParams)\n\t{\n\t\t// handle new files while migration is not finished.\n\t\tthis.setFiles(params);\n\n\t\t// handle new unread chats.\n\t\tthis.setUnreadSupportTickets(params.multidialog);\n\t}\n\t// endregion\n\n\tdeleteUnreadSupportChats(params: ReadMessageChatParams | ReadMessageParams)\n\t{\n\t\tconst notCounter = params.counter === 0;\n\n\t\tif (notCounter)\n\t\t{\n\t\t\tvoid this.store.dispatch('sidebar/multidialog/deleteUnreadChats', params.chatId);\n\t\t}\n\t}\n\n\tsetUnreadSupportTickets(multidialog: ImModelSidebarMultidialogItem)\n\t{\n\t\tif (!multidialog)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst oldMultidialog = this.store.getters['sidebar/multidialog/get'](multidialog.chatId);\n\t\tconst status = oldMultidialog?.status || multidialog.status;\n\n\t\tvoid this.store.dispatch('sidebar/multidialog/addMultidialogs', [{ ...multidialog, status }]);\n\t\tvoid this.store.dispatch('sidebar/multidialog/setUnreadChats', [multidialog.chatId]);\n\t}\n\n\tsetFiles(params: MessageChatParams)\n\t{\n\t\tconst { chatId, users, files } = params;\n\n\t\tif (!this.isSidebarInited(chatId) || this.areFilesMigrated())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.userManager.setUsersToModel(Object.values(users));\n\t\tvoid this.store.dispatch('files/set', Object.values(files));\n\n\t\tObject.values(files).forEach((file) => {\n\t\t\tconst group = file.group ?? SidebarDetailBlock.fileUnsorted;\n\t\t\tvoid this.store.dispatch('sidebar/files/set', {\n\t\t\t\tchatId: file.chatId,\n\t\t\t\tfiles: [file],\n\t\t\t\tgroup,\n\t\t\t});\n\t\t});\n\t}\n\n\tisSidebarInited(chatId: number): boolean\n\t{\n\t\treturn this.store.getters['sidebar/isInited'](chatId);\n\t}\n\n\tareFilesMigrated(): boolean\n\t{\n\t\treturn this.store.state.sidebar.isFilesMigrated;\n\t}\n\n\tgetMembersCountFromStore(chatId: number): number\n\t{\n\t\treturn this.store.getters['sidebar/members/getSize'](chatId);\n\t}\n}\n","import { Core } from 'im.v2.application.core';\nimport { DesktopApi } from 'im.v2.lib.desktop-api';\nimport { SoundType, UserStatus, LocalStorageKey, Settings, RawSettings, UserType } from 'im.v2.const';\nimport { Logger } from 'im.v2.lib.logger';\nimport { MessageNotifierManager } from 'im.v2.lib.message-notifier';\nimport { DesktopManager } from 'im.v2.lib.desktop';\nimport { CallManager } from 'im.v2.lib.call';\nimport { LocalStorageManager } from 'im.v2.lib.local-storage';\nimport { SoundNotificationManager } from 'im.v2.lib.sound-notification';\n\nimport type { MessageAddParams } from './types/message';\nimport type { NotifyAddParams } from './types/notification';\n\nexport class NotifierPullHandler\n{\n\tlastNotificationId: number = 0;\n\n\tconstructor()\n\t{\n\t\tthis.store = Core.getStore();\n\n\t\tthis.#setCurrentUserStatus();\n\t\tthis.#restoreLastNotificationId();\n\t}\n\n\tgetModuleId(): string\n\t{\n\t\treturn 'im';\n\t}\n\n\thandleMessage(params, extraData)\n\t{\n\t\tthis.handleMessageAdd(params, extraData);\n\t}\n\n\thandleMessageChat(params, extraData)\n\t{\n\t\tthis.handleMessageAdd(params, extraData);\n\t}\n\n\thandleMessageAdd(params: MessageAddParams, extraData: PullExtraData)\n\t{\n\t\tif (!this.#shouldShowNotification(params, extraData))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.#isChatOpened(params.dialogId))\n\t\t{\n\t\t\tthis.#playOpenedChatMessageSound(params);\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#playMessageSound(params);\n\t\tthis.#flashDesktopIcon();\n\n\t\tconst message = this.store.getters['messages/getById'](params.message.id);\n\t\tconst dialog = this.store.getters['chats/get'](params.dialogId, true);\n\t\tconst user = this.store.getters['users/get'](message.authorId);\n\n\t\tMessageNotifierManager.getInstance().showMessage({\n\t\t\tmessage,\n\t\t\tdialog,\n\t\t\tuser,\n\t\t\tlines: Boolean(params.lines),\n\t\t});\n\n\t\tthis.#updateLastNotificationId(params.message.id);\n\t}\n\n\thandleNotifyAdd(params: NotifyAddParams, extraData: PullExtraData)\n\t{\n\t\tif (extraData.server_time_ago > 10)\n\t\t{\n\t\t\tLogger.warn('NotifierPullHandler: notification arrived to the user 30 seconds after it was actually sent, ignore notification');\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (params.id <= this.lastNotificationId)\n\t\t{\n\t\t\tLogger.warn('NotifierPullHandler: new notification id is smaller than lastNotificationId');\n\n\t\t\treturn;\n\t\t}\n\n\t\tif (\n\t\t\tparams.onlyFlash === true\n\t\t\t|| this.#isUserDnd()\n\t\t\t|| this.#desktopWillShowNotification()\n\t\t\t|| CallManager.getInstance().hasCurrentCall()\n\t\t)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (document.hasFocus())\n\t\t{\n\t\t\tconst areNotificationsOpen = this.store.getters['application/areNotificationsOpen'];\n\t\t\tif (areNotificationsOpen)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t}\n\n\t\tconst notification = this.store.getters['notifications/getById'](params.id);\n\t\tconst user = this.store.getters['users/get'](params.userId);\n\n\t\tif (params.silent !== 'Y')\n\t\t{\n\t\t\tSoundNotificationManager.getInstance().playOnce(SoundType.reminder);\n\t\t}\n\n\t\tthis.#flashDesktopIcon();\n\n\t\tMessageNotifierManager.getInstance().showNotification(notification, user);\n\n\t\tthis.#updateLastNotificationId(params.id);\n\t}\n\n\t#shouldShowNotification(params: MessageAddParams, extraData: PullExtraData): boolean\n\t{\n\t\tif (extraData.server_time_ago > 10)\n\t\t{\n\t\t\tLogger.warn('NotifierPullHandler: message arrived to the user 30 seconds after it was actually sent, ignore message');\n\n\t\t\treturn false;\n\t\t}\n\n\t\tif (params.message.id <= this.lastNotificationId)\n\t\t{\n\t\t\tLogger.warn('NotifierPullHandler: new message id is smaller than lastNotificationId');\n\n\t\t\treturn false;\n\t\t}\n\n\t\tif (Core.getUserId() === params.message.senderId)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (params.lines && !this.#shouldShowLinesNotification(params))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst messageWithoutNotification = !params.notify || params.message?.params?.NOTIFY === 'N';\n\t\tif (messageWithoutNotification || !this.#shouldShowToUser(params) || this.#desktopWillShowNotification())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst callIsActive = CallManager.getInstance().hasCurrentCall();\n\t\tif (callIsActive && CallManager.getInstance().getCurrentCallDialogId() !== params.dialogId.toString())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst screenSharingIsActive = CallManager.getInstance().hasCurrentScreenSharing();\n\t\tif (screenSharingIsActive)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t}\n\n\t#shouldShowLinesNotification(params: MessageAddParams): boolean\n\t{\n\t\tif (this.#isLinesChatOpened(params.dialogId))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst authorId = params.message.senderId;\n\t\tif (authorId > 0 && params.users[authorId].type !== UserType.extranet)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tconst counter = this.store.getters['counters/getSpecificLinesCounter'](params.chatId);\n\n\t\treturn counter === 0;\n\t}\n\n\t#isChatOpened(dialogId: string): boolean\n\t{\n\t\tconst isChatOpen = this.store.getters['application/isChatOpen'](dialogId);\n\n\t\treturn Boolean(document.hasFocus() && isChatOpen);\n\t}\n\n\t#isLinesChatOpened(dialogId: string): boolean\n\t{\n\t\tconst isLinesChatOpen = this.store.getters['application/isLinesChatOpen'](dialogId);\n\n\t\treturn Boolean(document.hasFocus() && isLinesChatOpen);\n\t}\n\n\t#isImportantMessage(params: MessageAddParams): boolean\n\t{\n\t\tconst { message } = params;\n\n\t\treturn message.isImportant || message.importantFor.includes(Core.getUserId());\n\t}\n\n\t#shouldShowToUser(params: MessageAddParams): boolean\n\t{\n\t\tif (this.#isImportantMessage(params))\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tconst dialog = this.store.getters['chats/get'](params.dialogId, true);\n\t\tconst isMuted = dialog.muteList.includes(Core.getUserId());\n\n\t\treturn !this.#isUserDnd() && !isMuted;\n\t}\n\n\t#isUserDnd(): boolean\n\t{\n\t\tconst status = this.store.getters['application/settings/get'](Settings.user.status);\n\n\t\treturn status === UserStatus.dnd;\n\t}\n\n\t#desktopWillShowNotification(): boolean\n\t{\n\t\tconst isDesktopChatWindow = DesktopManager.isChatWindow();\n\n\t\treturn !isDesktopChatWindow && DesktopManager.getInstance().isDesktopActive();\n\t}\n\n\t#flashDesktopIcon(): void\n\t{\n\t\tif (!DesktopManager.isDesktop())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tDesktopApi.flashIcon();\n\t}\n\n\t#playOpenedChatMessageSound(params: MessageAddParams)\n\t{\n\t\tif (this.#isImportantMessage(params))\n\t\t{\n\t\t\tSoundNotificationManager.getInstance().forcePlayOnce(SoundType.newMessage2);\n\n\t\t\treturn;\n\t\t}\n\n\t\tSoundNotificationManager.getInstance().playOnce(SoundType.newMessage2);\n\t}\n\n\t#playMessageSound(params: MessageAddParams)\n\t{\n\t\tif (this.#isImportantMessage(params))\n\t\t{\n\t\t\tSoundNotificationManager.getInstance().forcePlayOnce(SoundType.newMessage1);\n\n\t\t\treturn;\n\t\t}\n\n\t\tSoundNotificationManager.getInstance().playOnce(SoundType.newMessage1);\n\t}\n\n\t#restoreLastNotificationId()\n\t{\n\t\tconst rawLastNotificationId = LocalStorageManager.getInstance().get(LocalStorageKey.lastNotificationId, 0);\n\n\t\tthis.lastNotificationId = Number.parseInt(rawLastNotificationId, 10);\n\t}\n\n\t#updateLastNotificationId(notificationId: number)\n\t{\n\t\tconst WRITE_TO_STORAGE_TIMEOUT = 2000;\n\n\t\tthis.lastNotificationId = notificationId;\n\t\tclearTimeout(this.writeToStorageTimeout);\n\t\tthis.writeToStorageTimeout = setTimeout(() => {\n\t\t\tLocalStorageManager.getInstance().set(LocalStorageKey.lastNotificationId, notificationId);\n\t\t}, WRITE_TO_STORAGE_TIMEOUT);\n\t}\n\n\t#setCurrentUserStatus()\n\t{\n\t\tconst applicationData: { settings: RawSettings } = Core.getApplicationData();\n\t\tif (!applicationData.settings?.status)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tCore.getStore().dispatch('application/settings/set', {\n\t\t\t[Settings.user.status]: applicationData.settings.status,\n\t\t});\n\t}\n}\n","import { Type } from 'main.core';\nimport { Core } from 'im.v2.application.core';\n\nexport class OnlinePullHandler\n{\n\tconstructor()\n\t{\n\t\tthis.store = Core.getStore();\n\t}\n\n\tgetModuleId(): string\n\t{\n\t\treturn 'online';\n\t}\n\n\tgetSubscriptionType(): string\n\t{\n\t\treturn 'online';\n\t}\n\n\thandleUserStatus(params: {\n\t\tusers: Object,\n\t})\n\t{\n\t\tconst currentUserId = Core.getUserId();\n\t\tif (Type.isPlainObject(params.users[currentUserId]))\n\t\t{\n\t\t\tconst { status } = params.users[currentUserId];\n\t\t\tthis.store.dispatch('application/settings/set', { status });\n\t\t}\n\n\t\tObject.values(params.users).forEach((userInfo) => {\n\t\t\tthis.store.dispatch('users/update', {\n\t\t\t\tid: userInfo.id,\n\t\t\t\tfields: {\n\t\t\t\t\tlastActivityDate: userInfo.last_activity_date,\n\t\t\t\t},\n\t\t\t});\n\t\t});\n\t}\n}\n","import { Type } from 'main.core';\n\nimport { Logger } from 'im.v2.lib.logger';\nimport { NewMessageManager } from 'im.v2.provider.pull';\nimport { Core } from 'im.v2.application.core';\nimport { CounterType } from 'im.v2.const';\n\nimport type { ImModelRecentItem } from 'im.v2.model';\nimport type { MessageAddParams, PullExtraParams, ReadMessageParams, UnreadMessageParams } from 'im.v2.provider.pull';\nimport type { ChatMuteNotifyParams, ChatUnreadParams } from './types/chat';\nimport type { MessageDeleteCompleteParams } from './types/message';\n\ntype CounterParams = {\n\tdialogId: string,\n\tchatId: number,\n\tparentChatId: number,\n\tcounter: number,\n\tmuted: boolean,\n\tunread: boolean,\n\tcounterType: $Values<typeof CounterType>\n};\n\nexport class CounterPullHandler\n{\n\tconstructor()\n\t{\n\t\tthis.store = Core.getStore();\n\t}\n\n\tgetModuleId(): string\n\t{\n\t\treturn 'im';\n\t}\n\n\thandleMessage(params: MessageAddParams, extra: PullExtraParams)\n\t{\n\t\tthis.handleMessageAdd(params, extra);\n\t}\n\n\thandleMessageChat(params: MessageAddParams, extra: PullExtraParams)\n\t{\n\t\tthis.handleMessageAdd(params, extra);\n\t}\n\n\thandleMessageAdd(params: MessageAddParams, extra: PullExtraParams)\n\t{\n\t\tconst manager = new NewMessageManager(params, extra);\n\t\tif (!manager.isCommentChat())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#updateCommentCounter({\n\t\t\tchannelChatId: manager.getParentChatId(),\n\t\t\tcommentChatId: manager.getChatId(),\n\t\t\tcommentCounter: params.counter,\n\t\t});\n\t}\n\n\thandleMessageDeleteComplete(params: MessageDeleteCompleteParams)\n\t{\n\t\tthis.#handleCounters(params);\n\t}\n\n\thandleReadMessage(params: ReadMessageParams)\n\t{\n\t\tthis.#handleCounters(params);\n\t}\n\n\thandleReadMessageChat(params: ReadMessageParams)\n\t{\n\t\tthis.#handleCounters(params);\n\t}\n\n\thandleUnreadMessage(params: UnreadMessageParams)\n\t{\n\t\tthis.#handleCounters(params);\n\t}\n\n\thandleUnreadMessageChat(params: UnreadMessageParams)\n\t{\n\t\tthis.#handleCounters(params);\n\t}\n\n\thandleChatUnread(params: ChatUnreadParams)\n\t{\n\t\tthis.#handleCounters({\n\t\t\t...params,\n\t\t\tunread: params.active,\n\t\t});\n\t}\n\n\thandleChatMuteNotify(params: ChatMuteNotifyParams)\n\t{\n\t\tthis.#handleCounters(params);\n\t}\n\n\t#handleCounters(params: CounterParams)\n\t{\n\t\tconst {\n\t\t\tchatId,\n\t\t\tdialogId,\n\t\t\tcounter,\n\t\t\tcounterType = CounterType.chat,\n\t\t\tparentChatId = 0,\n\t\t} = params;\n\n\t\tif (counterType === CounterType.openline)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tLogger.warn('CounterPullHandler: handleCounters:', params);\n\n\t\tif (counterType === CounterType.comment)\n\t\t{\n\t\t\tthis.#updateCommentCounter({\n\t\t\t\tchannelChatId: parentChatId,\n\t\t\t\tcommentChatId: chatId,\n\t\t\t\tcommentCounter: counter,\n\t\t\t});\n\n\t\t\treturn;\n\t\t}\n\n\t\tconst recentItem: ?ImModelRecentItem = Core.getStore().getters['recent/get'](dialogId);\n\t\t// for now existing common chats counters are stored in corresponding chat model objects\n\t\tif (recentItem)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst newCounter = this.#getNewCounter(params);\n\t\t// collab counters are stored in two structures - for common chats and collabs\n\t\t// because collab counters are included in both total chat counter and total collab counter\n\t\tif (counterType === CounterType.collab)\n\t\t{\n\t\t\tCore.getStore().dispatch('counters/setUnloadedCollabCounters', { [chatId]: newCounter });\n\t\t}\n\n\t\tCore.getStore().dispatch('counters/setUnloadedChatCounters', { [chatId]: newCounter });\n\t}\n\n\t#getNewCounter(params: CounterParams): number\n\t{\n\t\tconst { counter, muted, unread } = params;\n\n\t\tlet newCounter = 0;\n\t\tif (muted)\n\t\t{\n\t\t\tnewCounter = 0;\n\t\t}\n\t\telse if (unread && counter === 0)\n\t\t{\n\t\t\tnewCounter = 1;\n\t\t}\n\t\telse if (unread && counter > 0)\n\t\t{\n\t\t\tnewCounter = counter;\n\t\t}\n\t\telse if (!unread)\n\t\t{\n\t\t\tnewCounter = counter;\n\t\t}\n\n\t\treturn newCounter;\n\t}\n\n\t#updateCommentCounter(payload: { channelChatId: number, commentChatId: number, commentCounter: number })\n\t{\n\t\tconst { channelChatId, commentChatId, commentCounter } = payload;\n\t\tif (Type.isUndefined(commentCounter))\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst counters = {\n\t\t\t[channelChatId]: {\n\t\t\t\t[commentChatId]: commentCounter,\n\t\t\t},\n\t\t};\n\n\t\tCore.getStore().dispatch('counters/setCommentCounters', counters);\n\t}\n}\n","import { PromoManager } from 'im.v2.lib.promo';\n\nimport type { PromotionUpdatedParams } from 'im.v2.provider.pull';\n\nexport class PromotionPullHandler\n{\n\tgetModuleId(): string\n\t{\n\t\treturn 'im';\n\t}\n\n\thandlePromotionUpdated(params: PromotionUpdatedParams): void\n\t{\n\t\tPromoManager.getInstance().onPromotionUpdated(params);\n\t}\n}\n","import { Core } from 'im.v2.application.core';\n\nimport type { ImModelAnchor } from 'im.v2.model';\nimport type { DeleteChatAnchorsParams } from './types/anchor';\n\nexport class AnchorPullHandler\n{\n\tconstructor()\n\t{\n\t\tthis.store = Core.getStore();\n\t}\n\n\tgetModuleId(): string\n\t{\n\t\treturn 'im';\n\t}\n\n\thandleAddAnchor(anchor: ImModelAnchor): void\n\t{\n\t\tthis.store.dispatch('messages/anchors/addAnchor', { anchor });\n\t}\n\n\thandleDeleteAnchor(anchor: ImModelAnchor): void\n\t{\n\t\tthis.store.dispatch('messages/anchors/removeAnchor', { anchor });\n\t}\n\n\thandleDeleteAllAnchors(): void\n\t{\n\t\tthis.store.dispatch('messages/anchors/removeAllAnchors');\n\t}\n\n\thandleDeleteChatAnchors(payload: DeleteChatAnchorsParams): void\n\t{\n\t\tthis.store.dispatch('messages/anchors/removeChatAnchors', {\n\t\t\tchatId: payload.chatId,\n\t\t\tuserId: payload.userId,\n\t\t});\n\t}\n}\n"],"names":["BotPullHandler","constructor","Core","getStore","handleBotAdd","params","Logger","warn","user","UserManager","addUsersToModel","handleBotUpdate","dispatch","id","fields","MessageDeleteManager","deleteMessage","dialogId","senderId","text","isDeleted","files","attach","replyId","deleteMessageComplete","areChannelCommentsOpened","getters","dialogUpdateFields","userId","InputActionListener","getInstance","stopUserActionsInChat","EventEmitter","emit","EventType","dialog","closeComments","Analytics","messageDelete","onDeletedPostNotification","messageId","Notifier","message","onNotFoundError","counter","lastMessageWasDeleted","Boolean","newLastMessage","lastMessageId","lastMessageViews","MessagePullHandler","handleMessageAdd","messageWithTemplateId","templateId","messageWithRealId","error","chatId","hasLoadingMessage","handleMessageUpdate","handleMessageDeleteV2","messages","forEach","completelyDeleted","preparedParams","handleMessageDelete","handleMessageDeleteComplete","handleAddReaction","actualReactions","reaction","actualReactionsState","usersShort","getUserId","ownReactions","userManager","handleDeleteReaction","handleMessageParamsUpdate","handleReadMessage","extra","uuidManager","UuidManager","hasActionUuid","action_uuid","removeActionUuid","messageIds","viewedMessages","then","lastId","catch","console","handleReadMessageOpponent","handlePinAdd","additionalMessages","pin","authorId","handlePinDelete","chat","chatToAdd","dialogExists","messageWithoutNotification","notify","NOTIFY","role","UserRole","member","users","setUsersToModel","Object","values","file","additionalEntities","newMessages","type","ChatType","comment","parent_message_id","messageCount","message_count","newUserId","hasNextPage","chatIsOpened","unreadMessages","RELOAD_LIMIT","MessageService","getMessageRequestLimit","inited","length","messageService","reloadMessageList","newMessage","unread","viewed","dialogFieldsToUpdate","lastReadId","ids","isLastMessage","includes","hasFirstViewer","firstViewer","userName","date","has","Set","add","scrollToBottom","threshold","DialogScrollThreshold","nearTheBottom","temporary","copilot","copilotManager","CopilotManager","messagesAutoDeleteConfigs","isComplete","baseParams","ChatPullHandler","handleChatOwner","ownerId","handleChatManagers","managerList","list","userInManagerList","manager","handleChatUserAdd","currentUserId","newUsers","handleChatUserLeave","currentUserIsKicked","isChannel","ChannelManager","channelChatId","Messenger","openChat","chatHasCall","CallManager","getCurrentCallDialogId","leaveCurrentCall","deleteRecentCall","handleInputActionNotify","startAction","lastActivityDate","Date","handleChatUnread","markedId","active","handleChatMuteNotify","muted","handleChatRename","name","handleChatAvatar","avatar","handleReadAllChats","handleChatConvert","oldType","newType","newPermissions","newTypeParams","permissions","collab","diskFolderId","collabInfo","handleChatCopilotRoleUpdate","copilotRole","handleRoleUpdate","handleChatUpdate","getChatRoleForUser","handleChatFieldsUpdate","handleChatDelete","isCommentChat","parentChatId","commentChatId","chatDelete","onChatDeletedNotification","LayoutManager","clearCurrentLayoutEntityId","deleteLastOpenedElementById","handleMessagesAutoDeleteDelayChanged","delay","userCounter","userCount","extranet","chatExtranet","containsCollaber","TariffPullHandler","handleChangeTariff","tariffRestrictions","fullChatHistory","isAvailable","UserPullHandler","handleUserInvite","invited","handleUserShowInRecent","usersToStore","items","map","item","DesktopPullHandler","handleDesktopOnline","desktopManager","DesktopManager","setDesktopActive","setDesktopVersion","version","CounterManager","removeBrowserTitleCounter","handleDesktopOffline","SettingsPullHandler","handleSettingsUpdate","entries","optionName","optionValue","CommentsPullHandler","handleCommentSubscribe","subscribe","handleReadAllChannelComments","ApplicationPullHandler","handleApplicationOpenChat","hasFocus","document","isDesktop","isChatWindow","MessengerSlider","isFocused","CollabPullHandler","handleUpdateCollabEntityCounter","entity","handleUpdateCollabGuestCount","guestCount","BasePullHandler","getModuleId","handleMessage","handleMessageChat","handleReadMessageChat","handleReadMessageChatOpponent","ActionNameByRecentType","RecentType","default","openChannel","NewMessageManager","getChatId","getParentChatId","getChat","parent_chat_id","getChatType","getRecentTypes","recentConfig","sections","isLinesChat","lines","isChannelChat","channelTypes","isUserInChat","chatUsers","userInChat","isChannelListEvent","is_shared_event","needToSkipMessageEvent","getAddActions","recentTypes","recentType","RecentUpdateManager","setLastMessageInfo","getDialogId","getLastMessageId","lastMessage","lastChannelPost","RecentPullHandler","newRecentItem","recentItem","isFakeElement","isBirthdayPlaceholder","liked","addActions","actionName","action","isOwnLike","isOwnLastMessage","handleChatPin","handleChatHide","Utils","getUuidV4","handleRecentUpdate","newLastMessageId","NotificationPullHandler","store","updateCounterDebounced","Runtime","debounce","updateCounter","getSubscriptionType","handleNotifyAdd","onlyFlash","handleNotifyConfirm","handleNotifyRead","read","handleNotifyUnread","handleNotifyReadAll","handleNotifyDelete","idsToDelete","keys","Number","parseInt","SidebarPullHandler","getMembersCountFromStore","handleTaskAdd","isSidebarInited","link","tasks","handleTaskUpdate","handleTaskDelete","linkId","handleCalendarAdd","meetings","handleCalendarUpdate","handleCalendarDelete","handleUrlAdd","links","handleUrlDelete","handleMessageFavoriteAdd","favorites","handleMessageFavoriteDelete","handleFileAdd","group","SidebarDetailBlock","fileUnsorted","handleFileDelete","Type","isNumber","sidebarFileId","fileId","handleChangeMultidialogSessionsLimit","limit","handleAddMultidialog","multidialog","count","isSupport","deleteUnreadSupportChats","handleChangeMultidialogStatus","bot","setUnreadSupportTickets","isInited","setFiles","notCounter","oldMultidialog","status","areFilesMigrated","state","sidebar","isFilesMigrated","NotifierPullHandler","lastNotificationId","extraData","MessageNotifierManager","showMessage","server_time_ago","hasCurrentCall","areNotificationsOpen","notification","silent","SoundNotificationManager","playOnce","SoundType","reminder","showNotification","callIsActive","toString","screenSharingIsActive","hasCurrentScreenSharing","UserType","isChatOpen","isLinesChatOpen","isImportant","importantFor","isMuted","muteList","Settings","UserStatus","dnd","isDesktopChatWindow","isDesktopActive","DesktopApi","flashIcon","forcePlayOnce","newMessage2","newMessage1","rawLastNotificationId","LocalStorageManager","get","LocalStorageKey","notificationId","WRITE_TO_STORAGE_TIMEOUT","clearTimeout","writeToStorageTimeout","setTimeout","set","applicationData","getApplicationData","settings","OnlinePullHandler","handleUserStatus","isPlainObject","userInfo","last_activity_date","CounterPullHandler","commentCounter","handleUnreadMessage","handleUnreadMessageChat","counterType","CounterType","openline","newCounter","payload","isUndefined","counters","PromotionPullHandler","handlePromotionUpdated","PromoManager","onPromotionUpdated","AnchorPullHandler","handleAddAnchor","anchor","handleDeleteAnchor","handleDeleteAllAnchors","handleDeleteChatAnchors"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit