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/service/message/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/v2/provider/service/message/dist/message.bundle.js.map
{"version":3,"file":"message.bundle.js","sources":["../src/classes/load.js","../src/classes/pin.js","../src/classes/edit.js","../src/classes/delete.js","../src/classes/mark.js","../src/classes/favorite.js","../src/message.js"],"sourcesContent":["import { Store } from 'ui.vue3.vuex';\n\nimport { Core } from 'im.v2.application.core';\nimport { callBatch, runAction } from 'im.v2.lib.rest';\nimport { UserManager } from 'im.v2.lib.user';\nimport { Logger } from 'im.v2.lib.logger';\nimport { RestMethod, ErrorCode } from 'im.v2.const';\nimport { CopilotManager } from 'im.v2.lib.copilot';\nimport { Analytics } from 'im.v2.lib.analytics';\nimport { Notifier } from 'im.v2.lib.notifier';\n\nimport type { ImModelChat, ImModelMessage } from 'im.v2.model';\nimport type { RawMessage, RawCommentInfo, RawTariffRestrictions } from 'im.v2.provider.service.types';\nimport type { PaginationRestResult } from '../types/message';\n\nexport class LoadService\n{\n\tstatic MESSAGE_REQUEST_LIMIT = 25;\n\n\t#store: Store;\n\t#chatId: number;\n\t#userManager: UserManager;\n\n\t#preparedHistoryMessages: RawMessage[] = [];\n\t#preparedUnreadMessages: RawMessage[] = [];\n\t#isLoading: boolean = false;\n\n\tconstructor(chatId: number)\n\t{\n\t\tthis.#store = Core.getStore();\n\t\tthis.#userManager = new UserManager();\n\n\t\tthis.#chatId = chatId;\n\t}\n\n\tasync loadUnread(): Promise\n\t{\n\t\tif (this.#isLoading || !this.#getDialog().hasNextPage)\n\t\t{\n\t\t\treturn Promise.resolve(false);\n\t\t}\n\t\tLogger.warn('MessageService: loadUnread');\n\t\tconst lastUnreadMessageId = this.#store.getters['messages/getLastId'](this.#chatId);\n\t\tif (!lastUnreadMessageId)\n\t\t{\n\t\t\tLogger.warn('MessageService: no lastUnreadMessageId, cant load unread');\n\n\t\t\treturn Promise.resolve(false);\n\t\t}\n\n\t\tthis.#isLoading = true;\n\n\t\tconst query = {\n\t\t\tchatId: this.#chatId,\n\t\t\tfilter: { lastId: lastUnreadMessageId },\n\t\t\torder: { id: 'ASC' },\n\t\t\tlimit: LoadService.MESSAGE_REQUEST_LIMIT,\n\t\t};\n\n\t\tconst result: PaginationRestResult = await runAction(RestMethod.imV2ChatMessageTail, { data: query })\n\t\t\t.catch((error) => {\n\t\t\t\tconsole.error('MessageService: loadUnread error:', error);\n\t\t\t\tthis.#isLoading = false;\n\t\t\t});\n\n\t\tLogger.warn('MessageService: loadUnread result', result);\n\t\tthis.#preparedUnreadMessages = result.messages;\n\n\t\tconst rawData: PaginationRestResult = {\n\t\t\t...result,\n\t\t\ttariffRestrictions: this.#prepareTariffRestrictions(result.tariffRestrictions),\n\t\t};\n\t\tawait this.#updateModels(rawData);\n\n\t\tthis.#isLoading = false;\n\n\t\treturn Promise.resolve();\n\t}\n\n\tasync loadHistory(): Promise\n\t{\n\t\tif (this.#isLoading || !this.#getDialog().hasPrevPage)\n\t\t{\n\t\t\treturn Promise.resolve(false);\n\t\t}\n\t\tLogger.warn('MessageService: loadHistory');\n\t\tconst lastHistoryMessageId = this.#store.getters['messages/getFirstId'](this.#chatId);\n\t\tif (!lastHistoryMessageId)\n\t\t{\n\t\t\tLogger.warn('MessageService: no lastHistoryMessageId, cant load unread');\n\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\tthis.#isLoading = true;\n\n\t\tconst query = {\n\t\t\tchatId: this.#chatId,\n\t\t\tfilter: { lastId: lastHistoryMessageId },\n\t\t\torder: { id: 'DESC' },\n\t\t\tlimit: LoadService.MESSAGE_REQUEST_LIMIT,\n\t\t};\n\n\t\tconst result: PaginationRestResult = await runAction(RestMethod.imV2ChatMessageTail, { data: query })\n\t\t\t.catch((error) => {\n\t\t\t\tconsole.error('MessageService: loadHistory error:', error);\n\t\t\t\tthis.#isLoading = false;\n\t\t\t});\n\n\t\tLogger.warn('MessageService: loadHistory result', result);\n\t\tthis.#preparedHistoryMessages = result.messages;\n\n\t\tconst hasPrevPage = result.hasNextPage;\n\t\tconst rawData = { ...result, hasPrevPage, hasNextPage: null };\n\t\tawait this.#updateModels(rawData);\n\n\t\tthis.#isLoading = false;\n\n\t\treturn Promise.resolve();\n\t}\n\n\thasPreparedHistoryMessages(): boolean\n\t{\n\t\treturn this.#preparedHistoryMessages.length > 0;\n\t}\n\n\tdrawPreparedHistoryMessages(): Promise\n\t{\n\t\tif (!this.hasPreparedHistoryMessages())\n\t\t{\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\treturn this.#store.dispatch('messages/setChatCollection', {\n\t\t\tmessages: this.#preparedHistoryMessages,\n\t\t}).then(() => {\n\t\t\tthis.#preparedHistoryMessages = [];\n\n\t\t\treturn true;\n\t\t});\n\t}\n\n\thasPreparedUnreadMessages(): boolean\n\t{\n\t\treturn this.#preparedUnreadMessages.length > 0;\n\t}\n\n\tdrawPreparedUnreadMessages(): Promise\n\t{\n\t\tif (!this.hasPreparedUnreadMessages())\n\t\t{\n\t\t\treturn Promise.resolve();\n\t\t}\n\n\t\treturn this.#store.dispatch('messages/setChatCollection', {\n\t\t\tmessages: this.#preparedUnreadMessages,\n\t\t}).then(() => {\n\t\t\tthis.#preparedUnreadMessages = [];\n\n\t\t\treturn true;\n\t\t});\n\t}\n\n\tasync loadFirstPage(): Promise\n\t{\n\t\tLogger.warn('MessageService: loadFirstPage for: ', this.#chatId);\n\t\tthis.#isLoading = true;\n\n\t\tconst payload = {\n\t\t\tdata: {\n\t\t\t\tchatId: this.#chatId,\n\t\t\t\tlimit: LoadService.MESSAGE_REQUEST_LIMIT,\n\t\t\t\torder: { id: 'ASC' },\n\t\t\t},\n\t\t};\n\t\tconst restResult = await runAction(RestMethod.imV2ChatMessageTail, payload)\n\t\t\t.catch(([error]) => {\n\t\t\t\tconsole.error('MessageService: loadFirstPage error:', error);\n\t\t\t\tthis.#isLoading = false;\n\t\t\t\tthrow error;\n\t\t\t});\n\t\tLogger.warn('MessageService: loadFirstPage result', restResult);\n\n\t\tawait this.#handleLoadedMessages(restResult);\n\t\tawait this.#store.dispatch('chats/update', {\n\t\t\tdialogId: this.#getDialog().dialogId,\n\t\t\tfields: {\n\t\t\t\thasPrevPage: false,\n\t\t\t\thasNextPage: restResult.hasNextPage,\n\t\t\t},\n\t\t});\n\t\tthis.#isLoading = false;\n\t}\n\n\tloadContext(messageId: number): Promise\n\t{\n\t\tconst query = {\n\t\t\t[RestMethod.imV2ChatMessageGetContext]: {\n\t\t\t\tid: messageId,\n\t\t\t\trange: LoadService.MESSAGE_REQUEST_LIMIT,\n\t\t\t},\n\t\t\t[RestMethod.imV2ChatMessageRead]: {\n\t\t\t\tchatId: this.#chatId,\n\t\t\t\tids: [messageId],\n\t\t\t},\n\t\t};\n\t\tLogger.warn('MessageService: loadContext for: ', messageId);\n\t\tthis.#isLoading = true;\n\n\t\treturn callBatch(query)\n\t\t\t.then((data) => {\n\t\t\t\tLogger.warn('MessageService: loadContext result', data);\n\n\t\t\t\treturn this.#handleLoadedMessages(data[RestMethod.imV2ChatMessageGetContext]);\n\t\t\t})\n\t\t\t.catch((error) => {\n\t\t\t\tthis.#sendAnalytics(error);\n\t\t\t\tNotifier.message.handleLoadContextError(error);\n\t\t\t\tconsole.error('MessageService: loadContext error:', error);\n\t\t\t})\n\t\t\t.finally(() => {\n\t\t\t\tthis.#isLoading = false;\n\t\t\t});\n\t}\n\n\tasync loadContextByChatId(chatId: number): Promise<number>\n\t{\n\t\tconst queryParams = {\n\t\t\tdata: { commentChatId: chatId },\n\t\t};\n\t\tconst result = await runAction(RestMethod.imV2ChatMessageGetContext, queryParams)\n\t\t\t.catch(([error]) => {\n\t\t\t\tconsole.error('MessageService: loadContextByChatId error:', error);\n\t\t\t\tthrow error;\n\t\t\t});\n\n\t\tconst commentInfo: RawCommentInfo[] = result.commentInfo;\n\t\tconst targetCommentInfo: ?RawCommentInfo = commentInfo.find((item) => {\n\t\t\treturn item.chatId === chatId;\n\t\t});\n\t\tconst targetMessageId = targetCommentInfo?.messageId;\n\n\t\tLogger.warn('MessageService: loadContextByChatId result', result);\n\t\tvoid this.#handleLoadedMessages(result);\n\n\t\treturn targetMessageId;\n\t}\n\n\treloadMessageList(): void\n\t{\n\t\tLogger.warn('MessageService: loadChatOnExit for: ', this.#chatId);\n\t\tlet targetMessageId = 0;\n\t\tif (this.#getDialog().chatId <= 0)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tif (this.#getDialog().markedId)\n\t\t{\n\t\t\ttargetMessageId = this.#getDialog().markedId;\n\t\t}\n\t\telse if (this.#getDialog().savedPositionMessageId)\n\t\t{\n\t\t\ttargetMessageId = this.#getDialog().savedPositionMessageId;\n\t\t}\n\n\t\tconst wasInitedBefore = this.#getDialog().inited;\n\t\tthis.#setDialogInited(false);\n\t\tif (targetMessageId)\n\t\t{\n\t\t\tvoid this.loadContext(targetMessageId)\n\t\t\t\t.finally(() => {\n\t\t\t\t\tthis.#setDialogInited(true, wasInitedBefore);\n\t\t\t\t});\n\t\t}\n\n\t\tvoid this.loadInitialMessages()\n\t\t\t.finally(() => {\n\t\t\t\tthis.#setDialogInited(true, wasInitedBefore);\n\t\t\t});\n\t}\n\n\tasync loadInitialMessages(): Promise\n\t{\n\t\tLogger.warn('MessageService: loadInitialMessages for: ', this.#chatId);\n\t\tthis.#isLoading = true;\n\n\t\tconst payload = {\n\t\t\tdata: {\n\t\t\t\tchatId: this.#chatId,\n\t\t\t\tlimit: LoadService.MESSAGE_REQUEST_LIMIT,\n\t\t\t},\n\t\t};\n\t\tconst restResult = await runAction(RestMethod.imV2ChatMessageList, payload)\n\t\t\t.catch(([error]) => {\n\t\t\t\tconsole.error('MessageService: loadInitialMessages error:', error);\n\t\t\t\tthis.#isLoading = false;\n\t\t\t\tthrow error;\n\t\t\t});\n\t\tLogger.warn('MessageService: loadInitialMessages result', restResult);\n\t\trestResult.messages = this.#prepareInitialMessages(restResult.messages);\n\n\t\tawait this.#handleLoadedMessages(restResult);\n\t\tthis.#isLoading = false;\n\n\t\treturn Promise.resolve();\n\t}\n\n\t#prepareInitialMessages(rawMessages: RawMessage[]): RawMessage[]\n\t{\n\t\tif (rawMessages.length === 0)\n\t\t{\n\t\t\treturn rawMessages;\n\t\t}\n\n\t\tconst lastMessageId = this.#getDialog().lastMessageId;\n\t\tconst newMaxId = Math.max(...rawMessages.map((message) => message.id));\n\t\tif (newMaxId >= lastMessageId)\n\t\t{\n\t\t\treturn rawMessages;\n\t\t}\n\n\t\tconst messagesCollection: ImModelMessage[] = this.#store.getters['messages/getByChatId'](this.#chatId);\n\t\tconst additionalMessages = messagesCollection.filter((message) => {\n\t\t\treturn message.id > newMaxId;\n\t\t});\n\t\tLogger.warn('MessageService: loadInitialMessages: local id is higher than server one', additionalMessages);\n\n\t\treturn [...rawMessages, ...additionalMessages];\n\t}\n\n\tisLoading(): boolean\n\t{\n\t\treturn this.#isLoading;\n\t}\n\n\t#handleLoadedMessages(restResult): Promise\n\t{\n\t\tconst { messages } = restResult;\n\t\tconst messagesPromise = this.#store.dispatch('messages/setChatCollection', {\n\t\t\tmessages,\n\t\t\tclearCollection: true,\n\t\t});\n\t\tconst updateModelsPromise = this.#updateModels(restResult);\n\n\t\treturn Promise.all([messagesPromise, updateModelsPromise]);\n\t}\n\n\t#updateModels(rawData: PaginationRestResult): Promise\n\t{\n\t\tconst {\n\t\t\tfiles,\n\t\t\tusers,\n\t\t\tusersShort,\n\t\t\treactions,\n\t\t\thasPrevPage,\n\t\t\thasNextPage,\n\t\t\tadditionalMessages,\n\t\t\tcommentInfo,\n\t\t\tcopilot,\n\t\t\ttariffRestrictions,\n\t\t} = rawData;\n\n\t\tconst dialogPromise = this.#store.dispatch('chats/update', {\n\t\t\tdialogId: this.#getDialog().dialogId,\n\t\t\tfields: {\n\t\t\t\thasPrevPage,\n\t\t\t\thasNextPage,\n\t\t\t\ttariffRestrictions,\n\t\t\t},\n\t\t});\n\t\tconst usersPromise = Promise.all([\n\t\t\tthis.#userManager.setUsersToModel(users),\n\t\t\tthis.#userManager.addUsersToModel(usersShort),\n\t\t]);\n\t\tconst filesPromise = this.#store.dispatch('files/set', files);\n\t\tconst reactionsPromise = this.#store.dispatch('messages/reactions/set', reactions);\n\t\tconst additionalMessagesPromise = this.#store.dispatch('messages/store', additionalMessages);\n\t\tconst commentInfoPromise = this.#store.dispatch('messages/comments/set', commentInfo);\n\t\tconst copilotManager = new CopilotManager();\n\t\tconst copilotPromise = copilotManager.handleChatLoadResponse(copilot);\n\n\t\treturn Promise.all([\n\t\t\tdialogPromise,\n\t\t\tfilesPromise,\n\t\t\tusersPromise,\n\t\t\treactionsPromise,\n\t\t\tadditionalMessagesPromise,\n\t\t\tcommentInfoPromise,\n\t\t\tcopilotPromise,\n\t\t]);\n\t}\n\n\t#setDialogInited(flag: boolean, wasInitedBefore: boolean = true)\n\t{\n\t\tconst fields = {\n\t\t\tinited: flag,\n\t\t\tloading: !flag,\n\t\t};\n\t\tif (flag === true && !wasInitedBefore)\n\t\t{\n\t\t\tdelete fields.inited;\n\t\t}\n\n\t\tthis.#store.dispatch('chats/update', {\n\t\t\tdialogId: this.#getDialog().dialogId,\n\t\t\tfields,\n\t\t});\n\t}\n\n\t#prepareTariffRestrictions(restrictions: RawTariffRestrictions): RawTariffRestrictions\n\t{\n\t\tconst dialogId = this.#getDialog().dialogId;\n\t\tconst chat: ?ImModelChat = this.#store.getters['chats/get'](dialogId);\n\t\tif (!chat)\n\t\t{\n\t\t\treturn restrictions;\n\t\t}\n\n\t\tconst { tariffRestrictions: { isHistoryLimitExceeded } } = chat;\n\t\tif (isHistoryLimitExceeded === true)\n\t\t{\n\t\t\treturn {\n\t\t\t\t...restrictions,\n\t\t\t\tisHistoryLimitExceeded: true,\n\t\t\t};\n\t\t}\n\n\t\treturn restrictions;\n\t}\n\n\t#getDialog(): ImModelChat\n\t{\n\t\treturn this.#store.getters['chats/getByChatId'](this.#chatId);\n\t}\n\n\t#sendAnalytics(error)\n\t{\n\t\tif (error.code !== ErrorCode.message.notFound)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tconst chat = this.#getDialog();\n\t\tconst dialogId = chat.dialogId;\n\t\tAnalytics.getInstance().messageDelete.onNotFoundNotification({ dialogId });\n\t}\n}\n","import { RestClient } from 'rest.client';\nimport { Store } from 'ui.vue3.vuex';\n\nimport { Core } from 'im.v2.application.core';\nimport { Logger } from 'im.v2.lib.logger';\nimport { RestMethod } from 'im.v2.const';\n\nexport class PinService\n{\n\t#store: Store;\n\t#restClient: RestClient;\n\n\tconstructor()\n\t{\n\t\tthis.#store = Core.getStore();\n\t\tthis.#restClient = Core.getRestClient();\n\t}\n\n\tpinMessage(chatId: number, messageId: number): void\n\t{\n\t\tLogger.warn(`Dialog: PinManager: pin message ${messageId}`);\n\t\tconst payload = {\n\t\t\tchatId,\n\t\t\tmessageId,\n\t\t};\n\t\tvoid this.#store.dispatch('messages/pin/add', payload);\n\t\tthis.#restClient.callMethod(RestMethod.imV2ChatMessagePin, { id: messageId })\n\t\t\t.catch((result: RestResult) => {\n\t\t\t\tconsole.error('Dialog: PinManager: error pinning message', result.error());\n\t\t\t\tvoid this.#store.dispatch('messages/pin/delete', payload);\n\t\t\t});\n\t}\n\n\tunpinMessage(chatId: number, messageId: number): void\n\t{\n\t\tLogger.warn(`Dialog: PinManager: unpin message ${messageId}`);\n\t\tconst payload = {\n\t\t\tchatId,\n\t\t\tmessageId,\n\t\t};\n\t\tvoid this.#store.dispatch('messages/pin/delete', payload);\n\t\tthis.#restClient.callMethod(RestMethod.imV2ChatMessageUnpin, { id: messageId })\n\t\t\t.catch((result: RestResult) => {\n\t\t\t\tconsole.error('Dialog: PinManager: error unpinning message', result.error());\n\t\t\t\tvoid this.#store.dispatch('messages/pin/add', payload);\n\t\t\t});\n\t}\n}\n","import { Core } from 'im.v2.application.core';\nimport { RestMethod } from 'im.v2.const';\nimport { Logger } from 'im.v2.lib.logger';\nimport { runAction } from 'im.v2.lib.rest';\n\nimport type { ImModelMessage } from 'im.v2.model';\n\nexport class EditService\n{\n\teditMessageText(messageId: number, text: string): void\n\t{\n\t\tLogger.warn('MessageService: editMessageText', messageId, text);\n\t\tconst message = this.#getMessage(messageId);\n\t\tif (!message)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#updateMessageModel(messageId, text);\n\n\t\tconst payload = {\n\t\t\tdata: {\n\t\t\t\tid: messageId,\n\t\t\t\tfields: { message: text },\n\t\t\t},\n\t\t};\n\n\t\trunAction(RestMethod.imV2ChatMessageUpdate, payload)\n\t\t\t.catch(([error]) => {\n\t\t\t\tconsole.error('MessageService: editMessageText error:', error);\n\t\t\t});\n\t}\n\n\t#updateMessageModel(messageId: number, text: string): void\n\t{\n\t\tconst message = this.#getMessage(messageId);\n\t\tconst isEdited = message.viewedByOthers;\n\n\t\tCore.getStore().dispatch('messages/update', {\n\t\t\tid: messageId,\n\t\t\tfields: {\n\t\t\t\ttext,\n\t\t\t\tisEdited,\n\t\t\t},\n\t\t});\n\t}\n\n\t#getMessage(messageId: number): ImModelMessage | null\n\t{\n\t\treturn Core.getStore().getters['messages/getById'](messageId);\n\t}\n}\n","import { EventEmitter } from 'main.core.events';\nimport { Store } from 'ui.vue3.vuex';\n\nimport { Utils } from 'im.v2.lib.utils';\nimport { RestMethod, EventType, ChatType } from 'im.v2.const';\nimport { Logger } from 'im.v2.lib.logger';\nimport { runAction } from 'im.v2.lib.rest';\nimport { Core } from 'im.v2.application.core';\n\nimport type { ImModelChat, ImModelMessage, ImModelRecentItem } from 'im.v2.model';\n\nexport class DeleteService\n{\n\t#store: Store;\n\t#chatId: number;\n\n\tconstructor(chatId: number)\n\t{\n\t\tthis.#chatId = chatId;\n\t\tthis.#store = Core.getStore();\n\t}\n\n\tasync deleteMessages(messageIds: number[]): void\n\t{\n\t\tLogger.warn('MessageService: deleteMessage', messageIds);\n\n\t\tconst deleteMessageIds = [];\n\n\t\tmessageIds.forEach((messageId) => {\n\t\t\tif (Utils.text.isUuidV4(messageId))\n\t\t\t{\n\t\t\t\tthis.#deleteTemporaryMessage(messageId);\n\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.#sendDeleteEvent(messageId);\n\t\t\tthis.#updateModels(messageId);\n\n\t\t\tdeleteMessageIds.push(messageId);\n\t\t});\n\n\t\tif (deleteMessageIds.length > 0)\n\t\t{\n\t\t\tvoid this.#deleteMessageOnServer(deleteMessageIds);\n\t\t}\n\t}\n\n\t#updateModels(messageId: number)\n\t{\n\t\tconst message: ImModelMessage = this.#store.getters['messages/getById'](messageId);\n\n\t\tif (this.#canDeleteCompletely(message))\n\t\t{\n\t\t\tvoid this.#completeMessageDelete(message);\n\n\t\t\treturn;\n\t\t}\n\n\t\tvoid this.#shallowMessageDelete(message);\n\t}\n\n\t#shallowMessageDelete(message: ImModelMessage): Promise\n\t{\n\t\tthis.#store.dispatch('messages/update', {\n\t\t\tid: message.id,\n\t\t\tfields: {\n\t\t\t\ttext: '',\n\t\t\t\tisDeleted: true,\n\t\t\t\tfiles: [],\n\t\t\t\tattach: [],\n\t\t\t\treplyId: 0,\n\t\t\t},\n\t\t});\n\t}\n\n\t#canDeleteCompletely(message: ImModelMessage): boolean\n\t{\n\t\tconst alwaysCompleteDeleteChats = [ChatType.channel, ChatType.openChannel, ChatType.generalChannel];\n\t\tconst neverCompleteDeleteChats = [ChatType.comment, ChatType.lines];\n\n\t\tconst chat = this.#getChat();\n\t\tif (alwaysCompleteDeleteChats.includes(chat.type))\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tif (neverCompleteDeleteChats.includes(chat.type))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\treturn !message.viewedByOthers;\n\t}\n\n\t#completeMessageDelete(message: ImModelMessage): Promise\n\t{\n\t\tconst chat = this.#getChat();\n\t\tif (message.id === chat.lastMessageId)\n\t\t{\n\t\t\tconst newLastId = this.#getPreviousMessageId(message.id);\n\t\t\tthis.#updateRecentForCompleteDelete(newLastId);\n\t\t\tthis.#updateChatForCompleteDelete(newLastId);\n\t\t}\n\n\t\tthis.#store.dispatch('messages/delete', {\n\t\t\tid: message.id,\n\t\t});\n\t}\n\n\t#updateRecentForCompleteDelete(newLastId: number)\n\t{\n\t\tconst chat = this.#getChat();\n\t\tif (!newLastId)\n\t\t{\n\t\t\tthis.#store.dispatch('recent/delete', { id: chat.dialogId });\n\n\t\t\treturn;\n\t\t}\n\n\t\tthis.#store.dispatch('recent/update', {\n\t\t\tid: chat.dialogId,\n\t\t\tfields: { messageId: newLastId },\n\t\t});\n\t}\n\n\t#updateChatForCompleteDelete(newLastId)\n\t{\n\t\tconst chat = this.#getChat();\n\n\t\tthis.#store.dispatch('chats/update', {\n\t\t\tdialogId: chat.dialogId,\n\t\t\tfields: {\n\t\t\t\tlastMessageId: newLastId,\n\t\t\t\tlastId: newLastId,\n\t\t\t},\n\t\t});\n\t\tthis.#store.dispatch('chats/clearLastMessageViews', {\n\t\t\tdialogId: chat.dialogId,\n\t\t});\n\t}\n\n\t#deleteMessageOnServer(messageIds: number[]): Promise\n\t{\n\t\treturn runAction(RestMethod.imV2ChatMessageDelete, {\n\t\t\tdata: { messageIds },\n\t\t}).catch((error) => {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error('MessageService: deleteMessage error:', error);\n\t\t});\n\t}\n\n\t#deleteTemporaryMessage(messageId: string)\n\t{\n\t\tconst chat = this.#getChat();\n\t\tconst recentItem: ImModelRecentItem = this.#store.getters['recent/get'](chat.dialogId);\n\t\tif (recentItem.messageId === messageId)\n\t\t{\n\t\t\tconst newLastId = this.#getPreviousMessageId(messageId);\n\t\t\tthis.#store.dispatch('recent/update', {\n\t\t\t\tid: chat.dialogId,\n\t\t\t\tfields: { messageId: newLastId },\n\t\t\t});\n\t\t}\n\n\t\tthis.#store.dispatch('messages/delete', {\n\t\t\tid: messageId,\n\t\t});\n\t}\n\n\t#getPreviousMessageId(messageId: number): number\n\t{\n\t\tconst previousMessage: ImModelMessage = this.#store.getters['messages/getPreviousMessage']({\n\t\t\tmessageId,\n\t\t\tchatId: this.#chatId,\n\t\t});\n\n\t\treturn previousMessage?.id ?? 0;\n\t}\n\n\t#sendDeleteEvent(messageId: number)\n\t{\n\t\tEventEmitter.emit(EventType.dialog.onMessageDeleted, { messageId });\n\t}\n\n\t#getChat(): ImModelChat\n\t{\n\t\treturn this.#store.getters['chats/getByChatId'](this.#chatId);\n\t}\n}\n","import { Store } from 'ui.vue3.vuex';\nimport { RestClient } from 'rest.client';\n\nimport { Core } from 'im.v2.application.core';\nimport { RestMethod } from 'im.v2.const';\nimport { Logger } from 'im.v2.lib.logger';\n\nexport class MarkService\n{\n\t#chatId: number;\n\t#store: Store;\n\t#restClient: RestClient;\n\n\tconstructor(chatId: number)\n\t{\n\t\tthis.#chatId = chatId;\n\t\tthis.#store = Core.getStore();\n\t\tthis.#restClient = Core.getRestClient();\n\t}\n\n\tmarkMessage(messageId: number): void\n\t{\n\t\tLogger.warn('MessageService: markMessage', messageId);\n\t\tconst { dialogId } = this.#store.getters['chats/getByChatId'](this.#chatId);\n\t\tvoid this.#store.dispatch('recent/unread', {\n\t\t\tid: dialogId,\n\t\t\taction: true,\n\t\t});\n\t\tvoid this.#store.dispatch('chats/update', {\n\t\t\tdialogId,\n\t\t\tfields: { markedId: messageId },\n\t\t});\n\t\tthis.#restClient.callMethod(RestMethod.imV2ChatMessageMark, {\n\t\t\tdialogId,\n\t\t\tid: messageId,\n\t\t}).catch((result: RestResult) => {\n\t\t\tconsole.error('MessageService: error marking message', result.error());\n\t\t});\n\t}\n}\n","import { Store } from 'ui.vue3.vuex';\nimport { RestClient } from 'rest.client';\n\nimport { Core } from 'im.v2.application.core';\nimport { RestMethod } from 'im.v2.const';\nimport { Logger } from 'im.v2.lib.logger';\nimport { Notifier } from 'im.v2.lib.notifier';\n\nexport class FavoriteService\n{\n\t#chatId: number;\n\t#store: Store;\n\t#restClient: RestClient;\n\n\tconstructor(chatId: number)\n\t{\n\t\tthis.#chatId = chatId;\n\t\tthis.#store = Core.getStore();\n\t\tthis.#restClient = Core.getRestClient();\n\t}\n\n\taddMessageToFavorite(messageId: number): void\n\t{\n\t\tLogger.warn('MessageService: addMessageToFavorite', messageId);\n\t\tthis.#restClient.callMethod(RestMethod.imChatFavoriteAdd, {\n\t\t\tMESSAGE_ID: messageId,\n\t\t}).catch((result: RestResult) => {\n\t\t\tconsole.error('MessageService: error adding message to favorite', result.error());\n\t\t});\n\n\t\tNotifier.message.onAddToFavoriteComplete();\n\t}\n\n\tremoveMessageFromFavorite(messageId: number): void\n\t{\n\t\tLogger.warn('MessageService: removeMessageFromFavorite', messageId);\n\t\tvoid this.#store.dispatch('sidebar/favorites/deleteByMessageId', {\n\t\t\tchatId: this.#chatId,\n\t\t\tmessageId,\n\t\t});\n\t\tthis.#restClient.callMethod(RestMethod.imChatFavoriteDelete, {\n\t\t\tMESSAGE_ID: messageId,\n\t\t}).catch((result: RestResult) => {\n\t\t\tconsole.error('MessageService: error removing message from favorite', result.error());\n\t\t});\n\t}\n}\n","import { LoadService } from './classes/load';\nimport { PinService } from './classes/pin';\nimport { EditService } from './classes/edit';\nimport { DeleteService } from './classes/delete';\nimport { MarkService } from './classes/mark';\nimport { FavoriteService } from './classes/favorite';\n\nexport class MessageService\n{\n\t#loadService: LoadService;\n\t#pinService: PinService;\n\t#editService: EditService;\n\t#deleteService: DeleteService;\n\t#markService: MarkService;\n\t#favoriteService: FavoriteService;\n\n\tstatic getMessageRequestLimit(): number\n\t{\n\t\treturn LoadService.MESSAGE_REQUEST_LIMIT;\n\t}\n\n\tconstructor(params: {chatId: number})\n\t{\n\t\tconst { chatId } = params;\n\t\tthis.#initServices(chatId);\n\t}\n\n\t#initServices(chatId: number)\n\t{\n\t\tthis.#loadService = new LoadService(chatId);\n\t\tthis.#editService = new EditService();\n\t\tthis.#deleteService = new DeleteService(chatId);\n\t\tthis.#pinService = new PinService();\n\t\tthis.#markService = new MarkService(chatId);\n\t\tthis.#favoriteService = new FavoriteService(chatId);\n\t}\n\n\t// region 'pagination'\n\tloadUnread(): Promise\n\t{\n\t\treturn this.#loadService.loadUnread();\n\t}\n\n\tloadHistory(): Promise\n\t{\n\t\treturn this.#loadService.loadHistory();\n\t}\n\n\thasPreparedHistoryMessages(): boolean\n\t{\n\t\treturn this.#loadService.hasPreparedHistoryMessages();\n\t}\n\n\tdrawPreparedHistoryMessages(): Promise\n\t{\n\t\treturn this.#loadService.drawPreparedHistoryMessages();\n\t}\n\n\thasPreparedUnreadMessages(): boolean\n\t{\n\t\treturn this.#loadService.hasPreparedUnreadMessages();\n\t}\n\n\tdrawPreparedUnreadMessages(): Promise\n\t{\n\t\treturn this.#loadService.drawPreparedUnreadMessages();\n\t}\n\n\tisLoading(): boolean\n\t{\n\t\treturn this.#loadService.isLoading();\n\t}\n\t// endregion 'pagination'\n\n\t// region 'context'\n\tloadContext(messageId: number): Promise\n\t{\n\t\treturn this.#loadService.loadContext(messageId);\n\t}\n\n\tloadContextByChatId(chatId: number): Promise<number>\n\t{\n\t\treturn this.#loadService.loadContextByChatId(chatId);\n\t}\n\n\tloadFirstPage(): Promise\n\t{\n\t\treturn this.#loadService.loadFirstPage();\n\t}\n\t// endregion 'context\n\n\t// region 'reload messages'\n\treloadMessageList(): void\n\t{\n\t\tthis.#loadService.reloadMessageList();\n\t}\n\n\tloadInitialMessages(): Promise\n\t{\n\t\treturn this.#loadService.loadInitialMessages();\n\t}\n\t// endregion 'reload messages'\n\n\t// region 'pin'\n\tpinMessage(chatId: number, messageId: number): void\n\t{\n\t\tthis.#pinService.pinMessage(chatId, messageId);\n\t}\n\n\tunpinMessage(chatId: number, messageId: number): void\n\t{\n\t\tthis.#pinService.unpinMessage(chatId, messageId);\n\t}\n\t// endregion 'pin'\n\n\t// region 'mark'\n\tmarkMessage(messageId: number): void\n\t{\n\t\tthis.#markService.markMessage(messageId);\n\t}\n\t// endregion 'mark'\n\n\t// region 'favorite'\n\taddMessageToFavorite(messageId: number): void\n\t{\n\t\tthis.#favoriteService.addMessageToFavorite(messageId);\n\t}\n\n\tremoveMessageFromFavorite(messageId: number): void\n\t{\n\t\tthis.#favoriteService.removeMessageFromFavorite(messageId);\n\t}\n\t// endregion 'favorite'\n\n\t// region 'edit'\n\teditMessageText(messageId: number, text: string): void\n\t{\n\t\tthis.#editService.editMessageText(messageId, text);\n\t}\n\t// endregion 'edit'\n\n\t// region 'delete'\n\tdeleteMessages(messageIds: number[]): void\n\t{\n\t\tthis.#deleteService.deleteMessages(messageIds);\n\t}\n\t// endregion 'delete'\n}\n"],"names":["LoadService","constructor","chatId","Core","getStore","UserManager","loadUnread","hasNextPage","Promise","resolve","Logger","warn","lastUnreadMessageId","getters","query","filter","lastId","order","id","limit","MESSAGE_REQUEST_LIMIT","result","runAction","RestMethod","imV2ChatMessageTail","data","catch","error","console","messages","rawData","tariffRestrictions","loadHistory","hasPrevPage","lastHistoryMessageId","hasPreparedHistoryMessages","length","drawPreparedHistoryMessages","dispatch","then","hasPreparedUnreadMessages","drawPreparedUnreadMessages","loadFirstPage","payload","restResult","dialogId","fields","loadContext","messageId","imV2ChatMessageGetContext","range","imV2ChatMessageRead","ids","callBatch","Notifier","message","handleLoadContextError","finally","loadContextByChatId","queryParams","commentChatId","commentInfo","targetCommentInfo","find","item","targetMessageId","reloadMessageList","markedId","savedPositionMessageId","wasInitedBefore","inited","loadInitialMessages","imV2ChatMessageList","isLoading","rawMessages","lastMessageId","newMaxId","Math","max","map","messagesCollection","additionalMessages","messagesPromise","clearCollection","updateModelsPromise","all","files","users","usersShort","reactions","copilot","dialogPromise","usersPromise","setUsersToModel","addUsersToModel","filesPromise","reactionsPromise","additionalMessagesPromise","commentInfoPromise","copilotManager","CopilotManager","copilotPromise","handleChatLoadResponse","flag","loading","restrictions","chat","isHistoryLimitExceeded","code","ErrorCode","notFound","Analytics","getInstance","messageDelete","onNotFoundNotification","PinService","getRestClient","pinMessage","callMethod","imV2ChatMessagePin","unpinMessage","imV2ChatMessageUnpin","EditService","editMessageText","text","imV2ChatMessageUpdate","isEdited","viewedByOthers","DeleteService","deleteMessages","messageIds","deleteMessageIds","forEach","Utils","isUuidV4","push","isDeleted","attach","replyId","alwaysCompleteDeleteChats","ChatType","channel","openChannel","generalChannel","neverCompleteDeleteChats","comment","lines","includes","type","newLastId","imV2ChatMessageDelete","recentItem","previousMessage","EventEmitter","emit","EventType","dialog","onMessageDeleted","MarkService","markMessage","action","imV2ChatMessageMark","FavoriteService","addMessageToFavorite","imChatFavoriteAdd","MESSAGE_ID","onAddToFavoriteComplete","removeMessageFromFavorite","imChatFavoriteDelete","MessageService","getMessageRequestLimit","params"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit