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/component/recent-list/dist/ |
Upload File : |
{"version":3,"file":"recent-list.bundle.js","sources":["../src/components/new-user-popup.js","../src/components/recent-item.js","../src/components/active-call.js","../src/settings-manager.js","../src/broadcast-manager.js","../src/call-manager.js","../src/draft-manager.js","../src/event-handler.js","../src/recent-list.js"],"sourcesContent":["import {EventEmitter} from 'main.core.events';\nimport {EventType} from 'im.v2.const';\n\n// @vue/component\nexport const NewUserPopup = {\n\tname: 'NewUserPopup',\n\tprops: {\n\t\ttitle: {type: String, required: true},\n\t\ttext: {type: String, required: true}\n\t},\n\temits: ['click', 'close'],\n\tmounted()\n\t{\n\t\tBX.MessengerProxy.playNewUserSound();\n\t\tthis.setCloseTimer(5000);\n\n\t\tthis.onClosePopupHandler = this.onClosePopup.bind(this);\n\t\tEventEmitter.subscribe(EventType.dialog.closePopup, this.onClosePopupHandler);\n\t},\n\tbeforeUnmount()\n\t{\n\t\tEventEmitter.unsubscribe(EventType.dialog.closePopup, this.onClosePopupHandler);\n\t},\n\tmethods:\n\t{\n\t\tonClick()\n\t\t{\n\t\t\tthis.$emit('click');\n\t\t\tthis.$emit('close');\n\t\t},\n\t\tonMouseOver()\n\t\t{\n\t\t\tclearTimeout(this.closeTimeout);\n\t\t},\n\t\tonMouseLeave()\n\t\t{\n\t\t\tthis.setCloseTimer(2000);\n\t\t},\n\t\tsetCloseTimer(time: number)\n\t\t{\n\t\t\tthis.closeTimeout = setTimeout(() => {\n\t\t\t\tthis.$emit('close');\n\t\t\t}, time);\n\t\t},\n\t\tonClosePopup()\n\t\t{\n\t\t\tthis.$emit('close');\n\t\t}\n\t},\n\t// language=Vue\n\ttemplate: `\n\t\t<Transition name=\"bx-im-recent-new-user-popup\">\n\t\t\t<div @click=\"onClick\" @mouseover=\"onMouseOver\" @mouseleave=\"onMouseLeave\" class=\"bx-im-recent-new-user-popup\">\n\t\t\t\t<div class=\"bx-im-recent-new-user-popup-title\">{{ title }}</div>\n\t\t\t\t<div class=\"bx-im-recent-new-user-popup-text\">{{ text }}</div>\n\t\t\t</div>\n\t\t</Transition>\n\t`\n};","import 'main.date';\nimport {PopupManager} from 'main.popup';\nimport {EventEmitter} from 'main.core.events';\nimport {MessageStatus, ChatTypes, RecentSettings, EventType, AvatarSize, OpenTarget} from 'im.v2.const';\nimport {Avatar, ChatTitle} from 'im.v2.component.elements';\n\nimport {NewUserPopup} from './new-user-popup';\n\ntype RecentListItem = {\n\tdialogId: number,\n\tmessage: {\n\t\tid: number,\n\t\ttext: string,\n\t\tdate: string,\n\t\tsenderId: number,\n\t\tstatus: MessageStatus.received | MessageStatus.delivered | MessageStatus.error\n\t},\n\tdraft: {\n\t\ttext: string,\n\t\tdate: Date | null,\n\t},\n\tunread: boolean,\n\tpinned: boolean,\n\tliked: boolean,\n\tinvitation: {\n\t\tisActive: boolean,\n\t\toriginator: number,\n\t\tcanResend: boolean\n\t}\n}\n\n// @vue/component\nexport const RecentItem = {\n\tname: 'RecentItem',\n\tcomponents: {Avatar, ChatTitle, NewUserPopup},\n\tprops: {\n\t\titem: {\n\t\t\ttype: Object,\n\t\t\trequired: true\n\t\t},\n\t\tcompactMode: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t},\n\t\tisVisibleOnScreen: {\n\t\t\ttype: Boolean,\n\t\t\trequired: true\n\t\t}\n\t},\n\tdata()\n\t{\n\t\treturn {\n\t\t\tshowNewUserPopup: false\n\t\t};\n\t},\n\tcomputed:\n\t{\n\t\tAvatarSize: () => AvatarSize,\n\t\tformattedDate(): string\n\t\t{\n\t\t\tif (this.needsBirthdayPlaceholder)\n\t\t\t{\n\t\t\t\treturn this.$Bitrix.Loc.getMessage('IM_RECENT_BIRTHDAY_DATE');\n\t\t\t}\n\n\t\t\treturn this.formatDate(this.item.message.date);\n\t\t},\n\n\t\tmessageText(): string\n\t\t{\n\t\t\tif (!this.item.message || !this.item.message.text)\n\t\t\t{\n\t\t\t\treturn this.isUser ? this.$store.getters['users/getPosition'](this.item.dialogId) : this.hiddenMessageText;\n\t\t\t}\n\n\t\t\treturn this.$store.getters['recent/getItemText'](this.item.dialogId);\n\t\t},\n\n\t\thiddenMessageText(): string\n\t\t{\n\t\t\tif (this.isUser)\n\t\t\t{\n\t\t\t\treturn this.$store.getters['users/getPosition'](this.item.dialogId);\n\t\t\t}\n\n\t\t\tif (this.dialog.type === ChatTypes.open)\n\t\t\t{\n\t\t\t\treturn this.$Bitrix.Loc.getMessage('IM_RECENT_CHAT_TYPE_OPEN');\n\t\t\t}\n\n\t\t\treturn this.$Bitrix.Loc.getMessage('IM_RECENT_CHAT_TYPE_GROUP');\n\t\t},\n\n\t\tstatusIcon(): string\n\t\t{\n\t\t\tif (!this.isLastMessageAuthor || this.isBot || this.needsBirthdayPlaceholder || !this.item.message)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (this.isSelfChat)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (this.item.message.status === MessageStatus.error)\n\t\t\t{\n\t\t\t\treturn 'error';\n\t\t\t}\n\n\t\t\tif (this.item.liked)\n\t\t\t{\n\t\t\t\treturn 'like';\n\t\t\t}\n\n\t\t\tif (this.item.message.status === MessageStatus.delivered)\n\t\t\t{\n\t\t\t\treturn 'read';\n\t\t\t}\n\n\t\t\treturn 'unread';\n\t\t},\n\n\t\tformattedCounter()\n\t\t{\n\t\t\treturn this.dialog.counter > 99 ? '99+' : this.dialog.counter;\n\t\t},\n\n\t\tuser()\n\t\t{\n\t\t\treturn this.$store.getters['users/get'](this.item.dialogId, true);\n\t\t},\n\n\t\tdialog()\n\t\t{\n\t\t\treturn this.$store.getters['dialogues/get'](this.item.dialogId, true);\n\t\t},\n\n\t\tcurrentUserId()\n\t\t{\n\t\t\treturn this.$store.state.application.common.userId;\n\t\t},\n\n\t\tisUser()\n\t\t{\n\t\t\treturn this.dialog.type === ChatTypes.user;\n\t\t},\n\n\t\tisChat()\n\t\t{\n\t\t\treturn !this.isUser;\n\t\t},\n\n\t\tisSelfChat()\n\t\t{\n\t\t\treturn this.isUser && this.user.id === this.currentUserId;\n\t\t},\n\n\t\tisBot()\n\t\t{\n\t\t\tif (this.isUser)\n\t\t\t{\n\t\t\t\treturn this.user.bot;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\tisLastMessageAuthor()\n\t\t{\n\t\t\tif (!this.item.message)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.currentUserId === this.item.message.senderId;\n\t\t},\n\n\t\tlastMessageAuthorAvatar()\n\t\t{\n\t\t\tconst authorDialog = this.$store.getters['dialogues/get'](this.item.message.senderId);\n\n\t\t\tif (!authorDialog)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn authorDialog.avatar;\n\t\t},\n\n\t\tlastMessageAuthorAvatarStyle()\n\t\t{\n\t\t\treturn {backgroundImage: `url('${this.lastMessageAuthorAvatar}')`};\n\t\t},\n\n\t\tisChatMuted()\n\t\t{\n\t\t\tif (this.isUser)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst isMuted = this.dialog.muteList.find(element => {\n\t\t\t\treturn element === this.currentUserId;\n\t\t\t});\n\n\t\t\treturn !!isMuted;\n\t\t},\n\n\t\tneedsBirthdayPlaceholder()\n\t\t{\n\t\t\tif (!this.isUser)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.$store.getters['recent/needsBirthdayPlaceholder'](this.item.dialogId);\n\t\t},\n\n\t\tshowBirthdays()\n\t\t{\n\t\t\treturn this.$store.getters['recent/getOption'](RecentSettings.showBirthday);\n\t\t},\n\n\t\tshowLastMessage()\n\t\t{\n\t\t\treturn this.$store.getters['recent/getOption'](RecentSettings.showLastMessage);\n\t\t},\n\n\t\tinvitation()\n\t\t{\n\t\t\treturn this.item.invitation;\n\t\t},\n\n\t\tnewUserPopupContainer()\n\t\t{\n\t\t\treturn `#popup-window-content-bx-im-recent-welcome-${this.item.dialogId}`;\n\t\t},\n\t},\n\twatch:\n\t{\n\t\tinvitation(newValue, oldValue)\n\t\t{\n\t\t\tif (!this.compactMode)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\t// invitation accepted, user logged in\n\t\t\tif (oldValue.isActive === true && newValue.isActive === false)\n\t\t\t{\n\t\t\t\tthis.openNewUserPopup();\n\t\t\t}\n\t\t}\n\t},\n\tmethods:\n\t{\n\t\topenNewUserPopup()\n\t\t{\n\t\t\tif (!this.isVisibleOnScreen || BX.MessengerProxy.isSliderOpened())\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.newUserPopup = this.getNewUserPopup();\n\t\t\tthis.newUserPopup.show();\n\t\t\tthis.showNewUserPopup = true;\n\t\t\tthis.$nextTick(() => {\n\t\t\t\tthis.newUserPopup.setOffset({\n\t\t\t\t\toffsetTop: -this.newUserPopup.popupContainer.offsetHeight + 1,\n\t\t\t\t\toffsetLeft: -this.newUserPopup.popupContainer.offsetWidth + 13\n\t\t\t\t});\n\t\t\t\tthis.newUserPopup.adjustPosition();\n\t\t\t});\n\t\t},\n\t\tgetNewUserPopup()\n\t\t{\n\t\t\treturn PopupManager.create({\n\t\t\t\tid: `bx-im-recent-welcome-${this.item.dialogId}`,\n\t\t\t\tbindElement: this.$refs.container,\n\t\t\t\tbindOptions: {forceBindPosition: true},\n\t\t\t\tclassName: 'bx-im-recent-welcome',\n\t\t\t\tcacheable: false,\n\t\t\t\tanimation: {\n\t\t\t\t\tshowClassName: 'bx-im-recent-new-user-popup-show',\n\t\t\t\t\tcloseClassName: 'bx-im-recent-new-user-popup-hide',\n\t\t\t\t\tcloseAnimationType: 'animation'\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t\tonNewUserPopupClick(event)\n\t\t{\n\t\t\tconst target = !this.compactMode || event.altKey? OpenTarget.current: OpenTarget.auto;\n\n\t\t\tEventEmitter.emit(EventType.dialog.open, {\n\t\t\t\t...this.item,\n\t\t\t\ttarget\n\t\t\t});\n\t\t},\n\t\tonNewUserPopupClose()\n\t\t{\n\t\t\tthis.newUserPopup.close();\n\t\t\tthis.newUserPopup = null;\n\t\t\tthis.showNewUserPopup = false;\n\t\t},\n\t\tformatDate(date)\n\t\t{\n\t\t\tconst format = [\n\t\t\t\t['today', 'H:i'],\n\t\t\t\t['d7', 'D'],\n\t\t\t\t['', 'd.m.Y']\n\t\t\t];\n\n\t\t\treturn BX.date.format(format, date);\n\t\t},\n\t},\n\t// language=Vue\n\ttemplate: `\n\t\t<div :data-id=\"item.dialogId\" class=\"bx-im-recent-item-wrap\">\n\t\t<div v-if=\"!compactMode\" :class=\"{'bx-im-recent-item-no-text': !showLastMessage, 'bx-im-recent-item-pinned': item.pinned}\" class=\"bx-im-recent-item\">\n\t\t\t<div class=\"bx-im-recent-avatar-wrap\">\n\t\t\t\t<Avatar :dialogId=\"item.dialogId\" :size=\"AvatarSize.L\" :withTyping=\"true\"/>\n\t\t\t</div>\n\t\t\t<div class=\"bx-im-recent-item-content\">\n\t\t\t\t<div class=\"bx-im-recent-item-content-header\">\n\t\t\t\t\t<ChatTitle :dialogId=\"item.dialogId\" :withMute=\"true\" />\n\t\t\t\t\t<div class=\"bx-im-recent-date\">\n\t\t\t\t\t\t<div v-if=\"statusIcon\" :class=\"'bx-im-recent-status-icon bx-im-recent-status-icon-' + statusIcon\"></div>\n\t\t\t\t\t\t{{ formattedDate }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bx-im-recent-item-content-bottom\">\n\t\t\t\t\t<div class=\"bx-im-recent-message-text-wrap\">\n\t\t\t\t\t\t<!-- Message text -->\n\t\t\t\t\t\t<span class=\"bx-im-recent-message-text\">\n\t\t\t\t\t\t\t<template v-if=\"item.draft.text && dialog.counter === 0\">\n\t\t\t\t\t\t\t\t<span class=\"bx-im-recent-draft-prefix\">{{ $Bitrix.Loc.getMessage('IM_RECENT_MESSAGE_DRAFT_2', {'#TEXT#': ''}) }}</span>\n\t\t\t\t\t\t\t\t<span>{{ item.draft.text }}</span>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<template v-else-if=\"item.invitation.isActive\">\n\t\t\t\t\t\t\t\t<span class=\"bx-im-recent-message-text-invitation\">{{ $Bitrix.Loc.getMessage('IM_RECENT_INVITATION_NOT_ACCEPTED') }}</span>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<template v-else-if=\"needsBirthdayPlaceholder\">\n\t\t\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_RECENT_BIRTHDAY') }}\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<template v-else-if=\"!showLastMessage\">\n\t\t\t\t\t\t\t\t{{ hiddenMessageText }}\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t<template v-else>\n\t\t\t\t\t\t\t\t<span v-if=\"isLastMessageAuthor\" class=\"bx-im-recent-last-message-author-icon-self\"></span>\n\t\t\t\t\t\t\t\t<template v-else-if=\"isChat && item.message.senderId\">\n\t\t\t\t\t\t\t\t\t<span v-if=\"lastMessageAuthorAvatar\" :style=\"lastMessageAuthorAvatarStyle\" class=\"bx-im-recent-last-message-author-icon-user\"></span>\n\t\t\t\t\t\t\t\t\t<span v-else class=\"bx-im-recent-last-message-author-icon-user bx-im-recent-last-message-author-icon-user-default\"></span>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<span>{{ messageText }}</span>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t</span>\n\t\t\t\t\t\t<!-- End message text -->\n\t\t\t\t\t</div>\n\t\t\t\t\t<div :class=\"{'bx-im-recent-counter-static-wrap-extended': dialog.counter > 99}\" class=\"bx-im-recent-counter-static-wrap\">\n\t\t\t\t\t\t<div v-if=\"item.unread || item.pinned || dialog.counter > 0\" class=\"bx-im-recent-counter-wrap\">\n\t\t\t\t\t\t\t<div v-if=\"item.pinned && dialog.counter === 0 && !item.unread\" class=\"bx-im-recent-pinned-icon\"></div>\n\t\t\t\t\t\t\t<div v-if=\"dialog.counter > 0 && !isSelfChat\" :class=\"{'bx-im-recent-counter-muted': isChatMuted}\" class=\"bx-im-recent-counter\">\n\t\t\t\t\t\t\t\t{{ formattedCounter }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div v-else-if=\"item.unread\" :class=\"{'bx-im-recent-counter-muted': isChatMuted}\" class=\"bx-im-recent-counter bx-im-recent-counter-unread\"></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if=\"compactMode\" class=\"bx-im-recent-item\" :class=\"{'bx-im-recent-item-pinned': item.pinned, 'bx-im-recent-item-no-counter': dialog.counter === 0}\" ref=\"container\">\n\t\t\t<div class=\"bx-im-recent-avatar-wrap\">\n\t\t\t\t<Avatar\n\t\t\t\t\t:dialogId=\"item.dialogId\"\n\t\t\t\t\t:size=\"AvatarSize.M\"\n\t\t\t\t\t:withStatus=\"false\"\n\t\t\t\t\t:withCounter=\"true\"\n\t\t\t\t/>\n\t\t\t</div>\n\t\t\t<template v-if=\"showNewUserPopup\">\n\t\t\t\t<Teleport :to=\"newUserPopupContainer\">\n\t\t\t\t\t<NewUserPopup :title=\"dialog.name\" :text=\"$Bitrix.Loc.getMessage('IM_RECENT_NEW_USER_POPUP_TEXT')\" @click=\"onNewUserPopupClick\" @close=\"onNewUserPopupClose\"/>\n\t\t\t\t</Teleport>\n\t\t\t</template>\n\t\t</div>\n\t\t</div>\n\t`\n};","import {mapState} from 'ui.vue3.vuex';\nimport {MenuManager} from 'main.popup';\nimport {Loc} from 'main.core';\nimport {RecentCallStatus, DialogType, AvatarSize} from 'im.v2.const';\nimport {Utils} from 'im.v2.lib.utils';\nimport {Avatar} from 'im.v2.component.elements';\n\n// @vue/component\nexport const ActiveCall = {\n\tname: 'ActiveCall',\n\tcomponents: {Avatar},\n\tprops: {\n\t\titem: {\n\t\t\ttype: Object,\n\t\t\trequired: true\n\t\t},\n\t\tcompactMode: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t}\n\t},\n\temits: ['click', 'contextmenu'],\n\tcomputed: {\n\t\tRecentCallStatus: () => RecentCallStatus,\n\t\tAvatarSize: () => AvatarSize,\n\t\tchatData()\n\t\t{\n\t\t\treturn this.item.call.associatedEntity;\n\t\t},\n\t\tisUser()\n\t\t{\n\t\t\treturn this.chatData.advanced.chatType === DialogType.private;\n\t\t},\n\t\tisTabWithActiveCall()\n\t\t{\n\t\t\treturn this.getCallController().hasActiveCall();\n\t\t},\n\t\tavatarStyle()\n\t\t{\n\t\t\treturn {backgroundImage: `url(${this.chatData.avatar})`};\n\t\t},\n\t\tavatarText()\n\t\t{\n\t\t\treturn Utils.text.getFirstLetters(this.item.name);\n\t\t},\n\t\tisDarkTheme()\n\t\t{\n\t\t\treturn this.application.options.darkTheme;\n\t\t},\n\t\tformattedName()\n\t\t{\n\t\t\treturn Utils.text.htmlspecialcharsback(this.item.name);\n\t\t},\n\t\t...mapState({\n\t\t\tapplication: state => state.application\n\t\t})\n\t},\n\tmethods:\n\t{\n\t\tonJoinClick(event)\n\t\t{\n\t\t\tif (this.joinMenu)\n\t\t\t{\n\t\t\t\tthis.joinMenu.destroy();\n\t\t\t}\n\t\t\tthis.joinMenu = this.getJoinMenu(event);\n\t\t\tthis.joinMenu.show();\n\t\t},\n\t\tonHangupClick()\n\t\t{\n\t\t\tthis.getCallController().leaveCurrentCall();\n\t\t},\n\t\tonClick(event)\n\t\t{\n\t\t\tif (this.item.state === RecentCallStatus.joined)\n\t\t\t{\n\t\t\t\tthis.getCallController().unfold();\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst item = this.$store.getters['recent/get'](this.item.dialogId);\n\t\t\tif (!item)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.$emit('click', {item, $event: event});\n\t\t},\n\t\tonRightClick()\n\t\t{\n\t\t\tconst item = this.$store.getters['recent/get'](this.item.dialogId);\n\t\t\tif (!item)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.$emit('contextmenu', {item, $event: event});\n\t\t},\n\t\tgetJoinMenu(event)\n\t\t{\n\t\t\treturn MenuManager.create({\n\t\t\t\tid: 'im-recent-active-call-join-menu',\n\t\t\t\tbindElement: event.target,\n\t\t\t\tdarkMode: this.isDarkTheme,\n\t\t\t\tcacheable: false,\n\t\t\t\titems: [\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: Loc.getMessage('IM_RECENT_ACTIVE_CALL_JOIN_VIDEO'),\n\t\t\t\t\t\tonclick: function() {\n\t\t\t\t\t\t\tthis.getCallController().joinCall(this.item.call.id, true);\n\t\t\t\t\t\t\tthis.joinMenu.close();\n\t\t\t\t\t\t}.bind(this)\n\t\t\t\t\t},\n\t\t\t\t\t{\n\t\t\t\t\t\ttext: Loc.getMessage('IM_RECENT_ACTIVE_CALL_JOIN_AUDIO'),\n\t\t\t\t\t\tonclick: function() {\n\t\t\t\t\t\t\tthis.getCallController().joinCall(this.item.call.id, false);\n\t\t\t\t\t\t\tthis.joinMenu.close();\n\t\t\t\t\t\t}.bind(this)\n\t\t\t\t\t}\n\t\t\t\t]\n\t\t\t});\n\t\t},\n\t\tgetCallController()\n\t\t{\n\t\t\treturn BX.MessengerProxy.getCallController();\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div :data-id=\"item.dialogId\" class=\"bx-im-recent-item-wrap\">\n\t\t<div v-if=\"!compactMode\" @click=\"onClick\" @click.right.prevent=\"onRightClick\" class=\"bx-im-recent-item bx-im-recent-active-call-item\">\n\t\t\t<div class=\"bx-im-recent-avatar-wrap\">\n\t\t\t\t<Avatar :dialogId=\"item.dialogId\" :size=\"AvatarSize.L\" />\n\t\t\t</div>\n\t\t\t<div class=\"bx-im-recent-item-content\">\n\t\t\t\t<!-- Waiting status -->\n\t\t\t\t<template v-if=\"item.state === RecentCallStatus.waiting\">\n\t\t\t\t\t<!-- 1-on-1 -->\n\t\t\t\t\t<div v-if=\"isUser\" class=\"bx-im-recent-active-call-waiting-content\">\n\t\t\t\t\t\t<div class=\"bx-im-recent-active-call-icon bx-im-recent-active-call-waiting-icon\"></div>\n\t\t\t\t\t\t<div class=\"bx-im-recent-active-call-waiting-title\">\n\t\t\t\t\t\t\t{{ formattedName }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<!-- Chat -->\n\t\t\t\t\t<div v-else>\n\t\t\t\t\t\t<div class=\"bx-im-recent-item-content-header\">\n\t\t\t\t\t\t\t<div class=\"bx-im-recent-active-call-icon bx-im-recent-active-call-waiting-icon\"></div>\n\t\t\t\t\t\t\t<span class=\"bx-im-recent-active-call-waiting-title\" :title=\"formattedName\">\n\t\t\t\t\t\t\t\t{{ formattedName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"bx-im-recent-item-content-bottom\">\n\t\t\t\t\t\t\t<div @click.stop=\"onJoinClick\" class=\"bx-im-recent-active-call-button bx-im-recent-active-call-join-button\">\n\t\t\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_RECENT_ACTIVE_CALL_JOIN') }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<!-- Joined status -->\n\t\t\t\t<template v-else-if=\"item.state === RecentCallStatus.joined\">\n\t\t\t\t\t<!-- 1-on-1 -->\n\t\t\t\t\t<div v-if=\"isUser || !isTabWithActiveCall\" class=\"bx-im-recent-active-call-joined-content\">\n\t\t\t\t\t\t<div class=\"bx-im-recent-active-call-icon bx-im-recent-active-call-joined-icon\"></div>\n\t\t\t\t\t\t<div class=\"bx-im-recent-active-call-joined-title\">\n\t\t\t\t\t\t\t{{ formattedName }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<!-- Chat -->\n\t\t\t\t\t<div v-else-if=\"!isUser && isTabWithActiveCall\">\n\t\t\t\t\t\t<div class=\"bx-im-recent-item-content-header\">\n\t\t\t\t\t\t\t<div class=\"bx-im-recent-active-call-icon bx-im-recent-active-call-joined-icon\"></div>\n\t\t\t\t\t\t\t<span class=\"bx-im-recent-active-call-joined-title\" :title=\"formattedName\">\n\t\t\t\t\t\t\t\t{{ formattedName }}\n\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"bx-im-recent-item-content-bottom\">\n\t\t\t\t\t\t\t<div @click.stop=\"onHangupClick\" class=\"bx-im-recent-active-call-button bx-im-recent-active-call-hangup-button\">\n\t\t\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_RECENT_ACTIVE_CALL_HANGUP') }}\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t</div>\n\t\t</div>\n\t\t<div v-if=\"compactMode\" @click=\"onClick\" @click.right.prevent=\"onRightClick\" class=\"bx-im-recent-item bx-im-recent-active-call-item\">\n\t\t\t<div class=\"bx-im-recent-avatar-wrap\">\n\t\t\t\t<Avatar :dialogId=\"item.dialogId\" :size=\"AvatarSize.M\" />\n\t\t\t\t<div class=\"bx-im-recent-active-call-compact-icon-container\">\n\t\t\t\t\t<div v-if=\"item.state === RecentCallStatus.waiting\" class=\"bx-im-recent-active-call-icon bx-im-recent-active-call-waiting-icon\"></div>\n\t\t\t\t\t<div v-else-if=\"item.state === RecentCallStatus.joined\" class=\"bx-im-recent-active-call-icon bx-im-recent-active-call-joined-icon\"></div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t</div>\n\t\t</div>\n\t`\n};","import {Type} from 'main.core';\nimport {EventEmitter} from 'main.core.events';\nimport {EventType, SettingsMap, RecentSettingsMap} from 'im.v2.const';\nimport {Logger} from 'im.v2.lib.logger';\nimport {Utils} from 'im.v2.lib.utils';\n\nexport class SettingsManager\n{\n\tstatic instance = null;\n\tstore: Object = null;\n\n\tstatic init($Bitrix): void\n\t{\n\t\tif (this.instance)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.instance = new this($Bitrix);\n\t}\n\n\tconstructor($Bitrix)\n\t{\n\t\tthis.store = $Bitrix.Data.get('controller').store;\n\t\tthis.initSettings();\n\n\t\tthis.onSettingsChangeHandler = this.onSettingsChange.bind(this);\n\t\tEventEmitter.subscribe(EventType.dialog.settingsChange, this.onSettingsChangeHandler);\n\n\t\tif (Utils.platform.isBitrixDesktop() && !Type.isUndefined(BX.desktop))\n\t\t{\n\t\t\tBX.desktop.addCustomEvent('bxSaveSettings', (settings) => {\n\t\t\t\tthis.onSettingsChangeHandler({data: settings});\n\t\t\t});\n\t\t}\n\t}\n\n\tinitSettings()\n\t{\n\t\tif (!BX.MessengerProxy)\n\t\t{\n\t\t\tconsole.error('Im.RecentList: SettingsManager: BX.MessengerProxy is not available');\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.initGeneralSettings();\n\t\tthis.initRecentSettings();\n\t}\n\n\tinitGeneralSettings()\n\t{\n\t\tconst initialSettings = {};\n\t\tObject.entries(SettingsMap).forEach(([oldName, name]) => {\n\t\t\tinitialSettings[name] = BX.MessengerProxy.getOption(oldName);\n\t\t});\n\n\t\tthis.store.dispatch('application/setOptions', initialSettings);\n\t}\n\n\tinitRecentSettings()\n\t{\n\t\tconst initialSettings = {};\n\t\tObject.entries(RecentSettingsMap).forEach(([oldName, name]) => {\n\t\t\tinitialSettings[name] = BX.MessengerProxy.getOption(oldName);\n\t\t});\n\n\t\tthis.store.dispatch('recent/setOptions', initialSettings);\n\t}\n\n\tonSettingsChange({data: event})\n\t{\n\t\tLogger.warn('Im.RecentList: SettingsChange', event);\n\t\tconst generalSettings = {};\n\t\tconst recentSettings = {};\n\t\tObject.entries(event).forEach(([name, value]) => {\n\t\t\tif (Object.keys(RecentSettingsMap).includes(name))\n\t\t\t{\n\t\t\t\trecentSettings[RecentSettingsMap[name]] = value;\n\t\t\t}\n\n\t\t\tif (Object.keys(SettingsMap).includes(name))\n\t\t\t{\n\t\t\t\tgeneralSettings[SettingsMap[name]] = value;\n\t\t\t}\n\t\t});\n\n\t\tthis.store.dispatch('application/setOptions', generalSettings);\n\t\tthis.store.dispatch('recent/setOptions', recentSettings);\n\t}\n\n\tdestroy()\n\t{\n\t\tEventEmitter.unsubscribe(EventType.dialog.settingsChange, this.onSettingsChangeHandler);\n\t}\n}","import {EventEmitter} from 'main.core.events';\nimport {Type} from 'main.core';\nimport {Utils} from 'im.v2.lib.utils';\n\nexport class BroadcastManager extends EventEmitter\n{\n\tstatic instance = null;\n\tstatic channelName = 'im-recent';\n\tstatic eventNamespace = 'BX.Messenger.v2.Recent.BroadcastManager';\n\tstatic events = {\n\t\trecentListUpdate: 'recentListUpdate'\n\t};\n\n\tstatic getInstance()\n\t{\n\t\tif (!this.instance)\n\t\t{\n\t\t\tthis.instance = new this();\n\t\t}\n\n\t\treturn this.instance;\n\t}\n\n\tconstructor()\n\t{\n\t\tsuper();\n\t\tthis.setEventNamespace(BroadcastManager.eventNamespace);\n\t\tthis.init();\n\t}\n\n\tisSupported()\n\t{\n\t\treturn !Type.isUndefined(window.BroadcastChannel) && !Utils.platform.isBitrixDesktop();\n\t}\n\n\tinit()\n\t{\n\t\tif (!this.isSupported())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.channel = new BroadcastChannel(BroadcastManager.channelName);\n\t\tthis.channel.addEventListener('message', ({data: {type, data}}) => {\n\t\t\tthis.emit(type, data);\n\t\t});\n\t}\n\n\tsendRecentList(recentData: Object)\n\t{\n\t\tif (!this.isSupported())\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.channel.postMessage({\n\t\t\ttype: BroadcastManager.events.recentListUpdate,\n\t\t\tdata: recentData\n\t\t});\n\t}\n}","import {EventEmitter} from 'main.core.events';\nimport {RecentCallStatus} from 'im.v2.const';\n\nexport class CallManager\n{\n\tstatic instance = null;\n\tstore: Object = null;\n\n\tstatic init($Bitrix): void\n\t{\n\t\tif (this.instance)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.instance = new this($Bitrix);\n\t}\n\n\tconstructor($Bitrix)\n\t{\n\t\tthis.store = $Bitrix.Data.get('controller').store;\n\n\t\tthis.onCallCreatedHandler = this.onCallCreated.bind(this);\n\t\tEventEmitter.subscribe('CallEvents::callCreated', this.onCallCreatedHandler);\n\t}\n\n\tonCallCreated(event)\n\t{\n\t\tconst {call} = event.getData()[0];\n\t\tcall.addEventListener(BX.Call.Event.onJoin, this.onCallJoin.bind(this));\n\t\tcall.addEventListener(BX.Call.Event.onLeave, this.onCallLeave.bind(this));\n\t\tcall.addEventListener(BX.Call.Event.onDestroy, this.onCallDestroy.bind(this));\n\n\t\tthis.store.dispatch('recent/addActiveCall', {\n\t\t\tdialogId: call.associatedEntity.id,\n\t\t\tname: call.associatedEntity.name,\n\t\t\tcall: call,\n\t\t\tstate: RecentCallStatus.waiting\n\t\t});\n\t}\n\n\tonCallJoin(event)\n\t{\n\t\tthis.store.dispatch('recent/updateActiveCall', {\n\t\t\tdialogId: event.call.associatedEntity.id,\n\t\t\tfields: {\n\t\t\t\tstate: RecentCallStatus.joined\n\t\t\t}\n\t\t});\n\t}\n\n\tonCallLeave(event)\n\t{\n\t\tthis.store.dispatch('recent/updateActiveCall', {\n\t\t\tdialogId: event.call.associatedEntity.id,\n\t\t\tfields: {\n\t\t\t\tstate: RecentCallStatus.waiting\n\t\t\t}\n\t\t});\n\t}\n\n\tonCallDestroy(event)\n\t{\n\t\tthis.store.dispatch('recent/deleteActiveCall', {\n\t\t\tdialogId: event.call.associatedEntity.id\n\t\t});\n\t}\n\n\tdestroy()\n\t{\n\t\tEventEmitter.unsubscribe(window, 'CallEvents::callCreated', this.onCallCreatedHandler);\n\t}\n}","import {EventEmitter} from 'main.core.events';\nimport {EventType} from 'im.v2.const';\n\nexport class DraftManager\n{\n\tstatic instance = null;\n\tstore: Object = null;\n\n\tstatic init($Bitrix): void\n\t{\n\t\tif (this.instance)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.instance = new this($Bitrix);\n\t}\n\n\tconstructor($Bitrix)\n\t{\n\t\tthis.store = $Bitrix.Data.get('controller').store;\n\n\t\tthis.initDraftHistory();\n\n\t\tthis.onSetDraftHandler = this.onSetDraft.bind(this);\n\t\tEventEmitter.subscribe(EventType.recent.setDraftMessage, this.onSetDraftHandler);\n\t}\n\n\tinitDraftHistory()\n\t{\n\t\tconst history = BX.MessengerProxy.getTextareaHistory();\n\t\tObject.entries(history).forEach(([dialogId, text]) => {\n\t\t\tthis.setDraftMessage(dialogId, text);\n\t\t});\n\t}\n\n\tonSetDraft({data: {dialogId, text}})\n\t{\n\t\tthis.setDraftMessage(dialogId, text);\n\t}\n\n\tsetDraftMessage(dialogId, text)\n\t{\n\t\tthis.store.dispatch('recent/draft', {\n\t\t\tid: dialogId,\n\t\t\ttext\n\t\t});\n\t}\n\n\tdestroy()\n\t{\n\t\tEventEmitter.unsubscribe(EventType.recent.setDraftMessage, this.onSetDraftHandler);\n\t}\n}","import {Loc} from 'main.core';\nimport {EventEmitter} from 'main.core.events';\nimport {EventType} from 'im.v2.const';\n\nexport class EventHandler\n{\n\tstatic instance = null;\n\tstore: Object = null;\n\n\tstatic init($Bitrix): void\n\t{\n\t\tif (this.instance)\n\t\t{\n\t\t\treturn;\n\t\t}\n\n\t\tthis.instance = new this($Bitrix);\n\t}\n\n\tconstructor($Bitrix)\n\t{\n\t\tthis.store = $Bitrix.Data.get('controller').store;\n\n\t\tthis.subscribeToEvents();\n\t}\n\n\tsubscribeToEvents()\n\t{\n\t\tthis.onSetCounterHandler = this.onSetCounter.bind(this);\n\t\tthis.onSetMessageHandler = this.onSetMessage.bind(this);\n\t\tthis.onHideChatHandler = this.onHideChat.bind(this);\n\t\tthis.onLeaveChatHandler = this.onLeaveChat.bind(this);\n\t\tthis.onClearLikeHandler = this.onClearLike.bind(this);\n\t\tthis.onClearHistoryHandler = this.onClearHistory.bind(this);\n\n\t\tEventEmitter.subscribe(EventType.recent.setCounter, this.onSetCounterHandler);\n\t\tEventEmitter.subscribe(EventType.recent.setMessage, this.onSetMessageHandler);\n\t\tEventEmitter.subscribe(EventType.recent.hideChat, this.onHideChatHandler);\n\t\tEventEmitter.subscribe(EventType.recent.leaveChat, this.onLeaveChatHandler);\n\t\tEventEmitter.subscribe(EventType.recent.clearLike, this.onClearLikeHandler);\n\t\tEventEmitter.subscribe(EventType.dialog.clearHistory, this.onClearHistoryHandler);\n\t}\n\n\tonSetCounter({data: {dialogId, counter}})\n\t{\n\t\tconst recentItem = this.store.getters['recent/get'](dialogId);\n\t\tconst dialog = this.store.getters['dialogues/get'](dialogId);\n\t\tif (!recentItem || !dialog)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('dialogues/update', {\n\t\t\tdialogId: dialogId,\n\t\t\tfields: {\n\t\t\t\tcounter: counter\n\t\t\t}\n\t\t});\n\t}\n\n\tonSetMessage({data: {id, dialogId, text, date}})\n\t{\n\t\tconst recentItem = this.store.getters['recent/get'](dialogId);\n\t\tconst dialog = this.store.getters['dialogues/get'](dialogId);\n\t\tif (!recentItem || !dialog)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (id && !id.toString().startsWith('temp') && id !== recentItem.message.id)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('recent/update', {\n\t\t\tid: dialogId,\n\t\t\tfields: {\n\t\t\t\tmessage: {\n\t\t\t\t\tid: id || 0,\n\t\t\t\t\ttext: text,\n\t\t\t\t\tsenderId: this.getCurrentUserId(),\n\t\t\t\t\tstatus: recentItem.message.status,\n\t\t\t\t\tdate: date || recentItem.message.date,\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tonHideChat({data: {dialogId}})\n\t{\n\t\tconst recentItem = this.store.getters['recent/get'](dialogId);\n\t\tif (!recentItem)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('recent/delete', {\n\t\t\tid: dialogId\n\t\t});\n\t}\n\n\tonLeaveChat({data: {dialogId}})\n\t{\n\t\tthis.onHideChat({data: {dialogId}});\n\t}\n\n\tonClearLike({data: {dialogId}})\n\t{\n\t\tconst recentItem = this.store.getters['recent/get'](dialogId);\n\t\tif (!recentItem || !recentItem.liked)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('recent/like', {\n\t\t\tid: dialogId,\n\t\t\tliked: false\n\t\t});\n\t}\n\n\tonClearHistory({data: {dialogId}})\n\t{\n\t\tconst recentItem = this.store.getters['recent/get'](dialogId);\n\t\tif (!recentItem)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.store.dispatch('recent/update', {\n\t\t\tid: dialogId,\n\t\t\tfields: {\n\t\t\t\tmessage: {\n\t\t\t\t\t...recentItem.message,\n\t\t\t\t\ttext: Loc.getMessage('IM_RECENT_DELETED_MESSAGE'),\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n\n\tgetCurrentUserId(): number\n\t{\n\t\treturn this.store.state.application.common.userId;\n\t}\n\n\tdestroy()\n\t{\n\t\tthis.unsubscribeEvents();\n\t}\n\n\tunsubscribeEvents()\n\t{\n\t\tEventEmitter.unsubscribe(EventType.recent.setCounter, this.onSetCounterHandler);\n\t\tEventEmitter.unsubscribe(EventType.recent.setMessage, this.onSetMessageHandler);\n\t\tEventEmitter.unsubscribe(EventType.recent.hideChat, this.onHideChatHandler);\n\t\tEventEmitter.unsubscribe(EventType.recent.leaveChat, this.onLeaveChatHandler);\n\t\tEventEmitter.unsubscribe(EventType.recent.clearLike, this.onClearLikeHandler);\n\t}\n}","import 'ui.design-tokens';\n\nimport {EventEmitter} from 'main.core.events';\nimport {mapState} from 'ui.vue3.vuex';\n\nimport {ChatTypes, EventType, RecentSettings, OpenTarget} from 'im.v2.const';\nimport {Utils} from 'im.v2.lib.utils';\nimport {RecentService} from 'im.v2.provider.service';\nimport {RecentLoadingState} from 'im.v2.component.elements';\nimport {RecentMenu} from 'im.v2.lib.menu';\n\nimport {RecentItem} from './components/recent-item';\nimport {ActiveCall} from './components/active-call';\n\nimport {SettingsManager} from './settings-manager';\nimport {BroadcastManager} from './broadcast-manager';\nimport {CallManager} from './call-manager';\nimport {DraftManager} from './draft-manager';\nimport {EventHandler} from './event-handler';\n\nimport './css/recent-list.css';\n\n// @vue/component\nexport const RecentList = {\n\tname: 'RecentList',\n\tcomponents: {LoadingState: RecentLoadingState, RecentItem, ActiveCall},\n\tdirectives:\n\t{\n\t\t'recent-list-observer':\n\t\t{\n\t\t\tmounted(element, binding)\n\t\t\t{\n\t\t\t\tbinding.instance.observer.observe(element);\n\t\t\t}\n\t\t}\n\t},\n\tprops: {\n\t\tcompactMode: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false\n\t\t}\n\t},\n\tdata()\n\t{\n\t\treturn {\n\t\t\tisLoading: false,\n\t\t\tvisibleElements: new Set()\n\t\t};\n\t},\n\tcomputed:\n\t{\n\t\tcollection()\n\t\t{\n\t\t\treturn this.$store.getters['recent/getCollection'];\n\t\t},\n\t\tsections()\n\t\t{\n\t\t\treturn [this.pinnedItems, this.generalItems];\n\t\t},\n\t\tpreparedItems()\n\t\t{\n\t\t\tconst filteredCollection = this.collection.filter(item => {\n\t\t\t\tif (!this.showBirthdays && item.options.birthdayPlaceholder)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst dialog = this.$store.getters['dialogues/get'](item.dialogId, true);\n\t\t\t\tconst isUser = dialog.type === ChatTypes.user;\n\t\t\t\tconst hasBirthday = isUser && this.showBirthdays && this.$store.getters['users/hasBirthday'](item.dialogId);\n\t\t\t\tif (!this.showInvited && item.options.defaultUserRecord && !hasBirthday)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t});\n\n\t\t\treturn [...filteredCollection].sort((a, b) => {\n\t\t\t\tconst firstDate = this.$store.getters['recent/getMessageDate'](a.dialogId);\n\t\t\t\tconst secondDate = this.$store.getters['recent/getMessageDate'](b.dialogId);\n\n\t\t\t\treturn secondDate - firstDate;\n\t\t\t});\n\t\t},\n\t\tpinnedItems()\n\t\t{\n\t\t\treturn this.preparedItems.filter(item => {\n\t\t\t\treturn item.pinned === true;\n\t\t\t});\n\t\t},\n\t\tgeneralItems()\n\t\t{\n\t\t\treturn this.preparedItems.filter(item => {\n\t\t\t\treturn item.pinned === false;\n\t\t\t});\n\t\t},\n\t\tisDarkTheme()\n\t\t{\n\t\t\treturn this.application.options.darkTheme;\n\t\t},\n\t\tshowBirthdays()\n\t\t{\n\t\t\treturn this.$store.getters['recent/getOption'](RecentSettings.showBirthday);\n\t\t},\n\t\tshowInvited()\n\t\t{\n\t\t\treturn this.$store.getters['recent/getOption'](RecentSettings.showInvited);\n\t\t},\n\t\ttransitionType()\n\t\t{\n\t\t\tif (this.compactMode)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (this.isLoading)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn 'bx-messenger-recent-transition';\n\t\t},\n\t\t...mapState({\n\t\t\tactiveCalls: state => state.recent.activeCalls,\n\t\t\tapplication: state => state.application\n\t\t})\n\t},\n\tcreated()\n\t{\n\t\tthis.recentService = RecentService.getInstance(this.$Bitrix);\n\t\tthis.contextMenuManager = new RecentMenu(this.$Bitrix);\n\n\t\tCallManager.init(this.$Bitrix);\n\t\tEventHandler.init(this.$Bitrix);\n\t\tSettingsManager.init(this.$Bitrix);\n\t\tthis.initBroadcastManager();\n\t\tthis.initObserver();\n\n\t\tthis.managePreloadedList();\n\t\tthis.manageChatOptions();\n\t},\n\tmounted()\n\t{\n\t\tthis.isLoading = true;\n\t\tthis.recentService.loadFirstPage().then(() => {\n\t\t\tthis.isLoading = false;\n\t\t\tDraftManager.init(this.$Bitrix);\n\t\t});\n\t\tthis.initBirthdayCheck();\n\t},\n\tbeforeUnmount()\n\t{\n\t\tthis.contextMenuManager.destroy();\n\t\tthis.clearBirthdayCheck();\n\t\tthis.destroyBroadcastManager();\n\t},\n\tmethods:\n\t{\n\t\tonScroll(event)\n\t\t{\n\t\t\tthis.contextMenuManager.close();\n\t\t\tif (!this.oneScreenRemaining(event) || !this.recentService.hasMoreItemsToLoad)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.isLoading = true;\n\t\t\tthis.recentService.loadNextPage().then(() => {\n\t\t\t\tthis.isLoading = false;\n\t\t\t});\n\t\t},\n\n\t\tonClick(item, event)\n\t\t{\n\t\t\tconst target = !this.compactMode || event.altKey? OpenTarget.current: OpenTarget.auto;\n\n\t\t\tEventEmitter.emit(EventType.dialog.open, {\n\t\t\t\t...item,\n\t\t\t\tchat: this.$store.getters['dialogues/get'](item.dialogId, true),\n\t\t\t\tuser: this.$store.getters['users/get'](item.dialogId, true),\n\t\t\t\ttarget\n\t\t\t});\n\t\t},\n\n\t\tonRightClick(item, event)\n\t\t{\n\t\t\tif (event.altKey && event.shiftKey)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst target = !this.compactMode || event.altKey? OpenTarget.current: OpenTarget.auto;\n\t\t\tconst context = {\n\t\t\t\t...item,\n\t\t\t\tcompactMode: this.compactMode,\n\t\t\t\ttarget\n\t\t\t};\n\n\t\t\tthis.contextMenuManager.openMenu(context, event.currentTarget);\n\n\t\t\tevent.preventDefault();\n\t\t},\n\n\t\tonCallClick({item, $event})\n\t\t{\n\t\t\tthis.onClick(item, $event);\n\t\t},\n\n\t\tonCallRightClick({item, $event})\n\t\t{\n\t\t\tthis.onRightClick(item, $event);\n\t\t},\n\n\t\toneScreenRemaining(event)\n\t\t{\n\t\t\treturn event.target.scrollTop + event.target.clientHeight >= event.target.scrollHeight - event.target.clientHeight;\n\t\t},\n\n\t\tinitObserver()\n\t\t{\n\t\t\tthis.observer = new IntersectionObserver(((entries) => {\n\t\t\t\tentries.forEach(entry => {\n\t\t\t\t\tif (entry.isIntersecting && entry.intersectionRatio === 1)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.visibleElements.add(entry.target.dataset.id);\n\t\t\t\t\t}\n\t\t\t\t\telse if (!entry.isIntersecting)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.visibleElements.delete(entry.target.dataset.id);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}), {threshold: [0, 1]});\n\t\t},\n\n\t\tinitBroadcastManager()\n\t\t{\n\t\t\tthis.onRecentListUpdate = (event) => {\n\t\t\t\tthis.recentService.setPreloadedData(event.data);\n\t\t\t};\n\t\t\tthis.broadcastManager = BroadcastManager.getInstance();\n\t\t\tthis.broadcastManager.subscribe(BroadcastManager.events.recentListUpdate, this.onRecentListUpdate);\n\t\t},\n\n\t\tdestroyBroadcastManager()\n\t\t{\n\t\t\tthis.broadcastManager = BroadcastManager.getInstance();\n\t\t\tthis.broadcastManager.unsubscribe(BroadcastManager.events.recentListUpdate, this.onRecentListUpdate);\n\t\t},\n\n\t\tinitBirthdayCheck()\n\t\t{\n\t\t\tconst fourHours = 60000*60*4;\n\t\t\tconst day = 60000*60*24;\n\t\t\tthis.birthdayCheckTimeout = setTimeout(() => {\n\t\t\t\tthis.recentService.loadFirstPage({ignorePreloadedItems: true});\n\t\t\t\tthis.birthdayCheckInterval = setInterval(() => {\n\t\t\t\t\tthis.recentService.loadFirstPage({ignorePreloadedItems: true});\n\t\t\t\t}, day);\n\t\t\t}, Utils.date.getTimeToNextMidnight() + fourHours);\n\t\t},\n\n\t\tclearBirthdayCheck()\n\t\t{\n\t\t\tclearTimeout(this.birthdayCheckTimeout);\n\t\t\tclearInterval(this.birthdayCheckInterval);\n\t\t},\n\n\t\tmanagePreloadedList()\n\t\t{\n\t\t\tconst {preloadedList} = this.$Bitrix.Application.get().params;\n\t\t\tif (!preloadedList)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.recentService.setPreloadedData(preloadedList);\n\t\t\tthis.broadcastManager.sendRecentList(preloadedList);\n\t\t},\n\n\t\tmanageChatOptions()\n\t\t{\n\t\t\tconst {chatOptions} = this.$Bitrix.Application.get().params;\n\t\t\tif (!chatOptions)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.$store.dispatch('dialogues/setChatOptions', chatOptions);\n\t\t}\n\t},\n\ttemplate: `\n\t\t<div @scroll=\"onScroll\" class=\"bx-messenger-recent-list\" :class=\"{'bx-messenger-recent-compact': compactMode}\" >\n\t\t\t<transition-group :name=\"transitionType\">\n\t\t\t\t<ActiveCall\n\t\t\t\t\tv-for=\"activeCall in activeCalls\"\n\t\t\t\t\t:key=\"'call-' + activeCall.dialogId\"\n\t\t\t\t\t:item=\"activeCall\"\n\t\t\t\t\t:compactMode=\"compactMode\"\n\t\t\t\t\t@click=\"onCallClick\"\n\t\t\t\t\t@click.right=\"onCallRightClick\"\n\t\t\t\t/>\n\t\t\t\t<template v-for=\"section in sections\">\n\t\t\t\t\t<RecentItem\n\t\t\t\t\t\tv-for=\"item in section\"\n\t\t\t\t\t\t:key=\"item.dialogId\"\n\t\t\t\t\t\t:item=\"item\"\n\t\t\t\t\t\t:compactMode=\"compactMode\"\n\t\t\t\t\t\t:isVisibleOnScreen=\"visibleElements.has(item.dialogId)\"\n\t\t\t\t\t\tv-recent-list-observer\n\t\t\t\t\t\t@click=\"onClick(item, $event)\"\n\t\t\t\t\t\t@click.right=\"onRightClick(item, $event)\"\n\t\t\t\t\t/>\n\t\t\t\t</template>\n\t\t\t</transition-group>\n\t\t\t<LoadingState v-if=\"isLoading\" :compactMode=\"compactMode\" />\n\t\t\t<template v-if=\"collection.length === 0\">\n\t\t\t\t<div class=\"bx-im-recent-empty\">{{ $Bitrix.Loc.getMessage('IM_RECENT_EMPTY') }}</div>\n\t\t\t</template>\n\t\t</div>\n\t`\n};"],"names":["NewUserPopup","name","props","title","type","String","required","text","emits","mounted","BX","MessengerProxy","playNewUserSound","setCloseTimer","onClosePopupHandler","onClosePopup","bind","EventEmitter","subscribe","EventType","dialog","closePopup","beforeUnmount","unsubscribe","methods","onClick","$emit","onMouseOver","clearTimeout","closeTimeout","onMouseLeave","time","setTimeout","template","RecentItem","components","Avatar","ChatTitle","item","Object","compactMode","Boolean","default","isVisibleOnScreen","data","showNewUserPopup","computed","AvatarSize","formattedDate","needsBirthdayPlaceholder","$Bitrix","Loc","getMessage","formatDate","message","date","messageText","isUser","$store","getters","dialogId","hiddenMessageText","ChatTypes","open","statusIcon","isLastMessageAuthor","isBot","isSelfChat","status","MessageStatus","error","liked","delivered","formattedCounter","counter","user","currentUserId","state","application","common","userId","isChat","id","bot","senderId","lastMessageAuthorAvatar","authorDialog","avatar","lastMessageAuthorAvatarStyle","backgroundImage","isChatMuted","isMuted","muteList","find","element","showBirthdays","RecentSettings","showBirthday","showLastMessage","invitation","newUserPopupContainer","watch","newValue","oldValue","isActive","openNewUserPopup","isSliderOpened","newUserPopup","getNewUserPopup","show","$nextTick","setOffset","offsetTop","popupContainer","offsetHeight","offsetLeft","offsetWidth","adjustPosition","PopupManager","create","bindElement","$refs","container","bindOptions","forceBindPosition","className","cacheable","animation","showClassName","closeClassName","closeAnimationType","onNewUserPopupClick","event","target","altKey","OpenTarget","current","auto","emit","onNewUserPopupClose","close","format","ActiveCall","RecentCallStatus","chatData","call","associatedEntity","advanced","chatType","DialogType","private","isTabWithActiveCall","getCallController","hasActiveCall","avatarStyle","avatarText","Utils","getFirstLetters","isDarkTheme","options","darkTheme","formattedName","htmlspecialcharsback","mapState","onJoinClick","joinMenu","destroy","getJoinMenu","onHangupClick","leaveCurrentCall","joined","unfold","$event","onRightClick","MenuManager","darkMode","items","onclick","joinCall","SettingsManager","init","instance","constructor","store","Data","get","initSettings","onSettingsChangeHandler","onSettingsChange","settingsChange","platform","isBitrixDesktop","Type","isUndefined","desktop","addCustomEvent","settings","console","initGeneralSettings","initRecentSettings","initialSettings","entries","SettingsMap","forEach","oldName","getOption","dispatch","RecentSettingsMap","Logger","warn","generalSettings","recentSettings","value","keys","includes","BroadcastManager","getInstance","setEventNamespace","eventNamespace","isSupported","window","BroadcastChannel","channel","channelName","addEventListener","sendRecentList","recentData","postMessage","events","recentListUpdate","CallManager","onCallCreatedHandler","onCallCreated","getData","Call","Event","onJoin","onCallJoin","onLeave","onCallLeave","onDestroy","onCallDestroy","waiting","fields","DraftManager","initDraftHistory","onSetDraftHandler","onSetDraft","recent","setDraftMessage","history","getTextareaHistory","EventHandler","subscribeToEvents","onSetCounterHandler","onSetCounter","onSetMessageHandler","onSetMessage","onHideChatHandler","onHideChat","onLeaveChatHandler","onLeaveChat","onClearLikeHandler","onClearLike","onClearHistoryHandler","onClearHistory","setCounter","setMessage","hideChat","leaveChat","clearLike","clearHistory","recentItem","toString","startsWith","getCurrentUserId","unsubscribeEvents","RecentList","LoadingState","RecentLoadingState","directives","binding","observer","observe","isLoading","visibleElements","Set","collection","sections","pinnedItems","generalItems","preparedItems","filteredCollection","filter","birthdayPlaceholder","hasBirthday","showInvited","defaultUserRecord","sort","a","b","firstDate","secondDate","pinned","transitionType","activeCalls","created","recentService","RecentService","contextMenuManager","RecentMenu","initBroadcastManager","initObserver","managePreloadedList","manageChatOptions","loadFirstPage","then","initBirthdayCheck","clearBirthdayCheck","destroyBroadcastManager","onScroll","oneScreenRemaining","hasMoreItemsToLoad","loadNextPage","chat","shiftKey","context","openMenu","currentTarget","preventDefault","onCallClick","onCallRightClick","scrollTop","clientHeight","scrollHeight","IntersectionObserver","entry","isIntersecting","intersectionRatio","add","dataset","delete","threshold","onRecentListUpdate","setPreloadedData","broadcastManager","fourHours","day","birthdayCheckTimeout","ignorePreloadedItems","birthdayCheckInterval","setInterval","getTimeToNextMidnight","clearInterval","preloadedList","Application","params","chatOptions"],"mappings":"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"}