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/component/recent/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/component/recent/dist/recent.bundle.js.map
{"version":3,"file":"recent.bundle.js","sources":["../src/component/recent-item.js","../src/recent.js"],"sourcesContent":["import 'ui.design-tokens';\n\nimport { Utils } from \"im.lib.utils\";\nimport {TemplateTypes as ItemTypes, RecentSection as Section, MessageStatus, ChatTypes} from 'im.const';\n\nimport \"./recent-item.css\";\nimport { BitrixVue } from \"ui.vue\";\n\nconst RecentItem = BitrixVue.localComponent('bx-im-component-recent-item', {\n\tprops: [\n\t\t'itemData'\n\t],\n\n\tmethods:\n\t{\n\t\tonClick(event)\n\t\t{\n\t\t\tthis.$emit('click', ({id: this.item.id, $event: event}));\n\t\t},\n\t\tonRightClick(event)\n\t\t{\n\t\t\tthis.$emit('rightClick', {id: this.item.id, $event: event});\n\t\t},\n\t\tformatDate(date)\n\t\t{\n\t\t\tlet weekDays = [\n\t\t\t\tthis.localize['IM_RECENT_WEEKDAY_0'],\n\t\t\t\tthis.localize['IM_RECENT_WEEKDAY_1'],\n\t\t\t\tthis.localize['IM_RECENT_WEEKDAY_2'],\n\t\t\t\tthis.localize['IM_RECENT_WEEKDAY_3'],\n\t\t\t\tthis.localize['IM_RECENT_WEEKDAY_4'],\n\t\t\t\tthis.localize['IM_RECENT_WEEKDAY_5'],\n\t\t\t\tthis.localize['IM_RECENT_WEEKDAY_6'],\n\t\t\t];\n\n\t\t\tdate = date? new Date(date): new Date();\n\t\t\tlet currentDate = new Date();\n\n\t\t\tlet dateWeekDay = date.getDay() - (date.getDay() === 0 ? -6 : 1);\n\t\t\tlet currentDayOfWeek = currentDate.getDay() - (currentDate.getDay() === 0 ? -6 : 1);\n\n\t\t\tlet weekStartDate = currentDate.getDate() - currentDayOfWeek;\n\t\t\tlet weekStartTime = new Date(new Date(new Date().setDate(weekStartDate)).setHours(0, 0, 0)).getTime();\n\n\t\t\tif (\n\t\t\t\tdate.getFullYear() === currentDate.getFullYear()\n\t\t\t\t&& date.getMonth() === currentDate.getMonth()\n\t\t\t\t&& date.getDate() === currentDate.getDate()\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn Utils.date.format(date, 'H:i');\n\t\t\t}\n\t\t\telse if (date.getTime() > weekStartTime)\n\t\t\t{\n\t\t\t\treturn weekDays[dateWeekDay];\n\t\t\t}\n\t\t\telse if (date.getFullYear() === currentDate.getFullYear())\n\t\t\t{\n\t\t\t\treturn Utils.date.format(date, 'd.m');\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn Utils.date.format(date, 'd.m.Y');\n\t\t\t}\n\t\t},\n\t\tgetTypingUsers()\n\t\t{\n\t\t\tif (this.isChat && this.dialogData && this.isSomeoneTyping)\n\t\t\t{\n\t\t\t\treturn this.dialogData.writingList;\n\t\t\t}\n\n\t\t\tif (this.isUser && this.isSomeoneTyping)\n\t\t\t{\n\t\t\t\tconst userDialog = this.getUserDialog(this.rawItem.userId);\n\n\t\t\t\treturn userDialog.writingList;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t\tgetUserDialog(userId)\n\t\t{\n\t\t\treturn this.$root.$store.getters['dialogues/get'](userId);\n\t\t}\n\t},\n\tcomputed:\n\t{\n\t\tItemTypes: () => ItemTypes,\n\t\trawItem()\n\t\t{\n\t\t\treturn this.itemData;\n\t\t},\n\t\titem()\n\t\t{\n\t\t\treturn {\n\t\t\t\tid: this.rawItem.id,\n\t\t\t\ttemplate: this.rawItem.template,\n\t\t\t\ttype: this.rawItem.chatType,\n\t\t\t\tsectionCode: this.rawItem.sectionCode,\n\t\t\t\ttitle: {\n\t\t\t\t\tleftIcon: this.titleLeftIcon,\n\t\t\t\t\tvalue: this.titleValue,\n\t\t\t\t\trightIcon: this.titleRightIcon\n\t\t\t\t},\n\t\t\t\tsubtitle: {\n\t\t\t\t\tleftIcon: this.subtitleLeftIcon,\n\t\t\t\t\tvalue: this.subtitleValue\n\t\t\t\t},\n\t\t\t\tavatar: {\n\t\t\t\t\turl: this.avatarUrl,\n\t\t\t\t\tbottomRightIcon: this.avatarBottomRightIcon\n\t\t\t\t},\n\t\t\t\tmessage: this.rawItem.message,\n\t\t\t\tdate: {\n\t\t\t\t\tleftIcon: this.dateLeftIcon,\n\t\t\t\t\tvalue: this.formatDate(this.rawItem.message? this.rawItem.message.date: 0)\n\t\t\t\t},\n\t\t\t\tcounter: {\n\t\t\t\t\tvalue: this.rawItem.counter,\n\t\t\t\t\tleftIcon: this.counterLeftIcon\n\t\t\t\t},\n\t\t\t\tnotification: false,\n\t\t\t}\n\t\t},\n\n\t\t//background for pinned item\n\t\tlistItemStyle()\n\t\t{\n\t\t\tif (this.rawItem.sectionCode === Section.pinned)\n\t\t\t{\n\t\t\t\treturn {\n\t\t\t\t\tbackgroundColor: '#f7f7f7'\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {};\n\t\t},\n\n\t\t//avatar background color if no image\n\t\timageStyle()\n\t\t{\n\t\t\tlet backgroundColor = '';\n\t\t\tif (!this.item.avatar.url)\n\t\t\t{\n\t\t\t\tbackgroundColor = this.imageColor;\n\t\t\t}\n\n\t\t\treturn {\n\t\t\t\tbackgroundColor\n\t\t\t};\n\t\t},\n\n\t\t//color of user, chat or notify\n\t\timageColor()\n\t\t{\n\t\t\tif (this.isUser && this.userData)\n\t\t\t{\n\t\t\t\treturn this.userData.color;\n\t\t\t}\n\n\t\t\tif (this.isChat && this.dialogData)\n\t\t\t{\n\t\t\t\treturn this.dialogData.color;\n\t\t\t}\n\n\t\t\tif (this.isNotificationChat)\n\t\t\t{\n\t\t\t\treturn this.rawItem.color;\n\t\t\t}\n\t\t},\n\n\t\t//class for general chat icon\n\t\timageClass()\n\t\t{\n\t\t\tlet classes = 'bx-im-recent-item-image ';\n\n\t\t\tif (this.isGeneralChat)\n\t\t\t{\n\t\t\t\tclasses += 'bx-im-recent-item-image-general';\n\t\t\t}\n\n\t\t\treturn classes;\n\t\t},\n\n\t\t//text on avatar if no image\n\t\tavatarText()\n\t\t{\n\t\t\tconst title = this.item.title.value.replace(/[\\.\\,\\'\\\"]/g,''); // TODO set special chars entity\n\t\t\tconst words = title.split(' ');\n\t\t\tif (words.length > 1)\n\t\t\t{\n\t\t\t\treturn words[0].charAt(0) + words[1].charAt(0);\n\t\t\t}\n\t\t\telse if (words.length === 1)\n\t\t\t{\n\t\t\t\treturn words[0].charAt(0);\n\t\t\t}\n\t\t},\n\n\t\t//placeholder for general chat, url for users and chats\n\t\tavatarUrl()\n\t\t{\n\t\t\tif (this.isGeneralChat)\n\t\t\t{\n\t\t\t\treturn '/bitrix/js/im/images/blank.gif';\n\t\t\t}\n\n\t\t\tif (this.isUser && this.userData)\n\t\t\t{\n\t\t\t\treturn this.userData.avatar;\n\t\t\t}\n\n\t\t\tif (this.isChat && this.dialogData)\n\t\t\t{\n\t\t\t\treturn this.dialogData.avatar;\n\t\t\t}\n\t\t},\n\n\t\t//Priority of avatar bottom right icon (only for users)\n\t\t//1.typing\n\t\t//2.mobile online\n\t\t//3.manual set away or dnd\n\t\t//4.online\n\t\t//5.offline\n\t\tavatarBottomRightIcon()\n\t\t{\n\t\t\tif (this.isUser && !this.isBot)\n\t\t\t{\n\t\t\t\tif (this.isSomeoneTyping)\n\t\t\t\t{\n\t\t\t\t\treturn 'typing';\n\t\t\t\t}\n\t\t\t\telse if (this.userData)\n\t\t\t\t{\n\t\t\t\t\tif (this.userData.isMobileOnline)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn 'mobile-online';\n\t\t\t\t\t}\n\t\t\t\t\telse if (this.userData.isOnline)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn this.userData.status;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\treturn 'offline';\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn 'none';\n\t\t},\n\n\t\t//Title left icon\n\t\t//For users:\n\t\t//1.absent\n\t\t//2.birthday\n\t\t//For chats - type of chat\n\t\ttitleLeftIcon()\n\t\t{\n\t\t\tif (this.isUser)\n\t\t\t{\n\t\t\t\tif (this.isBot)\n\t\t\t\t{\n\t\t\t\t\treturn 'bot';\n\t\t\t\t}\n\t\t\t\telse if (this.isExtranet)\n\t\t\t\t{\n\t\t\t\t\treturn 'extranet';\n\t\t\t\t}\n\t\t\t\telse if (this.isNetwork)\n\t\t\t\t{\n\t\t\t\t\treturn 'network';\n\t\t\t\t}\n\t\t\t\telse if (this.userData)\n\t\t\t\t{\n\t\t\t\t\tif (this.userData.isAbsent)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn 'absent';\n\t\t\t\t\t}\n\t\t\t\t\telse if (this.userData.isBirthday)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn 'birthday';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (this.isChat)\n\t\t\t{\n\t\t\t\treturn this.rawItem.chatType;\n\t\t\t}\n\t\t},\n\n\t\t//chat name\n\t\ttitleValue()\n\t\t{\n\t\t\tif (this.isUser && this.userData)\n\t\t\t{\n\t\t\t\treturn this.userData.name;\n\t\t\t}\n\n\t\t\tif (this.isChat && this.dialogData)\n\t\t\t{\n\t\t\t\treturn this.dialogData.name;\n\t\t\t}\n\n\t\t\tif (this.isNotificationChat)\n\t\t\t{\n\t\t\t\treturn this.rawItem.title;\n\t\t\t}\n\n\t\t\treturn this.rawItem.title;\n\t\t},\n\n\t\t//muted notifications icon for chats\n\t\ttitleRightIcon()\n\t\t{\n\t\t\treturn this.isChatMuted ? 'muted': '';\n\t\t},\n\n\t\t//icon if we wrote last message\n\t\tsubtitleLeftIcon()\n\t\t{\n\t\t\tif (this.isLastMessageAuthor)\n\t\t\t{\n\t\t\t\treturn 'author';\n\t\t\t}\n\n\t\t\treturn '';\n\t\t},\n\n\t\t//subtitle - typing message or last message text\n\t\tsubtitleValue()\n\t\t{\n\t\t\tif (this.isSomeoneTyping && this.isUser)\n\t\t\t{\n\t\t\t\treturn this.localize['IM_RECENT_USER_TYPING'];\n\t\t\t}\n\t\t\telse if (this.isSomeoneTyping && this.isChat)\n\t\t\t{\n\t\t\t\tconst typingUsers = this.getTypingUsers();\n\n\t\t\t\tif (typingUsers.length === 1)\n\t\t\t\t{\n\t\t\t\t\tconst nameWords = typingUsers[0].userName.split(' ');\n\n\t\t\t\t\treturn `${nameWords[0]} ${this.localize['IM_RECENT_USER_TYPING']}`;\n\t\t\t\t}\n\t\t\t\telse if (typingUsers.length > 1)\n\t\t\t\t{\n\t\t\t\t\treturn `${this.localize['IM_RECENT_USERS_TYPING']}`;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!this.rawItem.message || !this.rawItem.message.text)\n\t\t\t{\n\t\t\t\treturn this.userData.workPosition;\n\t\t\t}\n\n\t\t\treturn this.rawItem.message.text;\n\t\t},\n\n\t\t//message read status icon (if current user's message was read by someone in chat)\n\t\tdateLeftIcon()\n\t\t{\n\t\t\tif (!this.isLastMessageAuthor || this.isBot || this.isNotificationChat)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (!this.rawItem.message)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (this.rawItem.message.status === MessageStatus.error)\n\t\t\t{\n\t\t\t\treturn 'error';\n\t\t\t}\n\n\t\t\tconst wasRead = this.rawItem.message.status === MessageStatus.delivered;\n\n\t\t\tif (wasRead)\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\t//pinned icon\n\t\tcounterLeftIcon()\n\t\t{\n\t\t\treturn this.rawItem.pinned ? 'pinned' : '';\n\t\t},\n\n\t\t//grey counter style for muted chats\n\t\tcounterClasses()\n\t\t{\n\t\t\tconst classes = ['bx-im-recent-item-bottom-counter-value'];\n\n\t\t\tif (this.isChatMuted)\n\t\t\t{\n\t\t\t\tclasses.push('bx-im-recent-item-bottom-counter-value-muted');\n\t\t\t}\n\n\t\t\treturn classes;\n\t\t},\n\n\t\tformattedCounter()\n\t\t{\n\t\t\treturn this.item.counter.value > 99 ? '99+' : this.item.counter.value;\n\t\t},\n\n\t\tuserData()\n\t\t{\n\t\t\treturn this.$root.$store.getters['users/get'](this.rawItem.userId, true);\n\t\t},\n\n\t\tdialogData()\n\t\t{\n\t\t\treturn this.$root.$store.getters['dialogues/getByChatId'](this.rawItem.chatId);\n\t\t},\n\n\t\tcurrentUserId()\n\t\t{\n\t\t\treturn this.$root.$store.state.application.common.userId;\n\t\t},\n\n\t\tisChat()\n\t\t{\n\t\t\treturn [ChatTypes.chat, ChatTypes.open].includes(this.rawItem.chatType)\n\t\t},\n\n\t\tisUser()\n\t\t{\n\t\t\treturn this.rawItem.chatType === ChatTypes.user;\n\t\t},\n\n\t\tisExtranet()\n\t\t{\n\t\t\tif (this.isUser && this.userData)\n\t\t\t{\n\t\t\t\treturn this.userData.extranet\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\tisNetwork()\n\t\t{\n\t\t\tif (this.isUser && this.userData)\n\t\t\t{\n\t\t\t\treturn this.userData.network\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\tisBot()\n\t\t{\n\t\t\tif (this.isUser && this.userData)\n\t\t\t{\n\t\t\t\treturn this.userData.bot\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\tisNotificationChat()\n\t\t{\n\t\t\treturn this.rawItem.id === 'notify';\n\t\t},\n\n\t\tisGeneralChat()\n\t\t{\n\t\t\treturn this.rawItem.id === 'chat1';\n\t\t},\n\n\t\tisSomeoneTyping()\n\t\t{\n\t\t\tif (this.isUser)\n\t\t\t{\n\t\t\t\tconst userDialog = this.getUserDialog(this.rawItem.userId);\n\t\t\t\tif (!userDialog)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn Object.keys(userDialog.writingList).length > 0;\n\t\t\t}\n\t\t\telse if (this.isChat && this.dialogData)\n\t\t\t{\n\t\t\t\treturn Object.keys(this.dialogData.writingList).length > 0;\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.rawItem.message)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.currentUserId === this.rawItem.message.senderId;\n\t\t},\n\n\t\tisChatMuted()\n\t\t{\n\t\t\tif (this.isChat && this.dialogData)\n\t\t\t{\n\t\t\t\tconst isMuted = this.dialogData.muteList.find(element => {\n\t\t\t\t\treturn element === this.currentUserId;\n\t\t\t\t});\n\n\t\t\t\treturn !!isMuted;\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\n\t\tlocalize()\n\t\t{\n\t\t\treturn BitrixVue.getFilteredPhrases('IM_RECENT_', this);\n\t\t},\n\t},\n\ttemplate: `\n\t\t<div class=\"bx-im-recent-item\" :style=\"listItemStyle\" @click=\"onClick\" @click.right=\"onRightClick\">\n\t\t\t<template v-if=\"item.template !== ItemTypes.placeholder\">\n\t\t\t\t<div v-if=\"item.avatar\" class=\"bx-im-recent-item-image-wrap\">\n\t\t\t\t\t<img v-if=\"item.avatar.url\" :src=\"item.avatar.url\" :style=\"imageStyle\" :class=\"imageClass\" alt=\"\">\n\t\t\t\t\t<div v-else-if=\"!item.avatar.url\" :style=\"imageStyle\" class=\"bx-im-recent-item-image-text\">{{ avatarText }}</div>\t\n\t\t\t\t\t<div v-if=\"item.avatar.topLeftIcon\" :class=\"'bx-im-recent-icon-avatar-top-left bx-im-recent-avatar-top-left-' + item.avatar.topLeftIcon\"></div>\n\t\t\t\t\t<div v-if=\"item.avatar.bottomRightIcon\" :class=\"'bx-im-recent-icon-avatar-bottom-right bx-im-recent-avatar-bottom-right-' + item.avatar.bottomRightIcon\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bx-im-recent-item-content\">\n\t\t\t\t\t<div class=\"bx-im-recent-item-content-header\">\n\t\t\t\t\t\t<div v-if=\"item.title\" class=\"bx-im-recent-item-header-title\">\n\t\t\t\t\t\t\t<div v-if=\"item.title.leftIcon\" :class=\"'bx-im-recent-icon-title-left bx-im-recent-icon-title-left-' + item.title.leftIcon\"></div>\n\t\t\t\t\t\t\t<span class=\"bx-im-recent-item-header-title-text\">{{ item.title.value }}</span>\n\t\t\t\t\t\t\t<div v-if=\"item.title.rightIcon\" :class=\"'bx-im-recent-icon-title-right bx-im-recent-icon-title-right-' + item.title.rightIcon\"></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div v-if=\"item.date\" class=\"bx-im-recent-item-header-date\">\n\t\t\t\t\t\t\t<div v-if=\"item.date.leftIcon\" :class=\"'bx-im-recent-icon-date-left bx-im-recent-icon-date-left-' + item.date.leftIcon\"></div>\n\t\t\t\t\t\t\t{{ item.date.value }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"bx-im-recent-item-content-bottom\">\n\t\t\t\t\t\t<div v-if=\"item.subtitle\" class=\"bx-im-recent-item-bottom-subtitle\">\n\t\t\t\t\t\t\t<div v-if=\"item.subtitle.leftIcon\" :class=\"'bx-im-recent-icon-subtitle-left bx-im-recent-icon-subtitle-left-' + item.subtitle.leftIcon\"></div>\n\t\t\t\t\t\t\t<span class=\"bx-im-recent-item-bottom-subtitle-text\">{{ item.subtitle.value }}</span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"bx-im-recent-item-bottom-counter\">\n\t\t\t\t\t\t\t<div v-if=\"item.counter.leftIcon\" :class=\"'bx-im-recent-icon-counter-left bx-im-recent-icon-counter-left-' + item.counter.leftIcon\"></div>\n\t\t\t\t\t\t\t<div v-if=\"item.counter.value > 0\" :class=\"counterClasses\">{{ formattedCounter }}</div>\n\t\t\t\t\t\t\t<div v-else-if=\"item.notification\" class=\"bx-im-recent-item-bottom-counter-notification\"></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</template>\n\t\t\t<template v-else-if=\"item.template === ItemTypes.placeholder\">\n\t\t\t\t<div class=\"bx-im-recent-item-image-wrap\">\n\t\t\t\t\t<div class=\"bx-im-recent-item-image bx-im-recent-item-placeholder-image\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bx-im-recent-item-content\">\n\t\t\t\t\t<div class=\"bx-im-recent-item-content-header\">\n\t\t\t\t\t\t<div class=\"bx-im-recent-item-placeholder-title\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"bx-im-recent-item-content-bottom\">\n\t\t\t\t\t\t<div class=\"bx-im-recent-item-bottom-subtitle\">\n\t\t\t\t\t\t\t<div class=\"bx-im-recent-item-placeholder-subtitle\"></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</template>\n\t\t</div>\n\t`\n});\n\nexport {RecentItem};","/**\n * Bitrix im\n * Recentlist vue component\n *\n * @package bitrix\n * @subpackage mobile\n * @copyright 2001-2019 Bitrix\n */\nimport {BitrixVue} from \"ui.vue\";\nimport {Vuex} from \"ui.vue.vuex\";\nimport {RestMethod, RestMethodHandler, EventType, RecentSection as Section, TemplateTypes} from \"im.const\";\n\nimport {RecentItem} from \"./component/recent-item\";\nimport { EventEmitter } from \"main.core.events\";\nimport \"./recent.css\";\n\n/**\n * @notice Do not mutate or clone this component! It is under development.\n */\nBitrixVue.component('bx-im-component-recent',\n\t{\n\t\tcomponents: {RecentItem},\n\t\tprops: {\n\t\t\thasDialog: false\n\t\t},\n\t\tdata: function()\n\t\t{\n\t\t\treturn {\n\t\t\t\tpaginationCount: 50,\n\t\t\t\tloadingMore: false,\n\t\t\t\thasMoreToLoad: true,\n\t\t\t\tplaceholderCount: 0,\n\t\t\t\tlastMessageDate: null\n\t\t\t};\n\t\t},\n\t\tcreated()\n\t\t{\n\n\t\t},\n\t\tmounted()\n\t\t{\n\t\t\tthis.drawPlaceholders().then(this.getFirstPage);\n\t\t\tthis.initObserver();\n\t\t},\n\t\tcomputed:\n\t\t{\n\t\t\tpinnedItems()\n\t\t\t{\n\t\t\t\treturn this.collection.filter(item => {\n\t\t\t\t\treturn item.pinned === true;\n\t\t\t\t});\n\t\t\t},\n\t\t\tgeneralItems()\n\t\t\t{\n\t\t\t\treturn this.collection.filter(item => {\n\t\t\t\t\treturn item.pinned === false;\n\t\t\t\t});\n\t\t\t},\n\t\t\t...Vuex.mapState({\n\t\t\t\tcollection: state => state.recent.collection\n\t\t\t})\n\t\t},\n\t\tmethods:\n\t\t{\n\t\t\t/* region 01. Handlers */\n\t\t\tonScroll(event)\n\t\t\t{\n\t\t\t\tif (this.oneScreenRemaining(event))\n\t\t\t\t{\n\t\t\t\t\tthis.loadNextPage();\n\t\t\t\t}\n\t\t\t},\n\n\t\t\tonClick(event)\n\t\t\t{\n\t\t\t\tEventEmitter.emit(EventType.dialog.open, event);\n\t\t\t},\n\n\t\t\tonRightClick(event)\n\t\t\t{\n\t\t\t\tthis.openOldContextMenu(event);\n\t\t\t},\n\t\t\t/* endregion 01. Handlers */\n\n\t\t\t/* region 02. Ex-controller */\n\t\t\tgeneratePlaceholders(amount)\n\t\t\t{\n\t\t\t\tlet placeholders = [];\n\n\t\t\t\tfor (let i = 0; i < amount; i++)\n\t\t\t\t{\n\t\t\t\t\tplaceholders.push({\n\t\t\t\t\t\tid: 'placeholder' + this.placeholderCount,\n\t\t\t\t\t\ttemplateId: 'placeholder' + this.placeholderCount,\n\t\t\t\t\t\ttemplate: TemplateTypes.placeholder,\n\t\t\t\t\t\tsectionCode: Section.general\n\t\t\t\t\t});\n\t\t\t\t\tthis.placeholderCount++;\n\t\t\t\t}\n\n\t\t\t\treturn placeholders;\n\t\t\t},\n\n\t\t\tdrawPlaceholders()\n\t\t\t{\n\t\t\t\tlet placeholders = this.generatePlaceholders(this.paginationCount);\n\n\t\t\t\treturn this.$store.dispatch('recent/addPlaceholders', placeholders);\n\t\t\t},\n\n\t\t\tgetFirstPage()\n\t\t\t{\n\t\t\t\tlet queryParams = {\n\t\t\t\t\t'SKIP_OPENLINES': 'Y',\n\t\t\t\t\t'LIMIT': this.paginationCount\n\t\t\t\t};\n\n\t\t\t\tthis.getRestClient().callMethod(RestMethod.imRecentList, queryParams).then(result => {\n\t\t\t\t\t//save last message date to load next items starting from it\n\t\t\t\t\tthis.lastMessageDate = this.getLastMessageDate(result.data().items);\n\n\t\t\t\t\t//if we got less items than page count = no more items\n\t\t\t\t\tif (!result.data().hasMore)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.hasMoreToLoad = false;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.$store.dispatch('recent/clearPlaceholders');\n\t\t\t\t\t//set first chunk of real data in rest handler\n\t\t\t\t\tthis.getController().executeRestAnswer(RestMethodHandler.imRecentList, result);\n\t\t\t\t})\n\t\t\t},\n\n\t\t\tloadNextPage()\n\t\t\t{\n\t\t\t\tif (this.loadingMore || !this.hasMoreToLoad)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tthis.loadingMore = true;\n\t\t\t\t//get first placeholder which we need to update with new data\n\t\t\t\tthis.firstPlaceholderToUpdate = this.placeholderCount;\n\n\t\t\t\t//draw new placeholders and get next items from backend\n\t\t\t\tthis.drawPlaceholders().then(() => {this.getNextPage()});\n\t\t\t},\n\n\t\t\tgetNextPage()\n\t\t\t{\n\t\t\t\tlet queryParams = {\n\t\t\t\t\t'SKIP_OPENLINES': 'Y',\n\t\t\t\t\t'LIMIT': this.paginationCount,\n\t\t\t\t\t'LAST_MESSAGE_DATE': this.lastMessageDate\n\t\t\t\t};\n\t\t\t\tthis.getRestClient().callMethod(RestMethod.imRecentList, queryParams).then(result =>\n\t\t\t\t{\n\t\t\t\t\tlet items = result.data().items;\n\t\t\t\t\t//if we got nothing - clear placeholders\n\t\t\t\t\tif (!items || items.length === 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.$store.dispatch('recent/clearPlaceholders');\n\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\t\t\t\t\t//if we got less items than page count = there are no more items\n\t\t\t\t\tif (!result.data().hasMore)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.hasMoreToLoad = false;\n\t\t\t\t\t}\n\t\t\t\t\t//save last message date to load next items starting from it\n\t\t\t\t\tthis.lastMessageDate = this.getLastMessageDate(items);\n\t\t\t\t\tthis.updateModels(items)\n\t\t\t\t\t\t.then(() => {\n\t\t\t\t\t\t\tthis.loadingMore = false;\n\t\t\t\t\t\t\t//if we got less items than page count - clear remaining placeholders\n\t\t\t\t\t\t\tif (!this.hasMoreToLoad)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tthis.$store.dispatch('recent/clearPlaceholders');\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\n\t\t\tgetLastMessageDate(collection)\n\t\t\t{\n\t\t\t\treturn collection.slice(-1)[0].message.date;\n\t\t\t},\n\n\t\t\tupdateModels(items)\n\t\t\t{\n\t\t\t\tlet data = this.prepareDataForModels(items);\n\n\t\t\t\tconst usersPromise = this.$store.dispatch('users/set', data.users);\n\t\t\t\tconst dialoguesPromise = this.$store.dispatch('dialogues/set', data.dialogues);\n\t\t\t\tconst recentPromise = this.$store.dispatch('recent/updatePlaceholders',\n\t\t\t\t\t{\n\t\t\t\t\t\titems: data.recent,\n\t\t\t\t\t\tfirstMessage: this.firstPlaceholderToUpdate\n\t\t\t\t\t})\n\n\t\t\t\treturn Promise.all([usersPromise, dialoguesPromise, recentPromise]);\n\t\t\t},\n\n\t\t\tprepareDataForModels(items)\n\t\t\t{\n\t\t\t\tlet result = {\n\t\t\t\t\tusers: [],\n\t\t\t\t\tdialogues: [],\n\t\t\t\t\trecent: []\n\t\t\t\t};\n\n\t\t\t\titems.forEach(item => {\n\t\t\t\t\tlet userId = 0;\n\t\t\t\t\tlet chatId = 0;\n\n\t\t\t\t\tif (item.user && item.user.id > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tuserId = item.user.id;\n\t\t\t\t\t\tresult.users.push(item.user);\n\t\t\t\t\t}\n\t\t\t\t\tif (item.chat)\n\t\t\t\t\t{\n\t\t\t\t\t\tchatId = item.chat.id;\n\t\t\t\t\t\tresult.dialogues.push(Object.assign(item.chat, {dialogId: item.id}));\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tresult.dialogues.push(Object.assign({}, {dialogId: item.id}));\n\t\t\t\t\t}\n\t\t\t\t\tresult.recent.push({\n\t\t\t\t\t\t...item,\n\t\t\t\t\t\tavatar: item.avatar.url,\n\t\t\t\t\t\tcolor: item.avatar.color,\n\t\t\t\t\t\tuserId: userId,\n\t\t\t\t\t\tchatId: chatId\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\t\treturn result;\n\t\t\t},\n\t\t\t/* endregion 02. Ex-controller */\n\n\t\t\t/* region 03. Actions */\n\t\t\topenOldDialog(event)\n\t\t\t{\n\t\t\t\tif (event.id !== 'notify')\n\t\t\t\t{\n\t\t\t\t\tBXIM.openMessenger(event.id);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tBXIM.openNotify();\n\t\t\t\t}\n\t\t\t},\n\n\t\t\topenOldContextMenu(event)\n\t\t\t{\n\t\t\t\tevent.$event.preventDefault();\n\t\t\t\tconst recentItem = this.$store.getters['recent/get'](event.id);\n\t\t\t\tif (!recentItem)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst params = {\n\t\t\t\t\tuserId: event.id,\n\t\t\t\t\tuserIsChat: event.id.toString().startsWith('chat'),\n\t\t\t\t\tdialogIsPinned: recentItem.element.pinned\n\t\t\t\t};\n\t\t\t\tBXIM.messenger.openPopupMenu(event.$event.target, 'contactList', undefined, params);\n\t\t\t},\n\t\t\t/* endregion 03. Actions */\n\n\t\t\t/* region 04. Helpers */\n\t\t\tgetController()\n\t\t\t{\n\t\t\t\treturn this.$Bitrix.Data.get('controller');\n\t\t\t},\n\n\t\t\tgetRestClient()\n\t\t\t{\n\t\t\t\treturn this.$Bitrix.RestClient.get();\n\t\t\t},\n\n\t\t\toneScreenRemaining(event)\n\t\t\t{\n\t\t\t\treturn event.target.scrollTop + event.target.clientHeight >= event.target.scrollHeight - event.target.clientHeight;\n\t\t\t},\n\n\t\t\tinitObserver()\n\t\t\t{\n\t\t\t\tthis.observer = new IntersectionObserver(function(entries){\n\t\t\t\t\tentries.forEach(entry => {\n\t\t\t\t\t\tif (entry.isIntersecting && entry.intersectionRatio === 1)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t// console.warn('I SEE ', entry);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}, {threshold: [0, 1]});\n\t\t\t},\n\t\t\t/* endregion 04. Helpers */\n\t\t},\n\t\tdirectives:\n\t\t{\n\t\t\t'recent-list-observer':\n\t\t\t\t{\n\t\t\t\t\tinserted(element, bindings, vnode)\n\t\t\t\t\t{\n\t\t\t\t\t\tvnode.context.observer.observe(element);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t},\n\t\t// language=Vue\n\t\ttemplate: `\n\t\t\t<div class=\"bx-messenger-recent\">\n\t\t\t\t<div class=\"bx-messenger-recent-list\" @scroll=\"onScroll\">\n\t\t\t\t\t<template v-for=\"item in pinnedItems\">\n\t\t\t\t\t\t<recent-item\n\t\t\t\t\t\t\t:itemData=\"item\"\n\t\t\t\t\t\t\t:key=\"item.id\"\n\t\t\t\t\t\t\t:data-id=\"item.id\"\n\t\t\t\t\t\t\tv-recent-list-observer\n\t\t\t\t\t\t\t@click=\"onClick\"\n\t\t\t\t\t\t\t@rightClick=\"onRightClick\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-for=\"item in generalItems\">\n\t\t\t\t\t\t<recent-item\n\t\t\t\t\t\t\t:itemData=\"item\"\n\t\t\t\t\t\t\t:key=\"item.id\"\n\t\t\t\t\t\t\t:data-id=\"item.id\"\n\t\t\t\t\t\t\tv-recent-list-observer\n\t\t\t\t\t\t\t@click=\"onClick\"\n\t\t\t\t\t\t\t@rightClick=\"onRightClick\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</template>\n\t\t\t\t</div>\n\t\t\t</div>\n\t`\n\t});\n"],"names":["RecentItem","BitrixVue","localComponent","props","methods","onClick","event","$emit","id","item","$event","onRightClick","formatDate","date","weekDays","localize","Date","currentDate","dateWeekDay","getDay","currentDayOfWeek","weekStartDate","getDate","weekStartTime","setDate","setHours","getTime","getFullYear","getMonth","Utils","format","getTypingUsers","isChat","dialogData","isSomeoneTyping","writingList","isUser","userDialog","getUserDialog","rawItem","userId","$root","$store","getters","computed","ItemTypes","itemData","template","type","chatType","sectionCode","title","leftIcon","titleLeftIcon","value","titleValue","rightIcon","titleRightIcon","subtitle","subtitleLeftIcon","subtitleValue","avatar","url","avatarUrl","bottomRightIcon","avatarBottomRightIcon","message","dateLeftIcon","counter","counterLeftIcon","notification","listItemStyle","Section","pinned","backgroundColor","imageStyle","imageColor","userData","color","isNotificationChat","imageClass","classes","isGeneralChat","avatarText","replace","words","split","length","charAt","isBot","isMobileOnline","isOnline","status","isExtranet","isNetwork","isAbsent","isBirthday","name","isChatMuted","isLastMessageAuthor","typingUsers","nameWords","userName","text","workPosition","MessageStatus","error","wasRead","delivered","counterClasses","push","formattedCounter","chatId","currentUserId","state","application","common","ChatTypes","chat","open","includes","user","extranet","network","bot","Object","keys","senderId","isMuted","muteList","find","element","getFilteredPhrases","component","components","hasDialog","data","paginationCount","loadingMore","hasMoreToLoad","placeholderCount","lastMessageDate","created","mounted","drawPlaceholders","then","getFirstPage","initObserver","pinnedItems","collection","filter","generalItems","Vuex","mapState","recent","onScroll","oneScreenRemaining","loadNextPage","EventEmitter","emit","EventType","dialog","openOldContextMenu","generatePlaceholders","amount","placeholders","i","templateId","TemplateTypes","placeholder","general","dispatch","queryParams","getRestClient","callMethod","RestMethod","imRecentList","result","getLastMessageDate","items","hasMore","getController","executeRestAnswer","RestMethodHandler","firstPlaceholderToUpdate","getNextPage","updateModels","slice","prepareDataForModels","usersPromise","users","dialoguesPromise","dialogues","recentPromise","firstMessage","Promise","all","forEach","assign","dialogId","openOldDialog","BXIM","openMessenger","openNotify","preventDefault","recentItem","params","userIsChat","toString","startsWith","dialogIsPinned","messenger","openPopupMenu","target","undefined","$Bitrix","Data","get","RestClient","scrollTop","clientHeight","scrollHeight","observer","IntersectionObserver","entries","entry","isIntersecting","intersectionRatio","threshold","directives","inserted","bindings","vnode","context","observe"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit