Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/im/provider/pull/dist/ |
Upload File : |
{"version":3,"file":"registry.bundle.js","sources":["../src/base.js","../src/call.js","../src/notifications.js","../src/registry.js"],"sourcesContent":["/**\n * Bitrix Messenger\n * Im base pull commands (Pull Command Handler)\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2020 Bitrix\n */\n\nimport {PullClient} from \"pull.client\";\nimport {VuexBuilderModel} from 'ui.vue.vuex';\nimport {EventType} from \"im.const\";\nimport {Logger} from \"im.lib.logger\";\nimport {EventEmitter} from 'main.core.events';\n\nexport class ImBasePullHandler\n{\n\tstatic create(params = {})\n\t{\n\t\treturn new this(params);\n\t}\n\n\tconstructor(params = {})\n\t{\n\t\tif (typeof params.controller === 'object' && params.controller)\n\t\t{\n\t\t\tthis.controller = params.controller;\n\t\t}\n\t\tif (typeof params.store === 'object' && params.store)\n\t\t{\n\t\t\tthis.store = params.store;\n\t\t}\n\n\t\tthis.option = typeof params.store === 'object' && params.store? params.store: {};\n\n\t\tif (\n\t\t\t!(\n\t\t\t\ttypeof this.option.handlingDialog === 'object'\n\t\t\t\t&& this.option.handlingDialog\n\t\t\t\t&& this.option.handlingDialog.chatId\n\t\t\t\t&& this.option.handlingDialog.dialogId\n\t\t\t)\n\t\t)\n\t\t{\n\t\t\tthis.option.handlingDialog = false;\n\t\t}\n\t}\n\n\tgetModuleId()\n\t{\n\t\treturn 'im';\n\t}\n\n\tgetSubscriptionType()\n\t{\n\t\treturn PullClient.SubscriptionType.Server;\n\t}\n\n\tskipExecute(params, extra = {})\n\t{\n\t\tif (!extra.optionImportant)\n\t\t{\n\t\t\tif (this.option.skip)\n\t\t\t{\n\t\t\t\tLogger.info('Pull: command skipped while loading messages', params);\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (!this.option.handlingDialog)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t}\n\n\t\tif (typeof params.chatId !== 'undefined' || typeof params.dialogId !== 'undefined' )\n\t\t{\n\t\t\tif (\n\t\t\t\ttypeof params.chatId !== 'undefined'\n\t\t\t\t&& parseInt(params.chatId) === parseInt(this.option.handlingDialog.chatId)\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\ttypeof params.dialogId !== 'undefined'\n\t\t\t\t&& params.dialogId.toString() === this.option.handlingDialog.dialogId.toString()\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t}\n\n\t\treturn false;\n\t}\n\n\thandleMessage(params, extra)\n\t{\n\t\tthis.handleMessageAdd(params, extra);\n\t}\n\n\thandleMessageChat(params, extra)\n\t{\n\t\tthis.handleMessageAdd(params, extra);\n\t}\n\n\thandleMessageAdd(params, extra)\n\t{\n\t\tLogger.warn('handleMessageAdd', params);\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tlet collection = this.store.state.messages.collection[params.chatId];\n\t\tif (!collection)\n\t\t{\n\t\t\tcollection = [];\n\t\t}\n\n\t\t//search for message with message id from params\n\t\tconst message = collection.find(element => {\n\t\t\tif (params.message.templateId && element.id === params.message.templateId)\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\treturn element.id === params.message.id;\n\t\t});\n\n\t\t//stop if it's message with 'push' (pseudo push message in mobile)\n\t\tif (message && params.message.push)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (params.chat && params.chat[params.chatId])\n\t\t{\n\t\t\tconst existingChat = this.store.getters['dialogues/getByChatId'](params.chatId);\n\t\t\t//add new chat if there is no one\n\t\t\tif (!existingChat)\n\t\t\t{\n\t\t\t\tconst chatToAdd = Object.assign(\n\t\t\t\t\t{},\n\t\t\t\t\tparams.chat[params.chatId],\n\t\t\t\t\t{dialogId: params.dialogId}\n\t\t\t\t);\n\t\t\t\tthis.store.dispatch('dialogues/set', chatToAdd);\n\t\t\t}\n\t\t\t//otherwise - update it\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.store.dispatch('dialogues/update', {\n\t\t\t\t\tdialogId: params.dialogId,\n\t\t\t\t\tfields: params.chat[params.chatId]\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\t//set users\n\t\tif (params.users)\n\t\t{\n\t\t\tthis.store.dispatch('users/set', VuexBuilderModel.convertToArray(params.users));\n\t\t}\n\n\t\t//set files\n\t\tif (params.files)\n\t\t{\n\t\t\tlet files = this.controller.application.prepareFilesBeforeSave(\n\t\t\t\tVuexBuilderModel.convertToArray(params.files)\n\t\t\t);\n\t\t\tfiles.forEach(file =>\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\tfiles.length === 1\n\t\t\t\t\t&& params.message.templateFileId\n\t\t\t\t\t&& this.store.state.files.index[params.chatId]\n\t\t\t\t\t&& this.store.state.files.index[params.chatId][params.message.templateFileId]\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tthis.store.dispatch('files/update', {\n\t\t\t\t\t\tid: params.message.templateFileId,\n\t\t\t\t\t\tchatId: params.chatId,\n\t\t\t\t\t\tfields: file\n\t\t\t\t\t}).then(() => {\n\t\t\t\t\t\tEventEmitter.emit(EventType.dialog.scrollToBottom, {chatId: params.chatId, cancelIfScrollChange: true});\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.store.dispatch('files/set', file);\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t//if we already have message - update it and scrollToBottom\n\t\tif (message)\n\t\t{\n\t\t\tLogger.warn('New message pull handler: we already have this message', params.message);\n\t\t\tthis.store.dispatch('messages/update', {\n\t\t\t\tid: message.id,\n\t\t\t\tchatId: message.chatId,\n\t\t\t\tfields: {\n\t\t\t\t\t...params.message,\n\t\t\t\t\tsending: false,\n\t\t\t\t\terror: false,\n\t\t\t\t}\n\t\t\t}).then(() => {\n\t\t\t\tif (!params.message.push)\n\t\t\t\t{\n\t\t\t\t\tEventEmitter.emit(EventType.dialog.scrollToBottom, {\n\t\t\t\t\t\tchatId: message.chatId,\n\t\t\t\t\t\tcancelIfScrollChange: params.message.senderId !== this.controller.application.getUserId()\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\t\t//if we dont have message and we have all pages - add new message and send newMessage event (handles scroll stuff)\n\t\t//we dont do anything if we dont have message and there are unloaded messages\n\t\telse if (this.controller.application.isUnreadMessagesLoaded())\n\t\t{\n\t\t\tLogger.warn('New message pull handler: we dont have this message', params.message);\n\t\t\tthis.store.dispatch('messages/setAfter', {\n\t\t\t\t...params.message,\n\t\t\t\tunread: true\n\t\t\t}).then(() => {\n\t\t\t\tif (!params.message.push)\n\t\t\t\t{\n\t\t\t\t\tEventEmitter.emit(EventType.dialog.newMessage, {\n\t\t\t\t\t\tchatId: params.message.chatId,\n\t\t\t\t\t\tmessageId: params.message.id\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t});\n\t\t}\n\n\t\t//stop writing event\n\t\tthis.controller.application.stopOpponentWriting({\n\t\t\tdialogId: params.dialogId,\n\t\t\tuserId: params.message.senderId\n\t\t});\n\n\t\t// if we sent message - read all messages on server and client, set counter to 0\n\t\tif (params.message.senderId === this.controller.application.getUserId())\n\t\t{\n\t\t\tif (\n\t\t\t\tthis.store.state.dialogues.collection[params.dialogId]\n\t\t\t\t&& this.store.state.dialogues.collection[params.dialogId].counter !== 0\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.controller.restClient.callMethod('im.dialog.read', {\n\t\t\t\t\tdialog_id: params.dialogId\n\t\t\t\t}).then(() => {\n\t\t\t\t\tthis.store.dispatch('messages/readMessages', {\n\t\t\t\t\t\tchatId: params.chatId\n\t\t\t\t\t}).then(result => {\n\t\t\t\t\t\tEventEmitter.emit(EventType.dialog.scrollToBottom, {chatId: params.chatId, cancelIfScrollChange: false});\n\t\t\t\t\t\tthis.store.dispatch('dialogues/update', {\n\t\t\t\t\t\t\tdialogId: params.dialogId,\n\t\t\t\t\t\t\tfields: {\n\t\t\t\t\t\t\t\tcounter: 0,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\t//increase the counter if message is not ours\n\t\telse if (params.message.senderId !== this.controller.application.getUserId())\n\t\t{\n\t\t\tthis.store.dispatch('dialogues/increaseCounter', {\n\t\t\t\tdialogId: params.dialogId,\n\t\t\t\tcount: 1,\n\t\t\t});\n\t\t}\n\n\t\t//set new lastMessageId (used for pagination)\n\t\tthis.store.dispatch('dialogues/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: {\n\t\t\t\tlastMessageId: params.message.id\n\t\t\t}\n\t\t});\n\n\t\t//increase total message count\n\t\tthis.store.dispatch('dialogues/increaseMessageCounter', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tcount: 1,\n\t\t});\n\t}\n\n\thandleMessageUpdate(params, extra, command)\n\t{\n\t\tthis.execMessageUpdateOrDelete(params, extra, command);\n\t}\n\n\thandleMessageDelete(params, extra, command)\n\t{\n\t\tthis.execMessageUpdateOrDelete(params, extra, command);\n\t}\n\n\texecMessageUpdateOrDelete(params, extra, command)\n\t{\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.controller.application.stopOpponentWriting({\n\t\t\tdialogId: params.dialogId,\n\t\t\tuserId: params.senderId\n\t\t});\n\n\t\tlet fields = {\n\t\t\tparams: params.params,\n\t\t\tblink: true\n\t\t};\n\t\tif (command === \"messageUpdate\")\n\t\t{\n\t\t\tif (typeof params.textLegacy !== 'undefined')\n\t\t\t{\n\t\t\t\tfields.textLegacy = params.textLegacy;\n\t\t\t}\n\t\t\tif (typeof params.text !== 'undefined')\n\t\t\t{\n\t\t\t\tfields.text = params.text;\n\t\t\t}\n\t\t}\n\n\t\tthis.store.dispatch('messages/update', {\n\t\t\tid: params.id,\n\t\t\tchatId: params.chatId,\n\t\t\tfields\n\t\t}).then(() => {\n\t\t\tEventEmitter.emit(EventType.dialog.scrollToBottom, {chatId: params.chatId, cancelIfScrollChange: true});\n\t\t});\n\t}\n\n\thandleMessageDeleteComplete(params, extra)\n\t{\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('messages/delete', {\n\t\t\tid: params.id,\n\t\t\tchatId: params.chatId,\n\t\t});\n\n\t\tthis.controller.application.stopOpponentWriting({\n\t\t\tdialogId: params.dialogId,\n\t\t\tuserId: params.senderId,\n\t\t\taction: false\n\t\t});\n\t}\n\n\thandleMessageLike(params, extra)\n\t{\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('messages/update', {\n\t\t\tid: params.id,\n\t\t\tchatId: params.chatId,\n\t\t\tfields: {params: {LIKE: params.users}}\n\t\t});\n\t}\n\n\thandleChatOwner(params, extra)\n\t{\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('dialogues/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: {\n\t\t\t\townerId: params.userId,\n\t\t\t}\n\t\t});\n\t}\n\n\thandleChatManagers(params, extra)\n\t{\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('dialogues/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: {\n\t\t\t\tmanagerList: params.list,\n\t\t\t}\n\t\t});\n\t}\n\n\thandleChatUpdateParams(params, extra)\n\t{\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('dialogues/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: params.params\n\t\t});\n\t}\n\n\thandleChatUserAdd(params, extra)\n\t{\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('dialogues/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: {userCounter: params.userCount}\n\t\t});\n\t}\n\n\thandleChatUserLeave(params, extra)\n\t{\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('dialogues/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: {userCounter: params.userCount}\n\t\t});\n\t}\n\n\thandleMessageParamsUpdate(params, extra)\n\t{\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('messages/update', {\n\t\t\tid: params.id,\n\t\t\tchatId: params.chatId,\n\t\t\tfields: {params: params.params}\n\t\t}).then(() => {\n\t\t\tEventEmitter.emit(EventType.dialog.scrollToBottom, {chatId: params.chatId, cancelIfScrollChange: true});\n\t\t});\n\t}\n\n\thandleStartWriting(params, extra)\n\t{\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.controller.application.startOpponentWriting(params);\n\t}\n\n\thandleReadMessage(params, extra)\n\t{\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('messages/readMessages', {\n\t\t\tchatId: params.chatId,\n\t\t\treadId: params.lastId\n\t\t}).then(result => {\n\t\t\tthis.store.dispatch('dialogues/update', {\n\t\t\t\tdialogId: params.dialogId,\n\t\t\t\tfields: {\n\t\t\t\t\tcounter: params.counter,\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\t}\n\n\thandleReadMessageChat(params, extra)\n\t{\n\t\tthis.handleReadMessage(params, extra);\n\t}\n\n\thandleReadMessageOpponent(params, extra)\n\t{\n\t\tthis.execReadMessageOpponent(params, extra);\n\t}\n\n\thandleReadMessageChatOpponent(params, extra)\n\t{\n\t\tthis.execReadMessageOpponent(params, extra);\n\t}\n\n\texecReadMessageOpponent(params, extra)\n\t{\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('dialogues/updateReaded', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tuserId: params.userId,\n\t\t\tuserName: params.userName,\n\t\t\tmessageId: params.lastId,\n\t\t\tdate: params.date,\n\t\t\taction: true\n\t\t});\n\t}\n\n\thandleUnreadMessageOpponent(params, extra)\n\t{\n\t\tthis.execUnreadMessageOpponent(params, extra);\n\t}\n\n\thandleUnreadMessageChatOpponent(params, extra)\n\t{\n\t\tthis.execUnreadMessageOpponent(params, extra);\n\t}\n\n\texecUnreadMessageOpponent(params, extra)\n\t{\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('dialogues/updateReaded', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tuserId: params.userId,\n\t\t\taction: false\n\t\t});\n\t}\n\n\thandleFileUpload(params, extra)\n\t{\n\t\tif (this.skipExecute(params, extra))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('files/set', this.controller.application.prepareFilesBeforeSave(\n\t\t\t VuexBuilderModel.convertToArray({file: params.fileParams})\n\t\t)).then(() => {\n\t\t\tEventEmitter.emit(EventType.dialog.scrollToBottom, {cancelIfScrollChange: true});\n\t\t});\n\t}\n\n\thandleChatMuteNotify(params, extra)\n\t{\n\t\tconst existingChat = this.store.getters['dialogues/get'](params.dialogId);\n\t\tif (!existingChat)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst existingMuteList = existingChat.muteList;\n\t\tlet newMuteList = [];\n\t\tconst currentUser = this.store.state.application.common.userId;\n\t\tif (params.mute)\n\t\t{\n\t\t\tnewMuteList = [...existingMuteList, currentUser];\n\t\t}\n\t\telse\n\t\t{\n\t\t\tnewMuteList = existingMuteList.filter(element => {\n\t\t\t\treturn element !== currentUser;\n\t\t\t});\n\t\t}\n\n\t\tthis.store.dispatch('dialogues/update', {\n\t\t\tdialogId: params.dialogId,\n\t\t\tfields: {\n\t\t\t\tmuteList: newMuteList\n\t\t\t}\n\t\t});\n\t}\n\n\thandleUserInvite(params, extra)\n\t{\n\t\tif (!params.invited)\n\t\t{\n\t\t\tthis.store.dispatch('users/update', {\n\t\t\t\tid: params.userId,\n\t\t\t\tfields: params.user\n\t\t\t});\n\t\t}\n\t}\n}","/**\n * Bitrix Messenger\n * Im call pull commands (Pull Command Handler)\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2020 Bitrix\n */\n\nimport {PullClient} from \"pull.client\";\n\nexport class ImCallPullHandler\n{\n\tstatic create(params = {})\n\t{\n\t\treturn new this(params);\n\t}\n\n\tconstructor(params = {})\n\t{\n\t\tif (typeof params.application === 'object' && params.application)\n\t\t{\n\t\t\tthis.application = params.application;\n\t\t}\n\t\tif (typeof params.controller === 'object' && params.controller)\n\t\t{\n\t\t\tthis.controller = params.controller;\n\t\t}\n\t\tif (typeof params.store === 'object' && params.store)\n\t\t{\n\t\t\tthis.store = params.store;\n\t\t}\n\n\t\tthis.option = typeof params.store === 'object' && params.store? params.store: {};\n\t}\n\n\tgetModuleId()\n\t{\n\t\treturn 'im';\n\t}\n\n\tgetSubscriptionType()\n\t{\n\t\treturn PullClient.SubscriptionType.Server;\n\t}\n\n\thandleChatUserAdd(params)\n\t{\n\t\tif (params.dialogId !== this.store.state.application.dialog.dialogId)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst users = Object.values(params.users).map(user => {\n\t\t\treturn {...user, lastActivityDate: new Date()};\n\t\t});\n\t\tthis.store.commit('conference/common', {userCount: params.userCount});\n\t\tthis.store.dispatch('users/set', users);\n\t\tthis.store.dispatch('conference/setUsers', {users: users.map(user => user.id)});\n\t}\n\n\thandleChatUserLeave(params)\n\t{\n\t\tif (params.dialogId !== this.store.state.application.dialog.dialogId)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (params.userId === this.controller.getUserId())\n\t\t{\n\t\t\tthis.application.kickFromCall();\n\t\t}\n\n\t\tthis.store.commit('conference/common', {userCount: params.userCount});\n\t\tthis.store.dispatch('conference/removeUsers', {users: [params.userId]});\n\t}\n\n\thandleCallUserNameUpdate(params)\n\t{\n\t\tconst currentUser = this.store.getters['users/get'](params.userId);\n\t\tif (!currentUser)\n\t\t{\n\t\t\tthis.store.dispatch('users/set', {\n\t\t\t\tid: params.userId,\n\t\t\t\tlastActivityDate: new Date()\n\t\t\t});\n\t\t}\n\t\tthis.store.dispatch('users/update', {\n\t\t\tid: params.userId,\n\t\t\tfields: {name: params.name, lastActivityDate: new Date()}\n\t\t});\n\t}\n\n\thandleVideoconfShareUpdate(params)\n\t{\n\t\tif (params.dialogId === this.store.state.application.dialog.dialogId)\n\t\t{\n\t\t\tthis.store.dispatch('dialogues/update', {\n\t\t\t\tdialogId: params.dialogId,\n\t\t\t\tfields: {\n\t\t\t\t\tpublic: {\n\t\t\t\t\t\tcode: params.newCode,\n\t\t\t\t\t\tlink: params.newLink\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t});\n\t\t\tthis.application.changeVideoconfUrl(params.newLink);\n\t\t}\n\t}\n\n\thandleMessageChat(params)\n\t{\n\t\tthis.application.sendNewMessageNotify(params);\n\t}\n\n\thandleChatRename(params)\n\t{\n\t\tif (params.chatId !== this.application.getChatId())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('conference/setConferenceTitle', {conferenceTitle: params.name});\n\t}\n\n\thandleConferenceUpdate(params)\n\t{\n\t\tif (params.chatId !== this.application.getChatId())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (params.isBroadcast !== '')\n\t\t{\n\t\t\tthis.store.dispatch('conference/setBroadcastMode', {broadcastMode: params.isBroadcast});\n\t\t}\n\n\t\tif (params.presenters.length > 0)\n\t\t{\n\t\t\tthis.store.dispatch('conference/setPresenters', {presenters: params.presenters, replace: true});\n\t\t}\n\t}\n}\n","import {PullClient} from \"pull.client\";\n\nexport class ImNotificationsPullHandler\n{\n\tstatic create(params = {})\n\t{\n\t\treturn new this(params);\n\t}\n\n\tconstructor(params = {})\n\t{\n\t\tif (typeof params.application === 'object' && params.application)\n\t\t{\n\t\t\tthis.application = params.application;\n\t\t}\n\t\tif (typeof params.controller === 'object' && params.controller)\n\t\t{\n\t\t\tthis.controller = params.controller;\n\t\t}\n\t\tif (typeof params.store === 'object' && params.store)\n\t\t{\n\t\t\tthis.store = params.store;\n\t\t}\n\n\t\tthis.option = typeof params.store === 'object' && params.store ? params.store : {};\n\t}\n\n\tgetModuleId()\n\t{\n\t\treturn 'im';\n\t}\n\n\tgetSubscriptionType()\n\t{\n\t\treturn PullClient.SubscriptionType.Server;\n\t}\n\n\thandleNotifyAdd(params, extra)\n\t{\n\t\tif (extra.server_time_ago > 30 || params.onlyFlash === true)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst user = this.store.getters['users/get'](params.userId);\n\t\tif (!user)\n\t\t{\n\t\t\tconst users = [];\n\t\t\tusers.push({\n\t\t\t\tid: params.userId,\n\t\t\t\tavatar: params.userAvatar,\n\t\t\t\tcolor: params.userColor,\n\t\t\t\tname: params.userName\n\t\t\t});\n\n\t\t\tthis.store.dispatch('users/set', users);\n\t\t}\n\n\t\tthis.store.dispatch('notifications/add', { data: params });\n\t\tthis.store.dispatch('notifications/setCounter', { unreadTotal: params.counter });\n\t\tthis.store.dispatch('recent/update', {\n\t\t\tid: \"notify\",\n\t\t\tfields: {\n\t\t\t\tmessage: {\n\t\t\t\t\tid: params.id,\n\t\t\t\t\ttext: params.text,\n\t\t\t\t\tdate: params.date\n\t\t\t\t},\n\t\t\t\tcounter: params.counter\n\t\t\t}\n\t\t});\n\t}\n\n\thandleNotifyReadAll(params)\n\t{\n\t\tthis.store.dispatch('notifications/readAll');\n\t\tthis.store.dispatch('notifications/setCounter', {unreadTotal: 0});\n\t\tthis.store.dispatch('recent/update', {\n\t\t\tid: 'notify',\n\t\t\tfields: {\n\t\t\t\tcounter: 0\n\t\t\t}\n\t\t});\n\t}\n\n\thandleNotifyConfirm(params, extra)\n\t{\n\t\tif (extra.server_time_ago > 30)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('notifications/delete', {\n\t\t\tid: params.id,\n\t\t});\n\n\t\tthis.store.dispatch('notifications/setCounter', {\n\t\t\tunreadTotal: params.counter\n\t\t});\n\t\tthis.updateRecentListOnDelete(params.counter);\n\t}\n\n\thandleNotifyRead(params, extra)\n\t{\n\t\tif (extra.server_time_ago > 30)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tparams.list.forEach(id => {\n\t\t\tthis.store.dispatch('notifications/read', { ids: [id], action: true });\n\t\t});\n\n\t\tthis.store.dispatch('notifications/setCounter', {\n\t\t\tunreadTotal: params.counter\n\t\t});\n\n\t\tthis.store.dispatch('recent/update', {\n\t\t\tid: \"notify\",\n\t\t\tfields: {\n\t\t\t\tcounter: params.counter\n\t\t\t}\n\t\t});\n\n\t}\n\n\thandleNotifyUnread(params, extra)\n\t{\n\t\tif (extra.server_time_ago > 30)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tparams.list.forEach(id => {\n\t\t\tthis.store.dispatch('notifications/read', { ids: [id], action: false });\n\t\t});\n\n\t\tthis.store.dispatch('notifications/setCounter', {\n\t\t\tunreadTotal: params.counter\n\t\t});\n\n\t\tthis.store.dispatch('recent/update', {\n\t\t\tid: \"notify\",\n\t\t\tfields: {\n\t\t\t\tcounter: params.counter\n\t\t\t}\n\t\t});\n\t}\n\n\thandleNotifyDelete(params, extra)\n\t{\n\t\tif (extra.server_time_ago > 30)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tconst idsToDelete = Object.keys(params.id).map(id => parseInt(id, 10));\n\n\t\tidsToDelete.forEach(id => {\n\t\t\tthis.store.dispatch('notifications/delete', { id: id });\n\t\t});\n\n\t\tthis.updateRecentListOnDelete(params.counter)\n\t\tthis.store.dispatch('notifications/setCounter', {\n\t\t\tunreadTotal: params.counter\n\t\t});\n\t}\n\n\tupdateRecentListOnDelete(counterValue)\n\t{\n\t\tlet message;\n\t\tconst latestNotification = this.getLatest();\n\t\tif (latestNotification !== null)\n\t\t{\n\t\t\tmessage = {\n\t\t\t\tid: latestNotification.id,\n\t\t\t\ttext: latestNotification.text,\n\t\t\t\tdate: latestNotification.date\n\t\t\t};\n\t\t}\n\t\telse\n\t\t{\n\t\t\tconst notificationChat = this.store.getters['recent/get']('notify');\n\t\t\tif (notificationChat === false)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tmessage = notificationChat.element.message;\n\t\t\tmessage.text = this.controller.localize['IM_NOTIFICATIONS_DELETED_ITEM_STUB'];\n\t\t}\n\n\t\tthis.store.dispatch('recent/update', {\n\t\t\tid: \"notify\",\n\t\t\tfields: {\n\t\t\t\tmessage: message,\n\t\t\t\tcounter: counterValue\n\t\t\t}\n\t\t});\n\t}\n\n\tgetLatest()\n\t{\n\t\tlet latestNotification = {\n\t\t\tid: 0\n\t\t};\n\n\t\tfor (const notification of this.store.state.notifications.collection)\n\t\t{\n\t\t\tif (notification.id > latestNotification.id)\n\t\t\t{\n\t\t\t\tlatestNotification = notification;\n\t\t\t}\n\t\t}\n\n\t\tif (latestNotification.id === 0)\n\t\t{\n\t\t\treturn null;\n\t\t}\n\n\t\treturn latestNotification;\n\t}\n}\n","/**\n * Bitrix Messenger\n * Bundle pull command handlers\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2019 Bitrix\n */\n\nimport {ImBasePullHandler} from \"./base\";\nimport {ImCallPullHandler} from \"./call\";\nimport {ImNotificationsPullHandler} from \"./notifications\";\n\nexport {\n\tImBasePullHandler,\n\tImCallPullHandler,\n\tImNotificationsPullHandler\n}"],"names":["ImBasePullHandler","params","controller","store","option","handlingDialog","chatId","dialogId","PullClient","SubscriptionType","Server","extra","optionImportant","skip","Logger","info","parseInt","toString","handleMessageAdd","warn","skipExecute","collection","state","messages","message","find","element","templateId","id","push","chat","existingChat","getters","chatToAdd","Object","assign","dispatch","fields","users","VuexBuilderModel","convertToArray","files","application","prepareFilesBeforeSave","forEach","file","length","templateFileId","index","then","EventEmitter","emit","EventType","dialog","scrollToBottom","cancelIfScrollChange","sending","error","senderId","getUserId","isUnreadMessagesLoaded","unread","newMessage","messageId","stopOpponentWriting","userId","dialogues","counter","restClient","callMethod","dialog_id","result","count","lastMessageId","command","execMessageUpdateOrDelete","blink","textLegacy","text","action","LIKE","ownerId","managerList","list","userCounter","userCount","startOpponentWriting","readId","lastId","handleReadMessage","execReadMessageOpponent","userName","date","execUnreadMessageOpponent","fileParams","existingMuteList","muteList","newMuteList","currentUser","common","mute","filter","invited","user","ImCallPullHandler","values","map","lastActivityDate","Date","commit","kickFromCall","name","code","newCode","link","newLink","changeVideoconfUrl","sendNewMessageNotify","getChatId","conferenceTitle","isBroadcast","broadcastMode","presenters","replace","ImNotificationsPullHandler","server_time_ago","onlyFlash","avatar","userAvatar","color","userColor","data","unreadTotal","updateRecentListOnDelete","ids","idsToDelete","keys","counterValue","latestNotification","getLatest","notificationChat","localize","notifications","notification"],"mappings":"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"}