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
/* eslint-disable */
this.BX = this.BX || {};
this.BX.Messenger = this.BX.Messenger || {};
this.BX.Messenger.v2 = this.BX.Messenger.v2 || {};
this.BX.Messenger.v2.Provider = this.BX.Messenger.v2.Provider || {};
(function (exports,im_v2_lib_uuid,im_v2_provider_service_message,main_core_events,im_v2_lib_layout,im_v2_lib_copilot,im_v2_lib_inputAction,im_v2_lib_roleManager,im_v2_lib_analytics,im_v2_lib_notifier,ui_vue3_vuex,im_v2_lib_counter,im_public,im_v2_lib_slider,im_v2_lib_utils,im_v2_model,im_v2_lib_channel,im_v2_lib_user,im_v2_lib_desktopApi,im_v2_lib_messageNotifier,im_v2_lib_desktop,im_v2_lib_call,im_v2_lib_localStorage,im_v2_lib_soundNotification,main_core,im_v2_lib_logger,im_v2_provider_pull,im_v2_const,im_v2_lib_promo,im_v2_application_core) {
	'use strict';

	var _store = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("store");
	class BotPullHandler {
	  constructor() {
	    Object.defineProperty(this, _store, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _store)[_store] = im_v2_application_core.Core.getStore();
	  }
	  handleBotAdd(params) {
	    im_v2_lib_logger.Logger.warn('BotPullHandler: handleBotAdd', params);
	    const {
	      user
	    } = params;
	    void new im_v2_lib_user.UserManager().addUsersToModel(user);
	  }
	  handleBotUpdate(params) {
	    const {
	      user
	    } = params;
	    babelHelpers.classPrivateFieldLooseBase(this, _store)[_store].dispatch('users/update', {
	      id: user.id,
	      fields: user
	    });
	  }
	}

	var _store$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("store");
	var _stopWriting = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("stopWriting");
	var _closeChannelComments = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("closeChannelComments");
	var _prepareDialogUpdateFields = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("prepareDialogUpdateFields");
	class MessageDeleteManager {
	  constructor() {
	    Object.defineProperty(this, _prepareDialogUpdateFields, {
	      value: _prepareDialogUpdateFields2
	    });
	    Object.defineProperty(this, _closeChannelComments, {
	      value: _closeChannelComments2
	    });
	    Object.defineProperty(this, _stopWriting, {
	      value: _stopWriting2
	    });
	    Object.defineProperty(this, _store$1, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _store$1)[_store$1] = im_v2_application_core.Core.getStore();
	  }
	  deleteMessage(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _stopWriting)[_stopWriting](params.dialogId, params.senderId);
	    void babelHelpers.classPrivateFieldLooseBase(this, _store$1)[_store$1].dispatch('messages/update', {
	      id: params.id,
	      fields: {
	        text: '',
	        isDeleted: true,
	        files: [],
	        attach: [],
	        replyId: 0
	      }
	    });
	  }
	  deleteMessageComplete(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _stopWriting)[_stopWriting](params.dialogId, params.senderId);
	    const areChannelCommentsOpened = babelHelpers.classPrivateFieldLooseBase(this, _store$1)[_store$1].getters['messages/comments/areOpenedForChannelPost'](params.id);
	    if (areChannelCommentsOpened) {
	      babelHelpers.classPrivateFieldLooseBase(this, _closeChannelComments)[_closeChannelComments](params);
	    }
	    void babelHelpers.classPrivateFieldLooseBase(this, _store$1)[_store$1].dispatch('messages/delete', {
	      id: params.id
	    });
	    const dialogUpdateFields = babelHelpers.classPrivateFieldLooseBase(this, _prepareDialogUpdateFields)[_prepareDialogUpdateFields](params);
	    void babelHelpers.classPrivateFieldLooseBase(this, _store$1)[_store$1].dispatch('chats/update', {
	      dialogId: params.dialogId,
	      fields: dialogUpdateFields
	    });
	  }
	}
	function _stopWriting2(dialogId, userId) {
	  im_v2_lib_inputAction.InputActionListener.getInstance().stopUserActionsInChat({
	    dialogId,
	    userId
	  });
	}
	function _closeChannelComments2(params) {
	  main_core_events.EventEmitter.emit(im_v2_const.EventType.dialog.closeComments);
	  im_v2_lib_analytics.Analytics.getInstance().messageDelete.onDeletedPostNotification({
	    dialogId: params.dialogId,
	    messageId: params.id
	  });
	  im_v2_lib_notifier.Notifier.message.onNotFoundError();
	}
	function _prepareDialogUpdateFields2(params) {
	  const dialogUpdateFields = {
	    counter: params.counter
	  };
	  const lastMessageWasDeleted = Boolean(params.newLastMessage);
	  if (lastMessageWasDeleted) {
	    dialogUpdateFields.lastMessageId = params.newLastMessage.id;
	    dialogUpdateFields.lastMessageViews = params.lastMessageViews;
	    void babelHelpers.classPrivateFieldLooseBase(this, _store$1)[_store$1].dispatch('messages/store', params.newLastMessage);
	  }
	  return dialogUpdateFields;
	}

	var _store$2 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("store");
	var _messageViews = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("messageViews");
	var _messageDeleteManager = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("messageDeleteManager");
	var _setMessageChat = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("setMessageChat");
	var _setUsers = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("setUsers");
	var _setFiles = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("setFiles");
	var _setAdditionalEntities = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("setAdditionalEntities");
	var _setCommentInfo = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("setCommentInfo");
	var _handleAddingMessageToModel = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("handleAddingMessageToModel");
	var _addMessageToModel = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("addMessageToModel");
	var _updateDialog = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("updateDialog");
	var _updateMessageViewedByOthers = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("updateMessageViewedByOthers");
	var _updateChatLastMessageViews = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("updateChatLastMessageViews");
	var _checkMessageViewsRegistry = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("checkMessageViewsRegistry");
	var _updateMessageViewsRegistry = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("updateMessageViewsRegistry");
	var _sendScrollEvent = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("sendScrollEvent");
	var _getDialog = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("getDialog");
	var _setCopilotRole = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("setCopilotRole");
	var _setMessagesAutoDeleteConfig = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("setMessagesAutoDeleteConfig");
	var _prepareDeleteMessageParams = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("prepareDeleteMessageParams");
	class MessagePullHandler {
	  constructor() {
	    Object.defineProperty(this, _prepareDeleteMessageParams, {
	      value: _prepareDeleteMessageParams2
	    });
	    Object.defineProperty(this, _setMessagesAutoDeleteConfig, {
	      value: _setMessagesAutoDeleteConfig2
	    });
	    Object.defineProperty(this, _setCopilotRole, {
	      value: _setCopilotRole2
	    });
	    Object.defineProperty(this, _getDialog, {
	      value: _getDialog2
	    });
	    Object.defineProperty(this, _sendScrollEvent, {
	      value: _sendScrollEvent2
	    });
	    Object.defineProperty(this, _updateMessageViewsRegistry, {
	      value: _updateMessageViewsRegistry2
	    });
	    Object.defineProperty(this, _checkMessageViewsRegistry, {
	      value: _checkMessageViewsRegistry2
	    });
	    Object.defineProperty(this, _updateChatLastMessageViews, {
	      value: _updateChatLastMessageViews2
	    });
	    Object.defineProperty(this, _updateMessageViewedByOthers, {
	      value: _updateMessageViewedByOthers2
	    });
	    Object.defineProperty(this, _updateDialog, {
	      value: _updateDialog2
	    });
	    Object.defineProperty(this, _addMessageToModel, {
	      value: _addMessageToModel2
	    });
	    Object.defineProperty(this, _handleAddingMessageToModel, {
	      value: _handleAddingMessageToModel2
	    });
	    Object.defineProperty(this, _setCommentInfo, {
	      value: _setCommentInfo2
	    });
	    Object.defineProperty(this, _setAdditionalEntities, {
	      value: _setAdditionalEntities2
	    });
	    Object.defineProperty(this, _setFiles, {
	      value: _setFiles2
	    });
	    Object.defineProperty(this, _setUsers, {
	      value: _setUsers2
	    });
	    Object.defineProperty(this, _setMessageChat, {
	      value: _setMessageChat2
	    });
	    Object.defineProperty(this, _store$2, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _messageViews, {
	      writable: true,
	      value: {}
	    });
	    Object.defineProperty(this, _messageDeleteManager, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2] = im_v2_application_core.Core.getStore();
	    babelHelpers.classPrivateFieldLooseBase(this, _messageDeleteManager)[_messageDeleteManager] = new MessageDeleteManager();
	  }
	  handleMessageAdd(params) {
	    im_v2_lib_logger.Logger.warn('MessagePullHandler: handleMessageAdd', params);
	    babelHelpers.classPrivateFieldLooseBase(this, _setMessageChat)[_setMessageChat](params);
	    babelHelpers.classPrivateFieldLooseBase(this, _setUsers)[_setUsers](params);
	    babelHelpers.classPrivateFieldLooseBase(this, _setFiles)[_setFiles](params);
	    babelHelpers.classPrivateFieldLooseBase(this, _setAdditionalEntities)[_setAdditionalEntities](params);
	    babelHelpers.classPrivateFieldLooseBase(this, _setCommentInfo)[_setCommentInfo](params);
	    babelHelpers.classPrivateFieldLooseBase(this, _setCopilotRole)[_setCopilotRole](params);
	    babelHelpers.classPrivateFieldLooseBase(this, _setMessagesAutoDeleteConfig)[_setMessagesAutoDeleteConfig](params);
	    const messageWithTemplateId = babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].getters['messages/isInChatCollection']({
	      messageId: params.message.templateId
	    });
	    const messageWithRealId = babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].getters['messages/isInChatCollection']({
	      messageId: params.message.id
	    });

	    // update message with parsed link info
	    if (messageWithRealId) {
	      im_v2_lib_logger.Logger.warn('New message pull handler: we already have this message', params.message);
	      void babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/update', {
	        id: params.message.id,
	        fields: {
	          ...params.message,
	          error: false
	        }
	      });
	      babelHelpers.classPrivateFieldLooseBase(this, _sendScrollEvent)[_sendScrollEvent](params.chatId);
	    } else if (!messageWithRealId && messageWithTemplateId) {
	      im_v2_lib_logger.Logger.warn('New message pull handler: we already have the TEMPORARY message', params.message);
	      void babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/updateWithId', {
	        id: params.message.templateId,
	        fields: {
	          ...params.message,
	          error: false
	        }
	      });
	    }
	    // it's an opponent message or our own message from somewhere else
	    else if (!messageWithRealId && !messageWithTemplateId) {
	      im_v2_lib_logger.Logger.warn('New message pull handler: we dont have this message', params.message);
	      babelHelpers.classPrivateFieldLooseBase(this, _handleAddingMessageToModel)[_handleAddingMessageToModel](params);
	    }
	    const hasLoadingMessage = babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].getters['messages/hasLoadingMessageByMessageId'](params.message.templateId);
	    if (hasLoadingMessage) {
	      void babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/delete', {
	        id: params.message.templateId
	      });
	    }
	    im_v2_lib_inputAction.InputActionListener.getInstance().stopUserActionsInChat({
	      userId: params.message.senderId,
	      dialogId: params.dialogId
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _updateDialog)[_updateDialog](params);
	  }
	  handleMessageUpdate(params) {
	    im_v2_lib_logger.Logger.warn('MessagePullHandler: handleMessageUpdate', params);
	    im_v2_lib_inputAction.InputActionListener.getInstance().stopUserActionsInChat({
	      userId: params.senderId,
	      dialogId: params.dialogId
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/update', {
	      id: params.id,
	      fields: {
	        text: params.text,
	        params: params.params
	      }
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _sendScrollEvent)[_sendScrollEvent](params.chatId);
	  }
	  handleMessageDeleteV2(params) {
	    im_v2_lib_logger.Logger.warn('MessageDeletePullHandler: handleMultipleMessageDelete', params);
	    const messages = params.messages;
	    messages.forEach(message => {
	      if (message.completelyDeleted) {
	        const preparedParams = babelHelpers.classPrivateFieldLooseBase(this, _prepareDeleteMessageParams)[_prepareDeleteMessageParams](params, true, message);
	        babelHelpers.classPrivateFieldLooseBase(this, _messageDeleteManager)[_messageDeleteManager].deleteMessageComplete(preparedParams);
	        return;
	      }
	      const preparedParams = babelHelpers.classPrivateFieldLooseBase(this, _prepareDeleteMessageParams)[_prepareDeleteMessageParams](params, false, message);
	      babelHelpers.classPrivateFieldLooseBase(this, _messageDeleteManager)[_messageDeleteManager].deleteMessage(preparedParams);
	    });
	  }
	  handleMessageDelete(params) {
	    im_v2_lib_logger.Logger.warn('MessageDeletePullHandler: handleMessageDelete', params);
	    const preparedParams = babelHelpers.classPrivateFieldLooseBase(this, _prepareDeleteMessageParams)[_prepareDeleteMessageParams](params);
	    babelHelpers.classPrivateFieldLooseBase(this, _messageDeleteManager)[_messageDeleteManager].deleteMessage(preparedParams);
	  }
	  handleMessageDeleteComplete(params) {
	    im_v2_lib_logger.Logger.warn('MessageDeletePullHandler: handleMessageDeleteComplete', params);
	    const preparedParams = babelHelpers.classPrivateFieldLooseBase(this, _prepareDeleteMessageParams)[_prepareDeleteMessageParams](params, true);
	    babelHelpers.classPrivateFieldLooseBase(this, _messageDeleteManager)[_messageDeleteManager].deleteMessageComplete(preparedParams);
	  }
	  handleAddReaction(params) {
	    im_v2_lib_logger.Logger.warn('MessagePullHandler: handleAddReaction', params);
	    const {
	      actualReactions: {
	        reaction: actualReactionsState,
	        usersShort
	      },
	      userId,
	      reaction
	    } = params;
	    if (im_v2_application_core.Core.getUserId() === userId) {
	      actualReactionsState.ownReactions = [reaction];
	    }
	    const userManager = new im_v2_lib_user.UserManager();
	    userManager.addUsersToModel(usersShort);
	    babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/reactions/set', [actualReactionsState]);
	  }
	  handleDeleteReaction(params) {
	    im_v2_lib_logger.Logger.warn('MessagePullHandler: handleDeleteReaction', params);
	    const {
	      actualReactions: {
	        reaction: actualReactionsState
	      }
	    } = params;
	    babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/reactions/set', [actualReactionsState]);
	  }
	  handleMessageParamsUpdate(params) {
	    im_v2_lib_logger.Logger.warn('MessagePullHandler: handleMessageParamsUpdate', params);
	    babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/update', {
	      id: params.id,
	      chatId: params.chatId,
	      fields: {
	        params: params.params
	      }
	    });
	  }
	  handleReadMessage(params, extra) {
	    im_v2_lib_logger.Logger.warn('MessagePullHandler: handleReadMessage', params);
	    const uuidManager = im_v2_lib_uuid.UuidManager.getInstance();
	    if (uuidManager.hasActionUuid(extra.action_uuid)) {
	      im_v2_lib_logger.Logger.warn('MessagePullHandler: handleReadMessage: we have this uuid, skip');
	      uuidManager.removeActionUuid(extra.action_uuid);
	      return;
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/readMessages', {
	      chatId: params.chatId,
	      messageIds: params.viewedMessages
	    }).then(() => {
	      babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('chats/update', {
	        dialogId: params.dialogId,
	        fields: {
	          counter: params.counter,
	          lastId: params.lastId
	        }
	      });
	    }).catch(error => {
	      // eslint-disable-next-line no-console
	      console.error('MessagePullHandler: error handling readMessage', error);
	    });
	  }
	  handleReadMessageOpponent(params) {
	    if (params.userId === im_v2_application_core.Core.getUserId()) {
	      return;
	    }
	    im_v2_lib_logger.Logger.warn('MessagePullHandler: handleReadMessageOpponent', params);
	    babelHelpers.classPrivateFieldLooseBase(this, _updateMessageViewedByOthers)[_updateMessageViewedByOthers](params);
	    babelHelpers.classPrivateFieldLooseBase(this, _updateChatLastMessageViews)[_updateChatLastMessageViews](params);
	  }
	  handlePinAdd(params) {
	    im_v2_lib_logger.Logger.warn('MessagePullHandler: handlePinAdd', params);
	    babelHelpers.classPrivateFieldLooseBase(this, _setFiles)[_setFiles](params);
	    babelHelpers.classPrivateFieldLooseBase(this, _setUsers)[_setUsers](params);
	    babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/store', params.additionalMessages);
	    babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/pin/add', {
	      chatId: params.pin.chatId,
	      messageId: params.pin.messageId
	    });
	    if (im_v2_application_core.Core.getUserId() !== params.pin.authorId) ;
	  }
	  handlePinDelete(params) {
	    im_v2_lib_logger.Logger.warn('MessagePullHandler: handlePinDelete', params);
	    babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/pin/delete', {
	      chatId: params.chatId,
	      messageId: params.messageId
	    });
	  }

	  // helpers
	}
	function _setMessageChat2(params) {
	  var _params$chat, _params$message, _params$message$param;
	  const chat = (_params$chat = params.chat) == null ? void 0 : _params$chat[params.chatId];
	  if (!chat) {
	    return;
	  }
	  const chatToAdd = {
	    ...params.chat[params.chatId],
	    dialogId: params.dialogId
	  };
	  const dialogExists = Boolean(babelHelpers.classPrivateFieldLooseBase(this, _getDialog)[_getDialog](params.dialogId));
	  const messageWithoutNotification = !params.notify || ((_params$message = params.message) == null ? void 0 : (_params$message$param = _params$message.params) == null ? void 0 : _params$message$param.NOTIFY) === 'N';
	  if (!dialogExists && !messageWithoutNotification && !chatToAdd.role) {
	    chatToAdd.role = im_v2_const.UserRole.member;
	  }
	  babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('chats/set', chatToAdd);
	}
	function _setUsers2(params) {
	  if (!params.users) {
	    return;
	  }
	  const userManager = new im_v2_lib_user.UserManager();
	  userManager.setUsersToModel(Object.values(params.users));
	}
	function _setFiles2(params) {
	  if (!params.files) {
	    return;
	  }
	  const files = Object.values(params.files);
	  files.forEach(file => {
	    void babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('files/set', file);
	  });
	}
	function _setAdditionalEntities2(params) {
	  if (!params.message.additionalEntities) {
	    return;
	  }
	  const {
	    additionalMessages,
	    messages,
	    files,
	    users
	  } = params.message.additionalEntities;
	  const newMessages = [...messages, ...additionalMessages];
	  babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/store', newMessages);
	  babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('files/set', files);
	  babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('users/set', users);
	}
	function _setCommentInfo2(params) {
	  var _params$chat2;
	  const chat = (_params$chat2 = params.chat) == null ? void 0 : _params$chat2[params.chatId];
	  if (!chat || chat.type !== im_v2_const.ChatType.comment) {
	    return;
	  }
	  babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/comments/set', {
	    messageId: chat.parent_message_id,
	    chatId: params.chatId,
	    messageCount: chat.message_count
	  });
	  babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/comments/setLastUser', {
	    messageId: chat.parent_message_id,
	    newUserId: params.message.senderId
	  });
	}
	function _handleAddingMessageToModel2(params) {
	  const dialog = babelHelpers.classPrivateFieldLooseBase(this, _getDialog)[_getDialog](params.dialogId, true);
	  if (dialog.hasNextPage) {
	    babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/store', params.message);
	    return;
	  }
	  const chatIsOpened = babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].getters['application/isChatOpen'](params.dialogId);
	  const unreadMessages = babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].getters['messages/getChatUnreadMessages'](params.chatId);
	  const RELOAD_LIMIT = im_v2_provider_service_message.MessageService.getMessageRequestLimit() * 5;
	  if (dialog.inited && !chatIsOpened && unreadMessages.length > RELOAD_LIMIT) {
	    void babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/store', params.message);
	    const messageService = new im_v2_provider_service_message.MessageService({
	      chatId: params.chatId
	    });
	    messageService.reloadMessageList();
	    return;
	  }
	  babelHelpers.classPrivateFieldLooseBase(this, _addMessageToModel)[_addMessageToModel](params.message);
	  babelHelpers.classPrivateFieldLooseBase(this, _sendScrollEvent)[_sendScrollEvent](params.chatId);
	}
	function _addMessageToModel2(message) {
	  const newMessage = {
	    ...message
	  };
	  if (message.senderId === im_v2_application_core.Core.getUserId()) {
	    newMessage.unread = false;
	  } else {
	    newMessage.unread = true;
	    newMessage.viewed = false;
	  }
	  babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/setChatCollection', {
	    messages: [newMessage]
	  });
	}
	function _updateDialog2(params) {
	  const dialog = babelHelpers.classPrivateFieldLooseBase(this, _getDialog)[_getDialog](params.dialogId, true);
	  const dialogFieldsToUpdate = {};
	  if (params.message.id > dialog.lastMessageId) {
	    dialogFieldsToUpdate.lastMessageId = params.message.id;
	  }
	  if (params.message.senderId === im_v2_application_core.Core.getUserId() && params.message.id > dialog.lastReadId) {
	    dialogFieldsToUpdate.lastId = params.message.id;
	  }
	  dialogFieldsToUpdate.counter = params.counter;
	  babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('chats/update', {
	    dialogId: params.dialogId,
	    fields: dialogFieldsToUpdate
	  });
	  babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('chats/clearLastMessageViews', {
	    dialogId: params.dialogId
	  });
	}
	function _updateMessageViewedByOthers2(params) {
	  babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('messages/setViewedByOthers', {
	    ids: params.viewedMessages
	  });
	}
	function _updateChatLastMessageViews2(params) {
	  const dialog = babelHelpers.classPrivateFieldLooseBase(this, _getDialog)[_getDialog](params.dialogId);
	  if (!dialog) {
	    return;
	  }
	  const isLastMessage = params.viewedMessages.includes(dialog.lastMessageId);
	  if (!isLastMessage) {
	    return;
	  }
	  if (babelHelpers.classPrivateFieldLooseBase(this, _checkMessageViewsRegistry)[_checkMessageViewsRegistry](params.userId, dialog.lastMessageId)) {
	    return;
	  }
	  const hasFirstViewer = Boolean(dialog.lastMessageViews.firstViewer);
	  if (hasFirstViewer) {
	    babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('chats/incrementLastMessageViews', {
	      dialogId: params.dialogId
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _updateMessageViewsRegistry)[_updateMessageViewsRegistry](params.userId, dialog.lastMessageId);
	    return;
	  }
	  babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('chats/setLastMessageViews', {
	    dialogId: params.dialogId,
	    fields: {
	      userId: params.userId,
	      userName: params.userName,
	      date: params.date,
	      messageId: dialog.lastMessageId
	    }
	  });
	  babelHelpers.classPrivateFieldLooseBase(this, _updateMessageViewsRegistry)[_updateMessageViewsRegistry](params.userId, dialog.lastMessageId);
	}
	function _checkMessageViewsRegistry2(userId, messageId) {
	  var _babelHelpers$classPr;
	  return Boolean((_babelHelpers$classPr = babelHelpers.classPrivateFieldLooseBase(this, _messageViews)[_messageViews][messageId]) == null ? void 0 : _babelHelpers$classPr.has(userId));
	}
	function _updateMessageViewsRegistry2(userId, messageId) {
	  if (!babelHelpers.classPrivateFieldLooseBase(this, _messageViews)[_messageViews][messageId]) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageViews)[_messageViews][messageId] = new Set();
	  }
	  babelHelpers.classPrivateFieldLooseBase(this, _messageViews)[_messageViews][messageId].add(userId);
	}
	function _sendScrollEvent2(chatId) {
	  main_core_events.EventEmitter.emit(im_v2_const.EventType.dialog.scrollToBottom, {
	    chatId,
	    threshold: im_v2_const.DialogScrollThreshold.nearTheBottom
	  });
	}
	function _getDialog2(dialogId, temporary = false) {
	  return babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].getters['chats/get'](dialogId, temporary);
	}
	function _setCopilotRole2(params) {
	  if (!params.copilot) {
	    return;
	  }
	  const copilotManager = new im_v2_lib_copilot.CopilotManager();
	  void copilotManager.handleMessageAdd(params.copilot);
	}
	function _setMessagesAutoDeleteConfig2(params) {
	  const {
	    messagesAutoDeleteConfigs
	  } = params;
	  void babelHelpers.classPrivateFieldLooseBase(this, _store$2)[_store$2].dispatch('chats/autoDelete/set', messagesAutoDeleteConfigs);
	}
	function _prepareDeleteMessageParams2(params, isComplete = false, message = null) {
	  const baseParams = {
	    id: message ? message.id : params.id,
	    senderId: message ? message.senderId : params.senderId,
	    dialogId: params.dialogId
	  };
	  if (isComplete) {
	    return {
	      ...baseParams,
	      newLastMessage: params.newLastMessage,
	      lastMessageViews: params.lastMessageViews,
	      counter: params.counter
	    };
	  }
	  return baseParams;
	}

	var _store$3 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("store");
	var _updateChatUsers = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("updateChatUsers");
	class ChatPullHandler {
	  constructor() {
	    Object.defineProperty(this, _updateChatUsers, {
	      value: _updateChatUsers2
	    });
	    Object.defineProperty(this, _store$3, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3] = im_v2_application_core.Core.getStore();
	  }
	  handleChatOwner(params) {
	    im_v2_lib_logger.Logger.warn('ChatPullHandler: handleChatOwner', params);
	    babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/update', {
	      dialogId: params.dialogId,
	      fields: {
	        ownerId: params.userId
	      }
	    });
	  }
	  handleChatManagers(params) {
	    im_v2_lib_logger.Logger.warn('ChatPullHandler: handleChatManagers', params);
	    babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/update', {
	      dialogId: params.dialogId,
	      fields: {
	        managerList: params.list
	      }
	    });
	    const chat = babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].getters['chats/get'](params.dialogId);
	    if (!chat) {
	      return;
	    }
	    const userInManagerList = params.list.includes(im_v2_application_core.Core.getUserId());
	    if (chat.role === im_v2_const.UserRole.member && userInManagerList) {
	      babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/update', {
	        dialogId: params.dialogId,
	        fields: {
	          role: im_v2_const.UserRole.manager
	        }
	      });
	    }
	    if (chat.role === im_v2_const.UserRole.manager && !userInManagerList) {
	      babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/update', {
	        dialogId: params.dialogId,
	        fields: {
	          role: im_v2_const.UserRole.member
	        }
	      });
	    }
	  }
	  handleChatUserAdd(params) {
	    im_v2_lib_logger.Logger.warn('ChatPullHandler: handleChatUserAdd', params);
	    const currentUserId = im_v2_application_core.Core.getUserId();
	    if (params.newUsers.includes(currentUserId)) {
	      babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/update', {
	        dialogId: params.dialogId,
	        fields: {
	          role: im_v2_const.UserRole.member
	        }
	      });
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _updateChatUsers)[_updateChatUsers](params);
	  }
	  handleChatUserLeave(params) {
	    im_v2_lib_logger.Logger.warn('ChatPullHandler: handleChatUserLeave', params);
	    const currentUserIsKicked = params.userId === im_v2_application_core.Core.getUserId();
	    if (currentUserIsKicked) {
	      babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/update', {
	        dialogId: params.dialogId,
	        fields: {
	          inited: false
	        }
	      });
	      babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('messages/clearChatCollection', {
	        chatId: params.chatId
	      });
	    }
	    const isChannel = im_v2_lib_channel.ChannelManager.isChannel(params.dialogId);
	    if (isChannel) {
	      void babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('counters/deleteForChannel', {
	        channelChatId: params.chatId
	      });
	    }
	    const chatIsOpened = babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].getters['application/isChatOpen'](params.dialogId);
	    if (currentUserIsKicked && chatIsOpened) {
	      im_public.Messenger.openChat();
	    }
	    const chatHasCall = im_v2_lib_call.CallManager.getInstance().getCurrentCallDialogId() === params.dialogId;
	    if (currentUserIsKicked && chatHasCall) {
	      im_v2_lib_call.CallManager.getInstance().leaveCurrentCall();
	    }
	    if (currentUserIsKicked) {
	      im_v2_lib_call.CallManager.getInstance().deleteRecentCall(params.dialogId);
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _updateChatUsers)[_updateChatUsers](params);
	  }
	  handleInputActionNotify(params) {
	    im_v2_lib_logger.Logger.warn('ChatPullHandler: handleInputActionNotify', params);
	    im_v2_lib_inputAction.InputActionListener.getInstance().startAction(params);
	    babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('users/update', {
	      id: params.userId,
	      fields: {
	        lastActivityDate: new Date()
	      }
	    });
	  }
	  handleChatUnread(params) {
	    im_v2_lib_logger.Logger.warn('ChatPullHandler: handleChatUnread', params);
	    let markedId = 0;
	    if (params.active === true) {
	      markedId = params.markedId;
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/update', {
	      dialogId: params.dialogId,
	      fields: {
	        markedId
	      }
	    });
	  }
	  handleChatMuteNotify(params) {
	    if (params.muted) {
	      babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/mute', {
	        dialogId: params.dialogId
	      });
	      return;
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/unmute', {
	      dialogId: params.dialogId
	    });
	  }
	  handleChatRename(params) {
	    const dialog = babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].getters['chats/getByChatId'](params.chatId);
	    if (!dialog) {
	      return;
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/update', {
	      dialogId: dialog.dialogId,
	      fields: {
	        name: params.name
	      }
	    });
	  }
	  handleChatAvatar(params) {
	    const dialog = babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].getters['chats/getByChatId'](params.chatId);
	    if (!dialog) {
	      return;
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/update', {
	      dialogId: dialog.dialogId,
	      fields: {
	        avatar: params.avatar
	      }
	    });
	  }
	  handleReadAllChats() {
	    im_v2_lib_logger.Logger.warn('ChatPullHandler: handleReadAllChats');
	    babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/clearCounters');
	    babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('recent/clearUnread');
	  }
	  handleChatConvert(params) {
	    im_v2_lib_logger.Logger.warn('ChatPullHandler: handleChatConvert', params);
	    const {
	      dialogId,
	      oldType,
	      newType,
	      newPermissions,
	      newTypeParams
	    } = params;
	    const fields = {
	      type: newType,
	      permissions: newPermissions
	    };
	    if ([newType, oldType].includes(im_v2_const.ChatType.collab)) {
	      fields.diskFolderId = 0;
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/update', {
	      dialogId,
	      fields
	    });
	    const dialog = babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].getters['chats/get'](dialogId);
	    if (newType === im_v2_const.ChatType.collab && (dialog == null ? void 0 : dialog.chatId) > 0) {
	      babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/collabs/set', {
	        chatId: dialog.chatId,
	        collabInfo: newTypeParams.collabInfo
	      });
	    }
	  }
	  handleChatCopilotRoleUpdate(params) {
	    if (!params.copilotRole) {
	      return;
	    }
	    const copilotManager = new im_v2_lib_copilot.CopilotManager();
	    void copilotManager.handleRoleUpdate(params.copilotRole);
	  }
	  handleChatUpdate(params) {
	    void babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/update', {
	      dialogId: params.chat.dialogId,
	      fields: {
	        role: im_v2_lib_roleManager.getChatRoleForUser(params.chat),
	        ...params.chat
	      }
	    });
	  }
	  handleChatFieldsUpdate(params) {
	    void babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/update', {
	      dialogId: params.dialogId,
	      fields: {
	        ...params
	      }
	    });
	  }
	  handleChatDelete(params) {
	    im_v2_lib_logger.Logger.warn('ChatPullHandler: handleChatDelete', params);
	    const currentUserId = im_v2_application_core.Core.getUserId();
	    if (params.userId === currentUserId) {
	      return;
	    }
	    void babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/update', {
	      dialogId: params.dialogId,
	      fields: {
	        inited: false
	      }
	    });
	    void babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('recent/delete', {
	      id: params.dialogId
	    });
	    const isCommentChat = params.type === im_v2_const.ChatType.comment;
	    if (isCommentChat) {
	      void babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('counters/deleteForChannel', {
	        channelChatId: params.parentChatId,
	        commentChatId: params.chatId
	      });
	    }
	    const isChannel = im_v2_lib_channel.ChannelManager.isChannel(params.dialogId);
	    if (isChannel) {
	      void babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('counters/deleteForChannel', {
	        channelChatId: params.chatId
	      });
	    }
	    void babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('messages/clearChatCollection', {
	      chatId: params.chatId
	    });
	    const chatIsOpened = babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].getters['application/isChatOpen'](params.dialogId);
	    if (chatIsOpened) {
	      im_v2_lib_analytics.Analytics.getInstance().chatDelete.onChatDeletedNotification(params.dialogId);
	      im_v2_lib_notifier.Notifier.chat.onNotFoundError();
	      void im_v2_lib_layout.LayoutManager.getInstance().clearCurrentLayoutEntityId();
	      void im_v2_lib_layout.LayoutManager.getInstance().deleteLastOpenedElementById(params.dialogId);
	    }
	    const chatHasCall = im_v2_lib_call.CallManager.getInstance().getCurrentCallDialogId() === params.dialogId;
	    if (chatHasCall) {
	      im_v2_lib_call.CallManager.getInstance().leaveCurrentCall();
	    }
	  }
	  handleMessagesAutoDeleteDelayChanged(params) {
	    im_v2_lib_logger.Logger.warn('ChatPullHandler: handleMessagesAutoDeleteDelayChanged', params);
	    const {
	      chatId,
	      delay
	    } = params;
	    void babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/autoDelete/set', {
	      chatId,
	      delay
	    });
	  }
	}
	function _updateChatUsers2(params) {
	  if (params.users) {
	    const userManager = new im_v2_lib_user.UserManager();
	    userManager.setUsersToModel(Object.values(params.users));
	  }
	  babelHelpers.classPrivateFieldLooseBase(this, _store$3)[_store$3].dispatch('chats/update', {
	    dialogId: params.dialogId,
	    fields: {
	      userCounter: params.userCount,
	      extranet: params.chatExtranet,
	      containsCollaber: params.containsCollaber
	    }
	  });
	}

	class TariffPullHandler {
	  handleChangeTariff(params) {
	    var _tariffRestrictions$f;
	    im_v2_lib_logger.Logger.warn('TariffPullHandler: handleChangeTariff', params);
	    const {
	      tariffRestrictions
	    } = params;
	    if (!tariffRestrictions) {
	      return;
	    }
	    if (((_tariffRestrictions$f = tariffRestrictions.fullChatHistory) == null ? void 0 : _tariffRestrictions$f.isAvailable) === true) {
	      return;
	    }
	    void im_v2_application_core.Core.getStore().dispatch('application/tariffRestrictions/set', tariffRestrictions);
	  }
	}

	var _store$4 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("store");
	class UserPullHandler {
	  constructor() {
	    Object.defineProperty(this, _store$4, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _store$4)[_store$4] = im_v2_application_core.Core.getStore();
	  }
	  handleUserInvite(params) {
	    if (params.invited) {
	      const userManager = new im_v2_lib_user.UserManager();
	      userManager.setUsersToModel([params.user]);
	      return;
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _store$4)[_store$4].dispatch('users/update', {
	      id: params.userId,
	      fields: params.user
	    });
	  }
	  handleUserShowInRecent(params) {
	    const usersToStore = params.items.map(item => item.user);
	    const userManager = new im_v2_lib_user.UserManager();
	    userManager.setUsersToModel(usersToStore);
	  }
	}

	class DesktopPullHandler {
	  handleDesktopOnline(params) {
	    im_v2_lib_logger.Logger.warn('DesktopPullHandler: handleDesktopOnline', params);
	    const desktopManager = im_v2_lib_desktop.DesktopManager.getInstance();
	    desktopManager.setDesktopActive(true);
	    desktopManager.setDesktopVersion(params.version);
	    im_v2_lib_counter.CounterManager.getInstance().removeBrowserTitleCounter();
	  }
	  handleDesktopOffline() {
	    im_v2_lib_logger.Logger.warn('DesktopPullHandler: handleDesktopOffline');
	    im_v2_lib_desktop.DesktopManager.getInstance().setDesktopActive(false);
	    im_v2_lib_desktop.DesktopManager.getInstance().setDesktopVersion(0);
	  }
	}

	class SettingsPullHandler {
	  handleSettingsUpdate(params) {
	    im_v2_lib_logger.Logger.warn('SettingsPullHandler: handleSettingsUpdate', params);
	    Object.entries(params).forEach(([optionName, optionValue]) => {
	      im_v2_application_core.Core.getStore().dispatch('application/settings/set', {
	        [optionName]: optionValue
	      });
	    });
	  }
	}

	class CommentsPullHandler {
	  handleCommentSubscribe(params) {
	    const {
	      messageId,
	      subscribe
	    } = params;
	    im_v2_lib_logger.Logger.warn('CommentsPullHandler: handleCommentSubscribe', params);
	    if (subscribe) {
	      im_v2_application_core.Core.getStore().dispatch('messages/comments/subscribe', messageId);
	      return;
	    }
	    im_v2_application_core.Core.getStore().dispatch('messages/comments/unsubscribe', messageId);
	  }
	  handleReadAllChannelComments(params) {
	    im_v2_application_core.Core.getStore().dispatch('counters/readAllChannelComments', params.chatId);
	  }
	}

	class ApplicationPullHandler {
	  handleApplicationOpenChat(params) {
	    im_v2_lib_logger.Logger.warn('ApplicationPullHandler: handleOpenChat', params);
	    const hasFocus = document.hasFocus();
	    if (!hasFocus) {
	      return;
	    }
	    if (im_v2_lib_desktop.DesktopManager.isDesktop()) {
	      if (!im_v2_lib_desktop.DesktopManager.isChatWindow()) {
	        return;
	      }
	      void im_public.Messenger.openChat(params.dialogId);
	      return;
	    }
	    if (!im_v2_lib_slider.MessengerSlider.getInstance().isFocused()) {
	      return;
	    }
	    void im_public.Messenger.openChat(params.dialogId);
	  }
	}

	class CollabPullHandler {
	  handleUpdateCollabEntityCounter(params) {
	    im_v2_lib_logger.Logger.warn('CollabPullHandler: handleUpdateCollabEntityCounter', params);
	    const {
	      chatId,
	      counter,
	      entity
	    } = params;
	    void im_v2_application_core.Core.getStore().dispatch('chats/collabs/setCounter', {
	      chatId,
	      entity,
	      counter
	    });
	  }
	  handleUpdateCollabGuestCount(params) {
	    im_v2_lib_logger.Logger.warn('CollabPullHandler: handleUpdateCollabGuestCount', params);
	    const {
	      chatId,
	      guestCount
	    } = params;
	    void im_v2_application_core.Core.getStore().dispatch('chats/collabs/setGuestCount', {
	      chatId,
	      guestCount
	    });
	  }
	}

	var _messageHandler = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("messageHandler");
	var _chatHandler = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("chatHandler");
	var _userHandler = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("userHandler");
	var _desktopHandler = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("desktopHandler");
	var _settingsHandler = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("settingsHandler");
	var _commentsHandler = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("commentsHandler");
	var _tariffPullHandler = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("tariffPullHandler");
	var _applicationPullHandler = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("applicationPullHandler");
	var _collabPullHandler = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("collabPullHandler");
	var _botPullHandler = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("botPullHandler");
	class BasePullHandler {
	  constructor() {
	    Object.defineProperty(this, _messageHandler, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _chatHandler, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _userHandler, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _desktopHandler, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _settingsHandler, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _commentsHandler, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _tariffPullHandler, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _applicationPullHandler, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _collabPullHandler, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _botPullHandler, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler] = new MessagePullHandler();
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler] = new ChatPullHandler();
	    babelHelpers.classPrivateFieldLooseBase(this, _userHandler)[_userHandler] = new UserPullHandler();
	    babelHelpers.classPrivateFieldLooseBase(this, _desktopHandler)[_desktopHandler] = new DesktopPullHandler();
	    babelHelpers.classPrivateFieldLooseBase(this, _settingsHandler)[_settingsHandler] = new SettingsPullHandler();
	    babelHelpers.classPrivateFieldLooseBase(this, _commentsHandler)[_commentsHandler] = new CommentsPullHandler();
	    babelHelpers.classPrivateFieldLooseBase(this, _tariffPullHandler)[_tariffPullHandler] = new TariffPullHandler();
	    babelHelpers.classPrivateFieldLooseBase(this, _applicationPullHandler)[_applicationPullHandler] = new ApplicationPullHandler();
	    babelHelpers.classPrivateFieldLooseBase(this, _collabPullHandler)[_collabPullHandler] = new CollabPullHandler();
	    babelHelpers.classPrivateFieldLooseBase(this, _botPullHandler)[_botPullHandler] = new BotPullHandler();
	  }
	  getModuleId() {
	    return 'im';
	  }

	  // region 'message'
	  handleMessage(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handleMessageAdd(params);
	  }
	  handleMessageChat(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handleMessageAdd(params);
	  }
	  handleMessageUpdate(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handleMessageUpdate(params);
	  }
	  handleMessageDeleteV2(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handleMessageDeleteV2(params);
	  }
	  handleMessageDelete(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handleMessageDelete(params);
	  }
	  handleMessageDeleteComplete(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handleMessageDeleteComplete(params);
	  }
	  handleAddReaction(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handleAddReaction(params);
	  }
	  handleDeleteReaction(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handleDeleteReaction(params);
	  }
	  handleMessageParamsUpdate(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handleMessageParamsUpdate(params);
	  }
	  handleReadMessage(params, extra) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handleReadMessage(params, extra);
	  }
	  handleReadMessageChat(params, extra) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handleReadMessage(params, extra);
	  }
	  handleReadMessageOpponent(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handleReadMessageOpponent(params);
	  }
	  handleReadMessageChatOpponent(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handleReadMessageOpponent(params);
	  }
	  handlePinAdd(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handlePinAdd(params);
	  }
	  handlePinDelete(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _messageHandler)[_messageHandler].handlePinDelete(params);
	  }
	  // endregion 'message'

	  // region 'chat'
	  handleChatOwner(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleChatOwner(params);
	  }
	  handleChatManagers(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleChatManagers(params);
	  }
	  handleChatUserAdd(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleChatUserAdd(params);
	  }
	  handleChatUserLeave(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleChatUserLeave(params);
	  }
	  handleInputActionNotify(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleInputActionNotify(params);
	  }
	  handleChatUnread(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleChatUnread(params);
	  }
	  handleReadAllChats() {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleReadAllChats();
	  }
	  handleChatMuteNotify(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleChatMuteNotify(params);
	  }
	  handleChatRename(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleChatRename(params);
	  }
	  handleChatAvatar(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleChatAvatar(params);
	  }
	  handleChatUpdate(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleChatUpdate(params);
	  }
	  handleChatFieldsUpdate(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleChatFieldsUpdate(params);
	  }
	  handleChatDelete(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleChatDelete(params);
	  }
	  handleChatConvert(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleChatConvert(params);
	  }
	  handleChatCopilotRoleUpdate(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleChatCopilotRoleUpdate(params);
	  }
	  handleMessagesAutoDeleteDelayChanged(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _chatHandler)[_chatHandler].handleMessagesAutoDeleteDelayChanged(params);
	  }
	  // endregion 'chat'

	  // region 'user'
	  handleUserInvite(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _userHandler)[_userHandler].handleUserInvite(params);
	  }
	  handleUserShowInRecent(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _userHandler)[_userHandler].handleUserShowInRecent(params);
	  }
	  // endregion 'user'

	  // region 'desktop'
	  handleDesktopOnline(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _desktopHandler)[_desktopHandler].handleDesktopOnline(params);
	  }
	  handleDesktopOffline() {
	    babelHelpers.classPrivateFieldLooseBase(this, _desktopHandler)[_desktopHandler].handleDesktopOffline();
	  }
	  // endregion 'desktop'

	  // region 'settings'
	  handleSettingsUpdate(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _settingsHandler)[_settingsHandler].handleSettingsUpdate(params);
	  }
	  // endregion 'settings'

	  // region 'comments'
	  handleCommentSubscribe(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _commentsHandler)[_commentsHandler].handleCommentSubscribe(params);
	  }
	  handleReadAllChannelComments(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _commentsHandler)[_commentsHandler].handleReadAllChannelComments(params);
	  }
	  // endregion 'comments'

	  // region 'tariff'
	  handleChangeTariff(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _tariffPullHandler)[_tariffPullHandler].handleChangeTariff(params);
	  }
	  // endregion 'tariff'

	  // region 'collab'
	  handleUpdateCollabEntityCounter(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _collabPullHandler)[_collabPullHandler].handleUpdateCollabEntityCounter(params);
	  }
	  handleUpdateCollabGuestCount(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _collabPullHandler)[_collabPullHandler].handleUpdateCollabGuestCount(params);
	  }
	  // endregion 'collab'

	  // region 'application'
	  handleApplicationOpenChat(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _applicationPullHandler)[_applicationPullHandler].handleApplicationOpenChat(params);
	  }
	  // endregion 'application'

	  // region 'bot'
	  handleBotAdd(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _botPullHandler)[_botPullHandler].handleBotAdd(params);
	  }
	  handleBotUpdate(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _botPullHandler)[_botPullHandler].handleBotUpdate(params);
	  }
	  // endregion 'application'
	}

	const ActionNameByRecentType = {
	  [im_v2_const.RecentType.default]: 'recent/setRecent',
	  [im_v2_const.RecentType.copilot]: 'recent/setCopilot',
	  [im_v2_const.RecentType.openChannel]: 'recent/setChannel',
	  [im_v2_const.RecentType.collab]: 'recent/setCollab'
	};
	var _params = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("params");
	var _extra = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("extra");
	class NewMessageManager {
	  constructor(params, extra = {}) {
	    Object.defineProperty(this, _params, {
	      writable: true,
	      value: void 0
	    });
	    Object.defineProperty(this, _extra, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _params)[_params] = params;
	    babelHelpers.classPrivateFieldLooseBase(this, _extra)[_extra] = extra;
	  }
	  getChatId() {
	    return babelHelpers.classPrivateFieldLooseBase(this, _params)[_params].chatId;
	  }
	  getParentChatId() {
	    var _this$getChat;
	    return ((_this$getChat = this.getChat()) == null ? void 0 : _this$getChat.parent_chat_id) || 0;
	  }
	  getChat() {
	    var _babelHelpers$classPr;
	    const chatId = this.getChatId();
	    return (_babelHelpers$classPr = babelHelpers.classPrivateFieldLooseBase(this, _params)[_params].chat) == null ? void 0 : _babelHelpers$classPr[chatId];
	  }
	  getChatType() {
	    var _chat$type;
	    const chat = this.getChat();
	    return (_chat$type = chat == null ? void 0 : chat.type) != null ? _chat$type : '';
	  }
	  getRecentTypes() {
	    return babelHelpers.classPrivateFieldLooseBase(this, _params)[_params].recentConfig.sections;
	  }
	  isLinesChat() {
	    return Boolean(babelHelpers.classPrivateFieldLooseBase(this, _params)[_params].lines);
	  }
	  isCommentChat() {
	    return this.getChatType() === im_v2_const.ChatType.comment;
	  }
	  isChannelChat() {
	    return im_v2_lib_channel.ChannelManager.channelTypes.has(this.getChatType());
	  }
	  isUserInChat() {
	    const chatUsers = babelHelpers.classPrivateFieldLooseBase(this, _params)[_params].userInChat[this.getChatId()];
	    if (!chatUsers || this.isChannelListEvent()) {
	      return true;
	    }
	    return chatUsers.includes(im_v2_application_core.Core.getUserId());
	  }
	  isChannelListEvent() {
	    return this.isChannelChat() && babelHelpers.classPrivateFieldLooseBase(this, _extra)[_extra].is_shared_event;
	  }
	  needToSkipMessageEvent() {
	    return this.isLinesChat() || this.isCommentChat() || !this.isUserInChat();
	  }
	  getAddActions() {
	    const recentTypes = this.getRecentTypes();
	    return recentTypes.map(recentType => {
	      return ActionNameByRecentType[recentType];
	    });
	  }
	}

	var _params$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("params");
	var _setUsers$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("setUsers");
	var _setFiles$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("setFiles");
	var _setMessageChat$1 = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("setMessageChat");
	var _setMessage = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("setMessage");
	class RecentUpdateManager {
	  constructor(params) {
	    Object.defineProperty(this, _setMessage, {
	      value: _setMessage2
	    });
	    Object.defineProperty(this, _setMessageChat$1, {
	      value: _setMessageChat2$1
	    });
	    Object.defineProperty(this, _setFiles$1, {
	      value: _setFiles2$1
	    });
	    Object.defineProperty(this, _setUsers$1, {
	      value: _setUsers2$1
	    });
	    Object.defineProperty(this, _params$1, {
	      writable: true,
	      value: void 0
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _params$1)[_params$1] = params;
	  }
	  setLastMessageInfo() {
	    babelHelpers.classPrivateFieldLooseBase(this, _setMessageChat$1)[_setMessageChat$1]();
	    babelHelpers.classPrivateFieldLooseBase(this, _setUsers$1)[_setUsers$1]();
	    babelHelpers.classPrivateFieldLooseBase(this, _setFiles$1)[_setFiles$1]();
	    babelHelpers.classPrivateFieldLooseBase(this, _setMessage)[_setMessage]();
	  }
	  getDialogId() {
	    return babelHelpers.classPrivateFieldLooseBase(this, _params$1)[_params$1].chat.dialogId;
	  }
	  getLastMessageId() {
	    const [lastMessage] = babelHelpers.classPrivateFieldLooseBase(this, _params$1)[_params$1].messages;
	    return lastMessage.id;
	  }
	}
	function _setUsers2$1() {
	  const userManager = new im_v2_lib_user.UserManager();
	  userManager.setUsersToModel(babelHelpers.classPrivateFieldLooseBase(this, _params$1)[_params$1].users);
	}
	function _setFiles2$1() {
	  im_v2_application_core.Core.getStore().dispatch('files/set', babelHelpers.classPrivateFieldLooseBase(this, _params$1)[_params$1].files);
	}
	function _setMessageChat2$1() {
	  const chat = {
	    ...babelHelpers.classPrivateFieldLooseBase(this, _params$1)[_params$1].chat,
	    counter: babelHelpers.classPrivateFieldLooseBase(this, _params$1)[_params$1].counter,
	    dialogId: this.getDialogId()
	  };
	  im_v2_application_core.Core.getStore().dispatch('chats/set', chat);
	}
	function _setMessage2() {
	  const [lastChannelPost] = babelHelpers.classPrivateFieldLooseBase(this, _params$1)[_params$1].messages;
	  im_v2_application_core.Core.getStore().dispatch('messages/store', lastChannelPost);
	}

	var _deleteLastMessage = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("deleteLastMessage");
	var _updateRecentForMessageDelete = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("updateRecentForMessageDelete");
	// noinspection JSUnusedGlobalSymbols
	class RecentPullHandler {
	  constructor() {
	    Object.defineProperty(this, _updateRecentForMessageDelete, {
	      value: _updateRecentForMessageDelete2
	    });
	    Object.defineProperty(this, _deleteLastMessage, {
	      value: _deleteLastMessage2
	    });
	  }
	  getModuleId() {
	    return 'im';
	  }
	  handleMessage(params, extra) {
	    this.handleMessageAdd(params, extra);
	  }
	  handleMessageChat(params, extra) {
	    this.handleMessageAdd(params, extra);
	  }
	  handleMessageAdd(params, extra) {
	    const manager = new NewMessageManager(params, extra);
	    if (manager.needToSkipMessageEvent(params)) {
	      return;
	    }
	    im_v2_lib_logger.Logger.warn('RecentPullHandler: handleMessageAdd', params);
	    const newRecentItem = {
	      id: params.dialogId,
	      chatId: params.chatId,
	      messageId: params.message.id
	    };
	    const recentItem = im_v2_application_core.Core.getStore().getters['recent/get'](params.dialogId);
	    if (recentItem) {
	      newRecentItem.isFakeElement = false;
	      newRecentItem.isBirthdayPlaceholder = false;
	      newRecentItem.liked = false;
	    }
	    const addActions = manager.getAddActions();
	    addActions.forEach(actionName => {
	      im_v2_application_core.Core.getStore().dispatch(actionName, newRecentItem);
	    });
	  }
	  handleMessageDeleteV2(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _deleteLastMessage)[_deleteLastMessage](params.dialogId, params.newLastMessage);
	  }
	  handleMessageDeleteComplete(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _deleteLastMessage)[_deleteLastMessage](params.dialogId, params.newLastMessage);
	  }
	  handleChatUnread(params) {
	    im_v2_lib_logger.Logger.warn('RecentPullHandler: handleChatUnread', params);
	    im_v2_application_core.Core.getStore().dispatch('recent/unread', {
	      id: params.dialogId,
	      action: params.active
	    });
	  }
	  handleAddReaction(params) {
	    im_v2_lib_logger.Logger.warn('RecentPullHandler: handleAddReaction', params);
	    const recentItem = im_v2_application_core.Core.getStore().getters['recent/get'](params.dialogId);
	    if (!recentItem) {
	      return;
	    }
	    const chatIsOpened = im_v2_application_core.Core.getStore().getters['application/isChatOpen'](params.dialogId);
	    if (chatIsOpened) {
	      return;
	    }
	    const message = im_v2_application_core.Core.getStore().getters['recent/getMessage'](params.dialogId);
	    const isOwnLike = im_v2_application_core.Core.getUserId() === params.userId;
	    const isOwnLastMessage = im_v2_application_core.Core.getUserId() === message.authorId;
	    if (isOwnLike || !isOwnLastMessage) {
	      return;
	    }
	    im_v2_application_core.Core.getStore().dispatch('recent/like', {
	      id: params.dialogId,
	      messageId: params.actualReactions.reaction.messageId,
	      liked: true
	    });
	  }
	  handleChatPin(params) {
	    im_v2_lib_logger.Logger.warn('RecentPullHandler: handleChatPin', params);
	    const recentItem = im_v2_application_core.Core.getStore().getters['recent/get'](params.dialogId);
	    if (!recentItem) {
	      return;
	    }
	    im_v2_application_core.Core.getStore().dispatch('recent/pin', {
	      id: params.dialogId,
	      action: params.active
	    });
	  }
	  handleChatHide(params) {
	    im_v2_lib_logger.Logger.warn('RecentPullHandler: handleChatHide', params);
	    const recentItem = im_v2_application_core.Core.getStore().getters['recent/get'](params.dialogId);
	    if (!recentItem) {
	      return;
	    }
	    im_v2_application_core.Core.getStore().dispatch('recent/delete', {
	      id: params.dialogId
	    });
	  }
	  handleChatUserLeave(params) {
	    im_v2_lib_logger.Logger.warn('RecentPullHandler: handleChatUserLeave', params);
	    const recentItem = im_v2_application_core.Core.getStore().getters['recent/get'](params.dialogId);
	    if (!recentItem || params.userId !== im_v2_application_core.Core.getUserId()) {
	      return;
	    }
	    im_v2_application_core.Core.getStore().dispatch('recent/delete', {
	      id: params.dialogId
	    });
	  }
	  handleUserInvite(params) {
	    var _params$invited;
	    im_v2_lib_logger.Logger.warn('RecentPullHandler: handleUserInvite', params);
	    const messageId = im_v2_lib_utils.Utils.text.getUuidV4();
	    im_v2_application_core.Core.getStore().dispatch('messages/store', {
	      id: messageId,
	      date: params.date
	    });
	    im_v2_application_core.Core.getStore().dispatch('recent/setRecent', {
	      id: params.user.id,
	      invited: (_params$invited = params.invited) != null ? _params$invited : false,
	      isFakeElement: true,
	      messageId
	    });
	  }
	  handleUserShowInRecent(params) {
	    im_v2_lib_logger.Logger.warn('RecentPullHandler: handleUserShowInRecent', params);
	    const {
	      items
	    } = params;
	    items.forEach(item => {
	      const messageId = im_v2_lib_utils.Utils.text.getUuidV4();
	      im_v2_application_core.Core.getStore().dispatch('messages/store', {
	        id: messageId,
	        date: item.date
	      });
	      im_v2_application_core.Core.getStore().dispatch('recent/setRecent', {
	        id: item.user.id,
	        messageId
	      });
	    });
	  }
	  handleRecentUpdate(params) {
	    im_v2_lib_logger.Logger.warn('RecentPullHandler: handleRecentUpdate', params);
	    const manager = new RecentUpdateManager(params);
	    manager.setLastMessageInfo();
	    const newRecentItem = {
	      id: manager.getDialogId(),
	      messageId: manager.getLastMessageId(),
	      lastActivityDate: params.lastActivityDate
	    };
	    im_v2_application_core.Core.getStore().dispatch('recent/setRecent', newRecentItem);
	  }
	}
	function _deleteLastMessage2(dialogId, newLastMessage) {
	  const lastMessageWasDeleted = Boolean(newLastMessage);
	  if (lastMessageWasDeleted) {
	    babelHelpers.classPrivateFieldLooseBase(this, _updateRecentForMessageDelete)[_updateRecentForMessageDelete](dialogId, newLastMessage.id);
	  }
	}
	function _updateRecentForMessageDelete2(dialogId, newLastMessageId) {
	  if (!newLastMessageId) {
	    im_v2_application_core.Core.getStore().dispatch('recent/delete', {
	      id: dialogId
	    });
	    return;
	  }
	  im_v2_application_core.Core.getStore().dispatch('recent/update', {
	    id: dialogId,
	    fields: {
	      messageId: newLastMessageId
	    }
	  });
	}

	class NotificationPullHandler {
	  constructor() {
	    this.store = im_v2_application_core.Core.getStore();
	    this.userManager = new im_v2_lib_user.UserManager();
	    this.updateCounterDebounced = main_core.Runtime.debounce(this.updateCounter, 1500, this);
	  }
	  getModuleId() {
	    return 'im';
	  }
	  getSubscriptionType() {
	    return 'server';
	  }
	  handleNotifyAdd(params) {
	    if (params.onlyFlash === true) {
	      return;
	    }
	    this.userManager.setUsersToModel(params.users);
	    this.store.dispatch('notifications/set', params);
	    this.updateCounterDebounced(params.counter);
	  }
	  handleNotifyConfirm(params) {
	    this.store.dispatch('notifications/delete', {
	      id: params.id
	    });
	    this.updateCounterDebounced(params.counter);
	  }
	  handleNotifyRead(params) {
	    params.list.forEach(id => {
	      this.store.dispatch('notifications/read', {
	        ids: [id],
	        read: true
	      });
	    });
	    this.updateCounterDebounced(params.counter);
	  }
	  handleNotifyUnread(params) {
	    params.list.forEach(id => {
	      this.store.dispatch('notifications/read', {
	        ids: [id],
	        read: false
	      });
	    });
	    this.updateCounterDebounced(params.counter);
	  }
	  handleNotifyReadAll() {
	    void this.store.dispatch('notifications/readAll');
	  }
	  handleNotifyDelete(params) {
	    const idsToDelete = Object.keys(params.id).map(id => Number.parseInt(id, 10));
	    idsToDelete.forEach(id => {
	      this.store.dispatch('notifications/delete', {
	        id
	      });
	    });
	    this.updateCounterDebounced(params.counter);
	  }
	  updateCounter(counter) {
	    this.store.dispatch('notifications/setCounter', counter);
	  }
	}

	class SidebarPullHandler {
	  constructor() {
	    this.store = im_v2_application_core.Core.getStore();
	    this.userManager = new im_v2_lib_user.UserManager();
	  }
	  getModuleId() {
	    return 'im';
	  }

	  // region members
	  handleChatUserAdd(params) {
	    if (this.getMembersCountFromStore(params.chatId) === 0) {
	      return;
	    }
	    void this.userManager.setUsersToModel(Object.values(params.users));
	    void this.store.dispatch('sidebar/members/set', {
	      chatId: params.chatId,
	      users: params.newUsers
	    });
	  }
	  handleChatUserLeave(params) {
	    if (this.getMembersCountFromStore(params.chatId) === 0) {
	      return;
	    }
	    void this.store.dispatch('sidebar/members/delete', {
	      chatId: params.chatId,
	      userId: params.userId
	    });
	  }
	  // endregion

	  // region task
	  handleTaskAdd(params) {
	    if (!this.isSidebarInited(params.link.chatId)) {
	      return;
	    }
	    void this.userManager.setUsersToModel(params.users);
	    void this.store.dispatch('sidebar/tasks/set', {
	      chatId: params.link.chatId,
	      tasks: [params.link]
	    });
	  }
	  handleTaskUpdate(params, extra) {
	    this.handleTaskAdd(params, extra);
	  }
	  handleTaskDelete(params) {
	    if (!this.isSidebarInited(params.chatId)) {
	      return;
	    }
	    void this.store.dispatch('sidebar/tasks/delete', {
	      chatId: params.chatId,
	      id: params.linkId
	    });
	  }
	  // endregion

	  // region meetings
	  handleCalendarAdd(params) {
	    if (!this.isSidebarInited(params.link.chatId)) {
	      return;
	    }
	    void this.userManager.setUsersToModel(params.users);
	    void this.store.dispatch('sidebar/meetings/set', {
	      chatId: params.link.chatId,
	      meetings: [params.link]
	    });
	  }
	  handleCalendarUpdate(params, extra) {
	    this.handleCalendarAdd(params, extra);
	  }
	  handleCalendarDelete(params) {
	    if (!this.isSidebarInited(params.chatId)) {
	      return;
	    }
	    void this.store.dispatch('sidebar/meetings/delete', {
	      chatId: params.chatId,
	      id: params.linkId
	    });
	  }
	  // endregion

	  // region links
	  handleUrlAdd(params) {
	    if (!this.isSidebarInited(params.link.chatId)) {
	      return;
	    }
	    void this.userManager.setUsersToModel(params.users);
	    void this.store.dispatch('sidebar/links/set', {
	      chatId: params.link.chatId,
	      links: [params.link]
	    });
	    const counter = this.store.getters['sidebar/links/getCounter'](params.link.chatId);
	    void this.store.dispatch('sidebar/links/setCounter', {
	      chatId: params.link.chatId,
	      counter: counter + 1
	    });
	  }
	  handleUrlDelete(params) {
	    if (!this.isSidebarInited(params.chatId)) {
	      return;
	    }
	    void this.store.dispatch('sidebar/links/delete', {
	      chatId: params.chatId,
	      id: params.linkId
	    });
	  }
	  // endregion

	  // region favorite
	  handleMessageFavoriteAdd(params) {
	    if (!this.isSidebarInited(params.link.chatId)) {
	      return;
	    }
	    void this.userManager.setUsersToModel(params.users);
	    void this.store.dispatch('files/set', params.files);
	    void this.store.dispatch('messages/store', [params.link.message]);
	    void this.store.dispatch('sidebar/favorites/set', {
	      chatId: params.link.chatId,
	      favorites: [params.link]
	    });
	    const counter = this.store.getters['sidebar/favorites/getCounter'](params.link.chatId);
	    void this.store.dispatch('sidebar/favorites/setCounter', {
	      chatId: params.link.chatId,
	      counter: counter + 1
	    });
	  }
	  handleMessageFavoriteDelete(params) {
	    if (!this.isSidebarInited(params.chatId)) {
	      return;
	    }
	    void this.store.dispatch('sidebar/favorites/delete', {
	      chatId: params.chatId,
	      id: params.linkId
	    });
	  }
	  // endregion

	  // region files
	  handleFileAdd(params) {
	    var _params$link$group;
	    if (!this.isSidebarInited(params.link.chatId)) {
	      return;
	    }
	    void this.userManager.setUsersToModel(params.users);
	    void this.store.dispatch('files/set', params.files);
	    const group = (_params$link$group = params.link.group) != null ? _params$link$group : im_v2_const.SidebarDetailBlock.fileUnsorted;
	    void this.store.dispatch('sidebar/files/set', {
	      chatId: params.link.chatId,
	      files: [params.link],
	      group
	    });
	  }
	  handleFileDelete(params) {
	    var _params$linkId;
	    const chatId = main_core.Type.isNumber(params.chatId) ? params.chatId : Number.parseInt(params.chatId, 10);
	    if (!this.isSidebarInited(chatId)) {
	      return;
	    }
	    const sidebarFileId = (_params$linkId = params.linkId) != null ? _params$linkId : params.fileId;
	    void this.store.dispatch('sidebar/files/delete', {
	      chatId,
	      id: sidebarFileId
	    });
	  }
	  // endregion

	  // region support24

	  handleChangeMultidialogSessionsLimit(params) {
	    void this.store.dispatch('sidebar/multidialog/setOpenSessionsLimit', params.limit);
	  }
	  handleAddMultidialog(params) {
	    const {
	      multidialog,
	      count
	    } = params;
	    const isSupport = multidialog.isSupport;
	    if (!isSupport) {
	      return;
	    }
	    void this.store.dispatch('sidebar/multidialog/setChatsCount', count);
	    void this.store.dispatch('sidebar/multidialog/addMultidialogs', [multidialog]);
	  }
	  handleReadMessageChat(params) {
	    this.deleteUnreadSupportChats(params);
	  }
	  handleReadMessage(params) {
	    this.deleteUnreadSupportChats(params);
	  }
	  handleChangeMultidialogStatus(params) {
	    const {
	      bot,
	      chat,
	      multidialog
	    } = params;
	    const isSupport = multidialog.isSupport;
	    if (!isSupport) {
	      return;
	    }
	    if (chat) {
	      void this.store.dispatch('chats/set', chat);
	    }
	    if (bot) {
	      void this.userManager.setUsersToModel(bot);
	    }
	    void this.store.dispatch('sidebar/multidialog/addMultidialogs', [multidialog]);
	  }
	  handleMessage(params) {
	    this.setUnreadSupportTickets(params.multidialog);
	  }
	  handleChatUnread(params) {
	    const {
	      chatId,
	      dialogId
	    } = params;
	    const isSupport = this.store.getters['sidebar/multidialog/isSupport'](dialogId);
	    const isInited = this.store.getters['sidebar/multidialog/isInited'];
	    if (isSupport && isInited) {
	      void this.store.dispatch('sidebar/multidialog/setUnreadChats', [chatId]);
	    }
	  }
	  // endregion

	  // region files unsorted and support24
	  handleMessageChat(params) {
	    // handle new files while migration is not finished.
	    this.setFiles(params);

	    // handle new unread chats.
	    this.setUnreadSupportTickets(params.multidialog);
	  }
	  // endregion

	  deleteUnreadSupportChats(params) {
	    const notCounter = params.counter === 0;
	    if (notCounter) {
	      void this.store.dispatch('sidebar/multidialog/deleteUnreadChats', params.chatId);
	    }
	  }
	  setUnreadSupportTickets(multidialog) {
	    if (!multidialog) {
	      return;
	    }
	    const oldMultidialog = this.store.getters['sidebar/multidialog/get'](multidialog.chatId);
	    const status = (oldMultidialog == null ? void 0 : oldMultidialog.status) || multidialog.status;
	    void this.store.dispatch('sidebar/multidialog/addMultidialogs', [{
	      ...multidialog,
	      status
	    }]);
	    void this.store.dispatch('sidebar/multidialog/setUnreadChats', [multidialog.chatId]);
	  }
	  setFiles(params) {
	    const {
	      chatId,
	      users,
	      files
	    } = params;
	    if (!this.isSidebarInited(chatId) || this.areFilesMigrated()) {
	      return;
	    }
	    void this.userManager.setUsersToModel(Object.values(users));
	    void this.store.dispatch('files/set', Object.values(files));
	    Object.values(files).forEach(file => {
	      var _file$group;
	      const group = (_file$group = file.group) != null ? _file$group : im_v2_const.SidebarDetailBlock.fileUnsorted;
	      void this.store.dispatch('sidebar/files/set', {
	        chatId: file.chatId,
	        files: [file],
	        group
	      });
	    });
	  }
	  isSidebarInited(chatId) {
	    return this.store.getters['sidebar/isInited'](chatId);
	  }
	  areFilesMigrated() {
	    return this.store.state.sidebar.isFilesMigrated;
	  }
	  getMembersCountFromStore(chatId) {
	    return this.store.getters['sidebar/members/getSize'](chatId);
	  }
	}

	var _shouldShowNotification = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("shouldShowNotification");
	var _shouldShowLinesNotification = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("shouldShowLinesNotification");
	var _isChatOpened = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isChatOpened");
	var _isLinesChatOpened = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isLinesChatOpened");
	var _isImportantMessage = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isImportantMessage");
	var _shouldShowToUser = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("shouldShowToUser");
	var _isUserDnd = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("isUserDnd");
	var _desktopWillShowNotification = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("desktopWillShowNotification");
	var _flashDesktopIcon = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("flashDesktopIcon");
	var _playOpenedChatMessageSound = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("playOpenedChatMessageSound");
	var _playMessageSound = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("playMessageSound");
	var _restoreLastNotificationId = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("restoreLastNotificationId");
	var _updateLastNotificationId = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("updateLastNotificationId");
	var _setCurrentUserStatus = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("setCurrentUserStatus");
	class NotifierPullHandler {
	  constructor() {
	    Object.defineProperty(this, _setCurrentUserStatus, {
	      value: _setCurrentUserStatus2
	    });
	    Object.defineProperty(this, _updateLastNotificationId, {
	      value: _updateLastNotificationId2
	    });
	    Object.defineProperty(this, _restoreLastNotificationId, {
	      value: _restoreLastNotificationId2
	    });
	    Object.defineProperty(this, _playMessageSound, {
	      value: _playMessageSound2
	    });
	    Object.defineProperty(this, _playOpenedChatMessageSound, {
	      value: _playOpenedChatMessageSound2
	    });
	    Object.defineProperty(this, _flashDesktopIcon, {
	      value: _flashDesktopIcon2
	    });
	    Object.defineProperty(this, _desktopWillShowNotification, {
	      value: _desktopWillShowNotification2
	    });
	    Object.defineProperty(this, _isUserDnd, {
	      value: _isUserDnd2
	    });
	    Object.defineProperty(this, _shouldShowToUser, {
	      value: _shouldShowToUser2
	    });
	    Object.defineProperty(this, _isImportantMessage, {
	      value: _isImportantMessage2
	    });
	    Object.defineProperty(this, _isLinesChatOpened, {
	      value: _isLinesChatOpened2
	    });
	    Object.defineProperty(this, _isChatOpened, {
	      value: _isChatOpened2
	    });
	    Object.defineProperty(this, _shouldShowLinesNotification, {
	      value: _shouldShowLinesNotification2
	    });
	    Object.defineProperty(this, _shouldShowNotification, {
	      value: _shouldShowNotification2
	    });
	    this.lastNotificationId = 0;
	    this.store = im_v2_application_core.Core.getStore();
	    babelHelpers.classPrivateFieldLooseBase(this, _setCurrentUserStatus)[_setCurrentUserStatus]();
	    babelHelpers.classPrivateFieldLooseBase(this, _restoreLastNotificationId)[_restoreLastNotificationId]();
	  }
	  getModuleId() {
	    return 'im';
	  }
	  handleMessage(params, extraData) {
	    this.handleMessageAdd(params, extraData);
	  }
	  handleMessageChat(params, extraData) {
	    this.handleMessageAdd(params, extraData);
	  }
	  handleMessageAdd(params, extraData) {
	    if (!babelHelpers.classPrivateFieldLooseBase(this, _shouldShowNotification)[_shouldShowNotification](params, extraData)) {
	      return;
	    }
	    if (babelHelpers.classPrivateFieldLooseBase(this, _isChatOpened)[_isChatOpened](params.dialogId)) {
	      babelHelpers.classPrivateFieldLooseBase(this, _playOpenedChatMessageSound)[_playOpenedChatMessageSound](params);
	      return;
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _playMessageSound)[_playMessageSound](params);
	    babelHelpers.classPrivateFieldLooseBase(this, _flashDesktopIcon)[_flashDesktopIcon]();
	    const message = this.store.getters['messages/getById'](params.message.id);
	    const dialog = this.store.getters['chats/get'](params.dialogId, true);
	    const user = this.store.getters['users/get'](message.authorId);
	    im_v2_lib_messageNotifier.MessageNotifierManager.getInstance().showMessage({
	      message,
	      dialog,
	      user,
	      lines: Boolean(params.lines)
	    });
	    babelHelpers.classPrivateFieldLooseBase(this, _updateLastNotificationId)[_updateLastNotificationId](params.message.id);
	  }
	  handleNotifyAdd(params, extraData) {
	    if (extraData.server_time_ago > 10) {
	      im_v2_lib_logger.Logger.warn('NotifierPullHandler: notification arrived to the user 30 seconds after it was actually sent, ignore notification');
	      return;
	    }
	    if (params.id <= this.lastNotificationId) {
	      im_v2_lib_logger.Logger.warn('NotifierPullHandler: new notification id is smaller than lastNotificationId');
	      return;
	    }
	    if (params.onlyFlash === true || babelHelpers.classPrivateFieldLooseBase(this, _isUserDnd)[_isUserDnd]() || babelHelpers.classPrivateFieldLooseBase(this, _desktopWillShowNotification)[_desktopWillShowNotification]() || im_v2_lib_call.CallManager.getInstance().hasCurrentCall()) {
	      return;
	    }
	    if (document.hasFocus()) {
	      const areNotificationsOpen = this.store.getters['application/areNotificationsOpen'];
	      if (areNotificationsOpen) {
	        return;
	      }
	    }
	    const notification = this.store.getters['notifications/getById'](params.id);
	    const user = this.store.getters['users/get'](params.userId);
	    if (params.silent !== 'Y') {
	      im_v2_lib_soundNotification.SoundNotificationManager.getInstance().playOnce(im_v2_const.SoundType.reminder);
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _flashDesktopIcon)[_flashDesktopIcon]();
	    im_v2_lib_messageNotifier.MessageNotifierManager.getInstance().showNotification(notification, user);
	    babelHelpers.classPrivateFieldLooseBase(this, _updateLastNotificationId)[_updateLastNotificationId](params.id);
	  }
	}
	function _shouldShowNotification2(params, extraData) {
	  var _params$message, _params$message$param;
	  if (extraData.server_time_ago > 10) {
	    im_v2_lib_logger.Logger.warn('NotifierPullHandler: message arrived to the user 30 seconds after it was actually sent, ignore message');
	    return false;
	  }
	  if (params.message.id <= this.lastNotificationId) {
	    im_v2_lib_logger.Logger.warn('NotifierPullHandler: new message id is smaller than lastNotificationId');
	    return false;
	  }
	  if (im_v2_application_core.Core.getUserId() === params.message.senderId) {
	    return false;
	  }
	  if (params.lines && !babelHelpers.classPrivateFieldLooseBase(this, _shouldShowLinesNotification)[_shouldShowLinesNotification](params)) {
	    return false;
	  }
	  const messageWithoutNotification = !params.notify || ((_params$message = params.message) == null ? void 0 : (_params$message$param = _params$message.params) == null ? void 0 : _params$message$param.NOTIFY) === 'N';
	  if (messageWithoutNotification || !babelHelpers.classPrivateFieldLooseBase(this, _shouldShowToUser)[_shouldShowToUser](params) || babelHelpers.classPrivateFieldLooseBase(this, _desktopWillShowNotification)[_desktopWillShowNotification]()) {
	    return false;
	  }
	  const callIsActive = im_v2_lib_call.CallManager.getInstance().hasCurrentCall();
	  if (callIsActive && im_v2_lib_call.CallManager.getInstance().getCurrentCallDialogId() !== params.dialogId.toString()) {
	    return false;
	  }
	  const screenSharingIsActive = im_v2_lib_call.CallManager.getInstance().hasCurrentScreenSharing();
	  if (screenSharingIsActive) {
	    return false;
	  }
	  return true;
	}
	function _shouldShowLinesNotification2(params) {
	  if (babelHelpers.classPrivateFieldLooseBase(this, _isLinesChatOpened)[_isLinesChatOpened](params.dialogId)) {
	    return false;
	  }
	  const authorId = params.message.senderId;
	  if (authorId > 0 && params.users[authorId].type !== im_v2_const.UserType.extranet) {
	    return true;
	  }
	  const counter = this.store.getters['counters/getSpecificLinesCounter'](params.chatId);
	  return counter === 0;
	}
	function _isChatOpened2(dialogId) {
	  const isChatOpen = this.store.getters['application/isChatOpen'](dialogId);
	  return Boolean(document.hasFocus() && isChatOpen);
	}
	function _isLinesChatOpened2(dialogId) {
	  const isLinesChatOpen = this.store.getters['application/isLinesChatOpen'](dialogId);
	  return Boolean(document.hasFocus() && isLinesChatOpen);
	}
	function _isImportantMessage2(params) {
	  const {
	    message
	  } = params;
	  return message.isImportant || message.importantFor.includes(im_v2_application_core.Core.getUserId());
	}
	function _shouldShowToUser2(params) {
	  if (babelHelpers.classPrivateFieldLooseBase(this, _isImportantMessage)[_isImportantMessage](params)) {
	    return true;
	  }
	  const dialog = this.store.getters['chats/get'](params.dialogId, true);
	  const isMuted = dialog.muteList.includes(im_v2_application_core.Core.getUserId());
	  return !babelHelpers.classPrivateFieldLooseBase(this, _isUserDnd)[_isUserDnd]() && !isMuted;
	}
	function _isUserDnd2() {
	  const status = this.store.getters['application/settings/get'](im_v2_const.Settings.user.status);
	  return status === im_v2_const.UserStatus.dnd;
	}
	function _desktopWillShowNotification2() {
	  const isDesktopChatWindow = im_v2_lib_desktop.DesktopManager.isChatWindow();
	  return !isDesktopChatWindow && im_v2_lib_desktop.DesktopManager.getInstance().isDesktopActive();
	}
	function _flashDesktopIcon2() {
	  if (!im_v2_lib_desktop.DesktopManager.isDesktop()) {
	    return;
	  }
	  im_v2_lib_desktopApi.DesktopApi.flashIcon();
	}
	function _playOpenedChatMessageSound2(params) {
	  if (babelHelpers.classPrivateFieldLooseBase(this, _isImportantMessage)[_isImportantMessage](params)) {
	    im_v2_lib_soundNotification.SoundNotificationManager.getInstance().forcePlayOnce(im_v2_const.SoundType.newMessage2);
	    return;
	  }
	  im_v2_lib_soundNotification.SoundNotificationManager.getInstance().playOnce(im_v2_const.SoundType.newMessage2);
	}
	function _playMessageSound2(params) {
	  if (babelHelpers.classPrivateFieldLooseBase(this, _isImportantMessage)[_isImportantMessage](params)) {
	    im_v2_lib_soundNotification.SoundNotificationManager.getInstance().forcePlayOnce(im_v2_const.SoundType.newMessage1);
	    return;
	  }
	  im_v2_lib_soundNotification.SoundNotificationManager.getInstance().playOnce(im_v2_const.SoundType.newMessage1);
	}
	function _restoreLastNotificationId2() {
	  const rawLastNotificationId = im_v2_lib_localStorage.LocalStorageManager.getInstance().get(im_v2_const.LocalStorageKey.lastNotificationId, 0);
	  this.lastNotificationId = Number.parseInt(rawLastNotificationId, 10);
	}
	function _updateLastNotificationId2(notificationId) {
	  const WRITE_TO_STORAGE_TIMEOUT = 2000;
	  this.lastNotificationId = notificationId;
	  clearTimeout(this.writeToStorageTimeout);
	  this.writeToStorageTimeout = setTimeout(() => {
	    im_v2_lib_localStorage.LocalStorageManager.getInstance().set(im_v2_const.LocalStorageKey.lastNotificationId, notificationId);
	  }, WRITE_TO_STORAGE_TIMEOUT);
	}
	function _setCurrentUserStatus2() {
	  var _applicationData$sett;
	  const applicationData = im_v2_application_core.Core.getApplicationData();
	  if (!((_applicationData$sett = applicationData.settings) != null && _applicationData$sett.status)) {
	    return;
	  }
	  im_v2_application_core.Core.getStore().dispatch('application/settings/set', {
	    [im_v2_const.Settings.user.status]: applicationData.settings.status
	  });
	}

	class OnlinePullHandler {
	  constructor() {
	    this.store = im_v2_application_core.Core.getStore();
	  }
	  getModuleId() {
	    return 'online';
	  }
	  getSubscriptionType() {
	    return 'online';
	  }
	  handleUserStatus(params) {
	    const currentUserId = im_v2_application_core.Core.getUserId();
	    if (main_core.Type.isPlainObject(params.users[currentUserId])) {
	      const {
	        status
	      } = params.users[currentUserId];
	      this.store.dispatch('application/settings/set', {
	        status
	      });
	    }
	    Object.values(params.users).forEach(userInfo => {
	      this.store.dispatch('users/update', {
	        id: userInfo.id,
	        fields: {
	          lastActivityDate: userInfo.last_activity_date
	        }
	      });
	    });
	  }
	}

	var _handleCounters = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("handleCounters");
	var _getNewCounter = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("getNewCounter");
	var _updateCommentCounter = /*#__PURE__*/babelHelpers.classPrivateFieldLooseKey("updateCommentCounter");
	class CounterPullHandler {
	  constructor() {
	    Object.defineProperty(this, _updateCommentCounter, {
	      value: _updateCommentCounter2
	    });
	    Object.defineProperty(this, _getNewCounter, {
	      value: _getNewCounter2
	    });
	    Object.defineProperty(this, _handleCounters, {
	      value: _handleCounters2
	    });
	    this.store = im_v2_application_core.Core.getStore();
	  }
	  getModuleId() {
	    return 'im';
	  }
	  handleMessage(params, extra) {
	    this.handleMessageAdd(params, extra);
	  }
	  handleMessageChat(params, extra) {
	    this.handleMessageAdd(params, extra);
	  }
	  handleMessageAdd(params, extra) {
	    const manager = new im_v2_provider_pull.NewMessageManager(params, extra);
	    if (!manager.isCommentChat()) {
	      return;
	    }
	    babelHelpers.classPrivateFieldLooseBase(this, _updateCommentCounter)[_updateCommentCounter]({
	      channelChatId: manager.getParentChatId(),
	      commentChatId: manager.getChatId(),
	      commentCounter: params.counter
	    });
	  }
	  handleMessageDeleteComplete(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _handleCounters)[_handleCounters](params);
	  }
	  handleReadMessage(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _handleCounters)[_handleCounters](params);
	  }
	  handleReadMessageChat(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _handleCounters)[_handleCounters](params);
	  }
	  handleUnreadMessage(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _handleCounters)[_handleCounters](params);
	  }
	  handleUnreadMessageChat(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _handleCounters)[_handleCounters](params);
	  }
	  handleChatUnread(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _handleCounters)[_handleCounters]({
	      ...params,
	      unread: params.active
	    });
	  }
	  handleChatMuteNotify(params) {
	    babelHelpers.classPrivateFieldLooseBase(this, _handleCounters)[_handleCounters](params);
	  }
	}
	function _handleCounters2(params) {
	  const {
	    chatId,
	    dialogId,
	    counter,
	    counterType = im_v2_const.CounterType.chat,
	    parentChatId = 0
	  } = params;
	  if (counterType === im_v2_const.CounterType.openline) {
	    return;
	  }
	  im_v2_lib_logger.Logger.warn('CounterPullHandler: handleCounters:', params);
	  if (counterType === im_v2_const.CounterType.comment) {
	    babelHelpers.classPrivateFieldLooseBase(this, _updateCommentCounter)[_updateCommentCounter]({
	      channelChatId: parentChatId,
	      commentChatId: chatId,
	      commentCounter: counter
	    });
	    return;
	  }
	  const recentItem = im_v2_application_core.Core.getStore().getters['recent/get'](dialogId);
	  // for now existing common chats counters are stored in corresponding chat model objects
	  if (recentItem) {
	    return;
	  }
	  const newCounter = babelHelpers.classPrivateFieldLooseBase(this, _getNewCounter)[_getNewCounter](params);
	  // collab counters are stored in two structures - for common chats and collabs
	  // because collab counters are included in both total chat counter and total collab counter
	  if (counterType === im_v2_const.CounterType.collab) {
	    im_v2_application_core.Core.getStore().dispatch('counters/setUnloadedCollabCounters', {
	      [chatId]: newCounter
	    });
	  }
	  im_v2_application_core.Core.getStore().dispatch('counters/setUnloadedChatCounters', {
	    [chatId]: newCounter
	  });
	}
	function _getNewCounter2(params) {
	  const {
	    counter,
	    muted,
	    unread
	  } = params;
	  let newCounter = 0;
	  if (muted) {
	    newCounter = 0;
	  } else if (unread && counter === 0) {
	    newCounter = 1;
	  } else if (unread && counter > 0) {
	    newCounter = counter;
	  } else if (!unread) {
	    newCounter = counter;
	  }
	  return newCounter;
	}
	function _updateCommentCounter2(payload) {
	  const {
	    channelChatId,
	    commentChatId,
	    commentCounter
	  } = payload;
	  if (main_core.Type.isUndefined(commentCounter)) {
	    return;
	  }
	  const counters = {
	    [channelChatId]: {
	      [commentChatId]: commentCounter
	    }
	  };
	  im_v2_application_core.Core.getStore().dispatch('counters/setCommentCounters', counters);
	}

	class PromotionPullHandler {
	  getModuleId() {
	    return 'im';
	  }
	  handlePromotionUpdated(params) {
	    im_v2_lib_promo.PromoManager.getInstance().onPromotionUpdated(params);
	  }
	}

	class AnchorPullHandler {
	  constructor() {
	    this.store = im_v2_application_core.Core.getStore();
	  }
	  getModuleId() {
	    return 'im';
	  }
	  handleAddAnchor(anchor) {
	    this.store.dispatch('messages/anchors/addAnchor', {
	      anchor
	    });
	  }
	  handleDeleteAnchor(anchor) {
	    this.store.dispatch('messages/anchors/removeAnchor', {
	      anchor
	    });
	  }
	  handleDeleteAllAnchors() {
	    this.store.dispatch('messages/anchors/removeAllAnchors');
	  }
	  handleDeleteChatAnchors(payload) {
	    this.store.dispatch('messages/anchors/removeChatAnchors', {
	      chatId: payload.chatId,
	      userId: payload.userId
	    });
	  }
	}

	exports.BasePullHandler = BasePullHandler;
	exports.RecentPullHandler = RecentPullHandler;
	exports.NotificationPullHandler = NotificationPullHandler;
	exports.SidebarPullHandler = SidebarPullHandler;
	exports.NotifierPullHandler = NotifierPullHandler;
	exports.OnlinePullHandler = OnlinePullHandler;
	exports.CounterPullHandler = CounterPullHandler;
	exports.PromotionPullHandler = PromotionPullHandler;
	exports.AnchorPullHandler = AnchorPullHandler;
	exports.NewMessageManager = NewMessageManager;

}((this.BX.Messenger.v2.Provider.Pull = this.BX.Messenger.v2.Provider.Pull || {}),BX.Messenger.v2.Lib,BX.Messenger.v2.Service,BX.Event,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX.Vue3.Vuex,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX.Messenger.v2.Model,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX.Messenger.v2.Lib,BX,BX.Messenger.v2.Lib,BX.Messenger.v2.Provider.Pull,BX.Messenger.v2.Const,BX.Messenger.v2.Lib,BX.Messenger.v2.Application));
//# sourceMappingURL=registry.bundle.js.map

Youez - 2016 - github.com/yon3zu
LinuXploit