File manager - Edit - /home/web/vm-3fadc827.na4u.ru/www/bitrix/modules/im/install/js/im/component/recent/dist/recent.bundle.js.map
Back
{"version":3,"file":"recent.bundle.js","sources":["../src/component/recent-item.js","../src/recent.js"],"sourcesContent":["import { 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} from \"im.const\";\nimport {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('openMessenger', 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","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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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.26 |
proxy
|
phpinfo
|
Settings