File manager - Edit - /home/web/vm-3fadc827.na4u.ru/www/bitrix/modules/im/install/js/im/component/notifications/dist/notifications.bundle.js.map
Back
{"version":3,"file":"notifications.bundle.js","sources":["../src/component/notification-quick-answer.js","../src/component/notification-item-header.js","../src/component/notification-placeholder.js","../src/component/notification-item.js","../src/mixin/notificationCore.js","../src/component/notification-search-result.js","../src/notifications.js"],"sourcesContent":["export const NotificationQuickAnswer = {\n\tprops: ['listItem'],\n\tdata()\n\t{\n\t\treturn {\n\t\t\tquickAnswerText: '',\n\t\t\tquickAnswerResultMessage: '',\n\t\t\tshowQuickAnswer: false,\n\t\t\tisSendingQuickAnswer: false,\n\t\t\tsuccessSentQuickAnswer: false\n\t\t};\n\t},\n\tmethods:\n\t{\n\t\ttoggleQuickAnswer()\n\t\t{\n\t\t\tif (this.successSentQuickAnswer)\n\t\t\t{\n\t\t\t\tthis.showQuickAnswer = true;\n\t\t\t\tthis.successSentQuickAnswer = false;\n\t\t\t\tthis.quickAnswerResultMessage = '';\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.showQuickAnswer = !this.showQuickAnswer;\n\t\t\t}\n\n\t\t\tif (this.showQuickAnswer)\n\t\t\t{\n\t\t\t\tthis.$nextTick(() => {\n\t\t\t\t\tthis.$refs['input'].focus();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tsendQuickAnswer(event)\n\t\t{\n\t\t\tif (this.quickAnswerText.trim() === '')\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.isSendingQuickAnswer = true;\n\t\t\tconst notificationId = event.item.id;\n\n\t\t\tthis.$Bitrix.RestClient.get().callMethod('im.notify.answer', {\n\t\t\t\tnotify_id: notificationId,\n\t\t\t\tanswer_text: this.quickAnswerText\n\t\t\t}).then((result) => {\n\t\t\t\tthis.quickAnswerResultMessage = result.data().result_message[0];\n\t\t\t\tthis.successSentQuickAnswer = true;\n\t\t\t\tthis.quickAnswerText = '';\n\t\t\t\tthis.isSendingQuickAnswer = false;\n\t\t\t}).catch((error) => {\n\t\t\t\tconsole.error(error);\n\t\t\t\tthis.quickAnswerResultMessage = result.data().result_message[0];\n\t\t\t\tthis.isSendingQuickAnswer = false;\n\t\t\t});\n\t\t},\n\t},\n\t//language=Vue\n\ttemplate: `\n\t\t<div class=\"bx-notifier-item-text-vue\">\n\t\t\t<div class=\"bx-notifier-answer-link-vue\">\n\t\t\t\t<span class=\"bx-notifier-answer-reply bx-messenger-ajax\" @click=\"toggleQuickAnswer()\" @dblclick.stop>\n\t\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_NOTIFICATIONS_QUICK_ANSWER_BUTTON') }}\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<transition name=\"quick-answer-slide\">\n\t\t\t\t<div v-if=\"showQuickAnswer && !successSentQuickAnswer\" class=\"bx-notifier-answer-box-vue\">\n\t\t\t\t\t<span v-if=\"isSendingQuickAnswer\" class=\"bx-notifier-answer-progress-vue bx-messenger-content-load-img\"></span>\n\t\t\t\t\t<span class=\"bx-notifier-answer-input\">\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\ttype=\"text\"\n\t\t\t\t\t\t\tref=\"input\"\n\t\t\t\t\t\t\tautofocus\n\t\t\t\t\t\t\tclass=\"bx-messenger-input\"\n\t\t\t\t\t\t\tv-model=\"quickAnswerText\"\n\t\t\t\t\t\t\t:disabled=\"isSendingQuickAnswer\"\n\t\t\t\t\t\t\t@keyup.enter=\"sendQuickAnswer({item: listItem, event: $event})\"\n\t\t\t\t\t\t>\n\t\t\t\t\t</span>\n\t\t\t\t\t<div class=\"bx-notifier-answer-button\" @click=\"sendQuickAnswer({item: listItem, event: $event})\"></div>\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t\t<div v-if=\"successSentQuickAnswer\" class=\"bx-notifier-answer-text-vue\">\n\t\t\t\t{{ quickAnswerResultMessage }}\n\t\t\t</div>\n\t\t</div>\n\t`\n};","import { NotificationTypesCodes } from 'im.const';\n\nexport const NotificationItemHeader = {\n\tprops: ['listItem'],\n\tcomputed:\n\t{\n\t\tmoreUsers()\n\t\t{\n\t\t\tconst phrase = this.$Bitrix.Loc.getMessage('IM_NOTIFICATIONS_MORE_USERS').split('#COUNT#');\n\n\t\t\treturn {\n\t\t\t\tstart: phrase[0],\n\t\t\t\tend: this.listItem.params.USERS.length + phrase[1]\n\t\t\t}\n\t\t},\n\t\tisMoreUsers()\n\t\t{\n\t\t\treturn this.listItem.params.hasOwnProperty('USERS') && this.listItem.params.USERS.length > 0;\n\t\t},\n\t\tisAbleToDelete()\n\t\t{\n\t\t\treturn this.listItem.sectionCode === NotificationTypesCodes.simple;\n\t\t},\n\t},\n\tmethods:\n\t{\n\t\tonDeleteClick(event)\n\t\t{\n\t\t\tif (event.item.sectionCode === NotificationTypesCodes.simple)\n\t\t\t{\n\t\t\t\tthis.$emit('deleteClick', event);\n\t\t\t}\n\t\t},\n\t\tonMoreUsersClick(event)\n\t\t{\n\t\t\tif (event.users)\n\t\t\t{\n\t\t\t\tthis.$emit('moreUsersClick', {\n\t\t\t\t\tevent: event.event,\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\ttype: 'USERS',\n\t\t\t\t\t\tvalue: event.users\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tonUserTitleClick(event)\n\t\t{\n\t\t\tif (window.top[\"BXIM\"] && event.userId > 0)\n\t\t\t{\n\t\t\t\twindow.top[\"BXIM\"].openMessenger(event.userId);\n\t\t\t}\n\t\t},\n\t},\n\t//language=Vue\n\ttemplate: `\n\t\t<div class=\"bx-im-notifications-item-content-header\">\n\t\t\t<div v-if=\"listItem.title\" class=\"bx-im-notifications-item-header-title\">\n\t\t\t\t<span\n\t\t\t\t\tv-if=\"!listItem.systemType\"\n\t\t\t\t\t@click.prevent=\"onUserTitleClick({userId: listItem.authorId, event: $event})\"\n\t\t\t\t\tclass=\"bx-im-notifications-item-header-title-text\"\n\t\t\t\t>\n\t\t\t\t\t{{ listItem.title.value }}\n\t\t\t\t</span>\n\t\t\t\t<span v-else-if=\"listItem.systemType\" class=\"bx-im-notifications-item-bottom-subtitle-text\" v-html=\"listItem.subtitle.value\"></span>\n\t\t\t\t<span\n\t\t\t\t\tv-if=\"isMoreUsers && !listItem.systemType\"\n\t\t\t\t\tclass=\"bx-im-notifications-item-header-more-users\"\n\t\t\t\t>\n\t\t\t\t\t{{ moreUsers.start }}\n\t\t\t\t\t<span class=\"bx-messenger-ajax\" @click=\"onMoreUsersClick({users: listItem.params.USERS, event: $event})\">\n\t\t\t\t\t\t{{ moreUsers.end }}\n\t\t\t\t\t</span>\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t\t<div class=\"bx-im-notifications-item-content-header-right\">\n\t\t\t\t<div class=\"bx-im-notifications-item-header-date\">\n\t\t\t\t\t{{ listItem.date.value }}\n\t\t\t\t</div>\n\t\t\t\t<span\n\t\t\t\t\tv-if=\"isAbleToDelete\"\n\t\t\t\t\tclass=\"bx-im-notifications-item-header-delete\"\n\t\t\t\t\t@click=\"onDeleteClick({item: listItem, event: $event})\">\n\t\t\t\t</span>\n\t\t\t</div>\n\t\t</div>\n\t`\n};","export const NotificationPlaceholder = {\n\t//language=Vue\n\ttemplate: `\n\t\t<div style=\"display: flex; width: 100%;\">\n\t\t\t<div class=\"bx-im-notifications-item-image-wrap\">\n\t\t\t\t<div class=\"bx-im-notifications-item-image bx-im-notifications-item-placeholder-image\"></div>\n\t\t\t</div>\n\t\t\t<div class=\"bx-im-notifications-item-content bx-im-notifications-skeleton\">\n\t\t\t\t<div class=\"bx-im-notifications-item-content-header\">\n\t\t\t\t\t<div class=\"bx-im-notifications-item-placeholder-title\"></div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bx-im-notifications-item-content-middle\">\n\t\t\t\t\t<div class=\"bx-im-notifications-item-bottom-subtitle\">\n\t\t\t\t\t\t<div class=\"bx-im-notifications-item-placeholder-subtitle\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bx-im-notifications-item-content-bottom\">\n\t\t\t\t\t<div class=\"bx-im-notifications-item-bottom-subtitle\">\n\t\t\t\t\t\t<div class=\"bx-im-notifications-item-placeholder-subtitle\"></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`\n};","import 'im.view.element.attach';\nimport 'im.view.element.keyboard';\n\nimport \"./notification-item.css\";\nimport \"./notification-item.dark.css\";\nimport { Utils } from \"im.lib.utils\";\nimport { Vue } from \"ui.vue\";\nimport { NotificationQuickAnswer } from './notification-quick-answer';\nimport { NotificationItemHeader } from './notification-item-header';\nimport { NotificationPlaceholder } from './notification-placeholder';\nimport { PopupManager } from \"main.popup\";\nimport { Dom } from 'main.core';\nimport { NotificationTypesCodes } from 'im.const';\n\nexport const NotificationItem = {\n\tcomponents:\n\t{\n\t\tNotificationQuickAnswer,\n\t\tNotificationItemHeader,\n\t\tNotificationPlaceholder\n\t},\n\tprops: ['rawListItem', 'searchMode'],\n\tdata()\n\t{\n\t\treturn {\n\t\t\tmenuId: 'popup-window-content-bx-messenger-popup-notify'\n\t\t};\n\t},\n\tcomputed:\n\t{\n\t\tNotificationTypesCodes: () => NotificationTypesCodes,\n\t\tlistItem()\n\t\t{\n\t\t\treturn {\n\t\t\t\tid: this.rawListItem.id,\n\t\t\t\ttype: this.rawListItem.type,\n\t\t\t\tsectionCode: this.rawListItem.sectionCode,\n\t\t\t\tauthorId: this.rawListItem.authorId,\n\t\t\t\tsystemType: this.rawListItem.type === 4 || (this.rawListItem.authorId === 0 && this.avatar === ''),\n\t\t\t\ttitle: {\n\t\t\t\t\tvalue: this.userTitle,\n\t\t\t\t},\n\t\t\t\tsubtitle: {\n\t\t\t\t\tvalue: this.rawListItem.textConverted,\n\t\t\t\t},\n\t\t\t\tavatar: {\n\t\t\t\t\turl: this.avatar,\n\t\t\t\t\tcolor: this.defaultAvatarColor\n\t\t\t\t},\n\t\t\t\tparams: this.rawListItem.params || {},\n\t\t\t\tnotifyButtons: this.rawListItem.notifyButtons || undefined,\n\t\t\t\tunread: this.rawListItem.unread,\n\t\t\t\tsettingName: this.rawListItem.settingName,\n\t\t\t\tdate: {\n\t\t\t\t\tvalue: Utils.date.format(this.rawListItem.date, null, this.$Bitrix.Loc.getMessages())\n\t\t\t\t},\n\t\t\t}\n\t\t},\n\t\tisRealItem()\n\t\t{\n\t\t\treturn this.rawListItem.sectionCode !== NotificationTypesCodes.placeholder;\n\t\t},\n\t\tisNeedQuickAnswer()\n\t\t{\n\t\t\treturn this.listItem.params.CAN_ANSWER && this.listItem.params.CAN_ANSWER === 'Y'\n\t\t},\n\n\t\tuserTitle()\n\t\t{\n\t\t\tif (this.isRealItem && this.rawListItem.authorId > 0)\n\t\t\t{\n\t\t\t\treturn this.userData.name;\n\t\t\t}\n\t\t\telse if (this.isRealItem && this.rawListItem.authorId === 0)\n\t\t\t{\n\t\t\t\treturn ''; //System notification\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\t\t},\n\t\tavatar()\n\t\t{\n\t\t\tlet avatar = '';\n\n\t\t\tif (this.isRealItem && this.rawListItem.authorId > 0)\n\t\t\t{\n\t\t\t\tavatar = this.userData.avatar;\n\t\t\t}\n\t\t\telse if (this.isRealItem && this.rawListItem.authorId === 0)\n\t\t\t{\n\t\t\t\t//system notification\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn avatar;\n\t\t},\n\t\tdefaultAvatarColor()\n\t\t{\n\t\t\tif (this.rawListItem.authorId <= 0)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn this.userData.color;\n\t\t},\n\t\tuserData()\n\t\t{\n\t\t\treturn this.$store.getters['users/get'](this.rawListItem.authorId, true);\n\t\t},\n\t\tavatarStyles()\n\t\t{\n\t\t\treturn {\n\t\t\t\tbackgroundImage: 'url(\"' + this.listItem.avatar.url +'\")',\n\t\t\t}\n\t\t}\n\t},\n\tmethods:\n\t{\n\t\t//events\n\t\tonDoubleClick(event)\n\t\t{\n\t\t\tif (!this.searchMode && event.item.sectionCode === NotificationTypesCodes.simple)\n\t\t\t{\n\t\t\t\tthis.$emit('dblclick', event);\n\t\t\t}\n\t\t},\n\t\tonButtonsClick(event)\n\t\t{\n\t\t\tif (event.action === 'COMMAND')\n\t\t\t{\n\t\t\t\tthis.$emit('buttonsClick', event);\n\t\t\t}\n\t\t},\n\t\tonDeleteClick(event)\n\t\t{\n\t\t\tthis.$emit('deleteClick', event);\n\t\t},\n\t\tonMoreUsersClick(event)\n\t\t{\n\t\t\tthis.$emit('contentClick', event);\n\t\t},\n\t\tonContentClick(event)\n\t\t{\n\t\t\tif (Vue.testNode(event.target, {className: 'bx-im-mention'}))\n\t\t\t{\n\t\t\t\tthis.$emit('contentClick', {\n\t\t\t\t\tevent,\n\t\t\t\t\tcontent: {\n\t\t\t\t\t\ttype: event.target.dataset.type,\n\t\t\t\t\t\tvalue: event.target.dataset.value\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tonRightClick(event)\n\t\t{\n\t\t\tif (\n\t\t\t\tUtils.platform.isBitrixDesktop()\n\t\t\t\t&& event.target.tagName === 'A'\n\t\t\t\t&& (\n\t\t\t\t\t!event.target.href.startsWith('/desktop_app/')\n\t\t\t\t\t|| event.target.href.startsWith('/desktop_app/show.file.php')\n\t\t\t\t)\n\t\t\t)\n\t\t\t{\n\t\t\t\tconst hrefToCopy = event.target.href;\n\t\t\t\tif (!hrefToCopy)\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tif (this.menuPopup)\n\t\t\t\t{\n\t\t\t\t\tthis.menuPopup.destroy();\n\t\t\t\t\tthis.menuPopup = null;\n\t\t\t\t}\n\n\t\t\t\t//menu for other items\n\t\t\t\tconst existingMenu = PopupManager.getPopupById(this.menuId);\n\t\t\t\tif (existingMenu)\n\t\t\t\t{\n\t\t\t\t\texistingMenu.destroy();\n\t\t\t\t}\n\n\t\t\t\tconst menuItem = Dom.create('span', {\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclassName: 'bx-messenger-popup-menu-item-text bx-messenger-popup-menu-item',\n\t\t\t\t\t},\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: (event) => {\n\t\t\t\t\t\t\tBX.desktop.clipboardCopy(hrefToCopy);\n\t\t\t\t\t\t\tthis.menuPopup.destroy();\n\t\t\t\t\t\t\tthis.menuPopup = null;\n\t\t\t\t\t\t},\n\t\t\t\t\t},\n\t\t\t\t\ttext: this.$Bitrix.Loc.getMessage('IM_NOTIFICATIONS_CONTEXT_COPY_LINK'),\n\t\t\t\t});\n\n\t\t\t\tthis.menuPopup = PopupManager.create({\n\t\t\t\t\tid: this.menuId,\n\t\t\t\t\ttargetContainer: document.body,\n\t\t\t\t\tclassName: BX.MessengerTheme.isDark() ? 'bx-im-notifications-popup-window-dark' : '',\n\t\t\t\t\tdarkMode: BX.MessengerTheme.isDark(),\n\t\t\t\t\tbindElement: event,\n\t\t\t\t\toffsetLeft: 13,\n\t\t\t\t\tautoHide: true,\n\t\t\t\t\tcloseByEsc: true,\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tonPopupClose: () => this.menuPopup.destroy(),\n\t\t\t\t\t\tonPopupDestroy: () => this.menuPopup = null,\n\t\t\t\t\t},\n\t\t\t\t\tcontent: menuItem\n\t\t\t\t});\n\t\t\t\tif (!BX.MessengerTheme.isDark())\n\t\t\t\t{\n\t\t\t\t\tthis.menuPopup.setAngle({});\n\t\t\t\t}\n\n\t\t\t\tthis.menuPopup.show();\n\t\t\t}\n\t\t},\n\t},\n\t//language=Vue\n\ttemplate: `\n\t\t<div \n\t\t\tclass=\"bx-im-notifications-item\"\n\t\t\t:class=\"[listItem.unread && !searchMode ? 'bx-im-notifications-item-unread' : '']\"\n\t\t\t@dblclick=\"onDoubleClick({item: listItem, event: $event})\"\n\t\t\t@contextmenu=\"onRightClick\"\n\t\t>\n\t\t\t<template v-if=\"listItem.sectionCode !== NotificationTypesCodes.placeholder\">\n\t\t\t\t<div v-if=\"listItem.avatar\" class=\"bx-im-notifications-item-image-wrap\">\n\t\t\t\t\t<div \n\t\t\t\t\t\tv-if=\"listItem.avatar.url\" \n\t\t\t\t\t\tclass=\"bx-im-notifications-item-image\"\n\t\t\t\t\t\t:style=\"avatarStyles\"\n\t\t\t\t\t></div>\n\t\t\t\t\t<div v-else-if=\"listItem.systemType\" class=\"bx-im-notifications-item-image bx-im-notifications-image-system\"></div>\n\t\t\t\t\t<div \n\t\t\t\t\t\tv-else-if=\"!listItem.avatar.url\" \n\t\t\t\t\t\tclass=\"bx-im-notifications-item-image bx-im-notifications-item-image-default\"\n\t\t\t\t\t\t:style=\"{backgroundColor: listItem.avatar.color}\"\n\t\t\t\t\t\t>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<div class=\"bx-im-notifications-item-content\" @click=\"onContentClick\">\n\t\t\t\t\t<NotificationItemHeader \n\t\t\t\t\t\t:listItem=\"listItem\"\n\t\t\t\t\t\t@deleteClick=\"onDeleteClick\"\n\t\t\t\t\t\t@moreUsersClick=\"onMoreUsersClick\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div v-if=\"listItem.subtitle.value.length > 0\" class=\"bx-im-notifications-item-content-bottom\">\n\t\t\t\t\t\t<div class=\"bx-im-notifications-item-bottom-subtitle\">\n\t\t\t\t\t\t\t<span v-if=\"!listItem.systemType\" class=\"bx-im-notifications-item-bottom-subtitle-text\" v-html=\"listItem.subtitle.value\"></span>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<NotificationQuickAnswer v-if=\"isNeedQuickAnswer\" :listItem=\"listItem\"/>\n\t\t\t\t\t<div v-if=\"listItem.params['ATTACH']\" class=\"bx-im-notifications-item-content-additional\">\n\t\t\t\t\t\t<div v-for=\"attach in listItem.params['ATTACH']\">\n\t\t\t\t\t\t\t<bx-im-view-element-attach :config=\"attach\"/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if=\"listItem.notifyButtons\">\n\t\t\t\t\t\t<bx-im-view-element-keyboard @click=\"onButtonsClick\" :buttons=\"listItem.notifyButtons\"/>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</template>\n\t\t\t<NotificationPlaceholder v-else-if=\"listItem.sectionCode === NotificationTypesCodes.placeholder\"/>\n\t\t</div>\n\t`\n};\n","import { PopupManager } from \"main.popup\";\nimport { NotificationTypesCodes } from 'im.const';\n\nexport const NotificationCore = {\n\tdata()\n\t{\n\t\treturn {\n\t\t\tplaceholderCount: 0,\n\t\t}\n\t},\n\tmethods:\n\t{\n\t\tisReadyToLoadNewPage(event)\n\t\t{\n\t\t\tconst leftSpaceBottom = event.target.scrollHeight - event.target.scrollTop - event.target.clientHeight;\n\n\t\t\treturn leftSpaceBottom < 200; //pixels offset before load new page\n\t\t},\n\t\tgetLastItemId(collection)\n\t\t{\n\t\t\treturn collection[collection.length - 1].id;\n\t\t},\n\t\tgeneratePlaceholders(amount)\n\t\t{\n\t\t\tconst placeholders = [];\n\t\t\tfor (let i = 0; i < amount; i++)\n\t\t\t{\n\t\t\t\tplaceholders.push({\n\t\t\t\t\tid: `placeholder${this.placeholderCount}`,\n\t\t\t\t\ttype: NotificationTypesCodes.placeholder\n\t\t\t\t});\n\t\t\t\tthis.placeholderCount++;\n\t\t\t}\n\n\t\t\treturn placeholders;\n\t\t},\n\t\tgetRestClient()\n\t\t{\n\t\t\treturn this.$Bitrix.RestClient.get();\n\t\t},\n\t\tonContentClick(event)\n\t\t{\n\t\t\tthis.contentPopupType = event.content.type.toLowerCase();\n\t\t\tthis.contentPopupValue = event.content.value;\n\n\t\t\tif (this.popupInstance != null)\n\t\t\t{\n\t\t\t\tthis.popupInstance.destroy();\n\t\t\t\tthis.popupInstance = null;\n\t\t\t}\n\n\t\t\t// TODO: replace it with new popups.\n\t\t\tif (this.contentPopupType === 'user' || this.contentPopupType === 'chat')\n\t\t\t{\n\t\t\t\tconst popupAngle = !this.isDarkTheme;\n\n\t\t\t\tBXIM.messenger.openPopupExternalData(\n\t\t\t\t\tevent.event.target,\n\t\t\t\t\tthis.contentPopupType,\n\t\t\t\t\tpopupAngle,\n\t\t\t\t\t{'ID': this.contentPopupValue}\n\t\t\t\t);\n\t\t\t}\n\t\t\telse if (this.contentPopupType === 'openlines')\n\t\t\t{\n\t\t\t\tBX.MessengerCommon.linesGetSessionHistory(this.contentPopupValue);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tconst popup = PopupManager.create({\n\t\t\t\t\tid: \"bx-messenger-popup-external-data\",\n\t\t\t\t\ttargetContainer: document.body,\n\t\t\t\t\tclassName: this.isDarkTheme ? 'bx-im-notifications-popup-window-dark' : '',\n\t\t\t\t\tbindElement: event.event.target,\n\t\t\t\t\tlightShadow : true,\n\t\t\t\t\toffsetTop: 0,\n\t\t\t\t\toffsetLeft: 10,\n\t\t\t\t\tautoHide: true,\n\t\t\t\t\tcloseByEsc: true,\n\t\t\t\t\tbindOptions: {position: \"top\"},\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tonPopupClose: () => this.popupInstance.destroy(),\n\t\t\t\t\t\tonPopupDestroy: () => this.popupInstance = null\n\t\t\t\t\t},\n\t\t\t\t});\n\t\t\t\tif (!this.isDarkTheme)\n\t\t\t\t{\n\t\t\t\t\tpopup.setAngle({});\n\t\t\t\t}\n\n\t\t\t\tthis.popupIdSelector = `#${popup.getContentContainer().id}`;\n\n\t\t\t\t//little hack for correct open several popups in a row.\n\t\t\t\tthis.$nextTick(() => this.popupInstance = popup);\n\t\t\t}\n\t\t},\n\t},\n\tcomputed:\n\t{\n\t\tisDarkTheme()\n\t\t{\n\t\t\tif (this.darkTheme === undefined)\n\t\t\t{\n\t\t\t\treturn BX.MessengerTheme.isDark();\n\t\t\t}\n\n\t\t\treturn this.darkTheme;\n\t\t},\n\t}\n};","import { Vuex } from 'ui.vue.vuex';\nimport { NotificationItem } from './notification-item';\nimport { Logger } from 'im.lib.logger';\nimport { MountingPortal } from 'ui.vue.portal';\nimport { Popup } from \"im.view.popup\";\nimport { NotificationCore } from '../mixin/notificationCore';\nimport { Utils } from 'im.lib.utils';\n\nexport const NotificationSearchResult = {\n\tcomponents:\n\t{\n\t\tNotificationItem,\n\t\tMountingPortal,\n\t\tPopup\n\t},\n\tmixins: [\n\t\tNotificationCore\n\t],\n\tprops: [\n\t\t'searchQuery',\n\t\t'searchType',\n\t\t'searchDate',\n\t],\n\tdata()\n\t{\n\t\treturn {\n\t\t\tpageLimit: 50,\n\t\t\tlastId: 0,\n\t\t\tinitialDataReceived: false,\n\t\t\tisLoadingNewPage: false,\n\t\t\tcontentPopupType: '',\n\t\t\tcontentPopupValue: '',\n\t\t\tpopupInstance: null,\n\t\t\tpopupIdSelector: '',\n\t\t\tsearchResultsTotal: 0,\n\t\t\tsearchPageLoaded: 0,\n\t\t\tsearchPagesRequested: 0,\n\t\t};\n\t},\n\tcomputed:\n\t{\n\t\tremainingPages()\n\t\t{\n\t\t\treturn Math.ceil(\n\t\t\t\t(this.searchResultsTotal - this.searchResults.length) / this.pageLimit\n\t\t\t);\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tnotification: state => state.notifications.collection,\n\t\t\tsearchResults: state => state.notifications.searchCollection,\n\t\t})\n\t},\n\twatch:\n\t{\n\t\tsearchQuery(value)\n\t\t{\n\t\t\tif (value.length >= 3 || value === '')\n\t\t\t{\n\t\t\t\tthis.search();\n\t\t\t}\n\t\t},\n\t\tsearchType()\n\t\t{\n\t\t\tthis.search();\n\t\t},\n\t\tsearchDate(value)\n\t\t{\n\t\t\tif (BX.parseDate(value) instanceof Date || value === '')\n\t\t\t{\n\t\t\t\tthis.search();\n\t\t\t}\n\t\t},\n\t},\n\tcreated()\n\t{\n\t\tthis.searchServerDelayed = Utils.debounce(this.getSearchResultsFromServer, 1500, this);\n\t\tthis.search();\n\t},\n\tbeforeDestroy()\n\t{\n\t\tthis.$store.dispatch('notifications/deleteSearchResults');\n\t},\n\tmethods:\n\t{\n\t\tsearch()\n\t\t{\n\t\t\tthis.resetSearchState();\n\n\t\t\tconst localResults = this.notification.filter((item) => {\n\t\t\t\tlet result = false;\n\t\t\t\tif (this.searchQuery.length >= 3)\n\t\t\t\t{\n\t\t\t\t\t result = item.textConverted.toLowerCase().includes(this.searchQuery.toLowerCase());\n\t\t\t\t\t if (!result)\n\t\t\t\t\t {\n\t\t\t\t\t \treturn result;\n\t\t\t\t\t }\n\t\t\t\t}\n\t\t\t\tif (this.searchType !== '')\n\t\t\t\t{\n\t\t\t\t\tresult = item.settingName === this.searchType;\n\t\t\t\t\tif (!result)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn result;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (this.searchDate !== '')\n\t\t\t\t{\n\t\t\t\t\tconst date = BX.parseDate(this.searchDate);\n\t\t\t\t\tif (date instanceof Date)\n\t\t\t\t\t{\n\t\t\t\t\t\t// compare dates excluding time.\n\t\t\t\t\t\tconst itemDateForCompare = (new Date(item.date.getTime())).setHours(0,0,0,0);\n\t\t\t\t\t\tconst dateFromInput = date.setHours(0,0,0,0);\n\n\t\t\t\t\t\tresult = itemDateForCompare === dateFromInput;\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\tif (localResults.length > 0)\n\t\t\t{\n\t\t\t\tthis.$store.dispatch('notifications/setSearchResults', {notification: localResults, type: 'local'});\n\t\t\t}\n\n\t\t\tconst isNeedPlaceholders = this.pageLimit - localResults.length > 0;\n\t\t\tif (isNeedPlaceholders > 0)\n\t\t\t{\n\t\t\t\tthis.drawPlaceholders(this.pageLimit).then(() => {\n\t\t\t\t\tthis.searchServerDelayed();\n\t\t\t\t});\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.searchServerDelayed();\n\t\t\t}\n\t\t},\n\t\tgetSearchResultsFromServer()\n\t\t{\n\t\t\tconst queryParams = this.getSearchRequestParams();\n\t\t\tthis.getRestClient().callMethod('im.notify.history.search', queryParams).then(result => {\n\t\t\t\tLogger.warn('im.notify.history.search: first page results', result.data());\n\t\t\t\tthis.processHistoryData(result.data());\n\t\t\t\tthis.initialDataReceived = true;\n\t\t\t\tthis.isLoadingNewPage = false;\n\t\t\t\tthis.searchPageLoaded++;\n\t\t\t}).catch(result => {\n\t\t\t\tLogger.warn('History request error', result)\n\t\t\t});\n\t\t},\n\t\tprocessHistoryData(data)\n\t\t{\n\t\t\tthis.$store.dispatch('notifications/clearPlaceholders');\n\t\t\tif (data.notifications.length <= 0)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.lastId = this.getLastItemId(data.notifications);\n\t\t\tthis.searchResultsTotal = data.total_results;\n\n\t\t\tthis.$store.dispatch('notifications/setSearchResults', {\n\t\t\t\tnotification: data.notifications,\n\t\t\t});\n\t\t\tthis.$store.dispatch('users/set', data.users);\n\t\t\tthis.isLoadingNewPage = false;\n\t\t},\n\t\tloadNextPage()\n\t\t{\n\t\t\tLogger.warn(`Loading more search results!`);\n\n\t\t\tconst queryParams = this.getSearchRequestParams();\n\n\t\t\tthis.getRestClient().callMethod('im.notify.history.search', queryParams)\n\t\t\t\t.then(result => {\n\t\t\t\t\tLogger.warn('im.notify.history.search: new page results', result.data());\n\n\t\t\t\t\tconst newUsers = result.data().users;\n\t\t\t\t\tconst newItems = result.data().notifications;\n\t\t\t\t\tif (!newItems || newItems.length === 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.$store.dispatch('notifications/clearPlaceholders');\n\t\t\t\t\t\tthis.searchResultsTotal = this.searchResults.length;\n\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.lastId = this.getLastItemId(newItems);\n\n\t\t\t\t\tthis.$store.dispatch('users/set', newUsers);\n\t\t\t\t\treturn this.$store.dispatch('notifications/updatePlaceholders', {\n\t\t\t\t\t\tsearchCollection: true,\n\t\t\t\t\t\titems: newItems,\n\t\t\t\t\t\tfirstItem: this.searchPageLoaded * this.pageLimit,\n\t\t\t\t\t});\n\n\t\t\t\t}).then(() => {\n\t\t\t\t\tthis.searchPageLoaded++;\n\n\t\t\t\t\treturn this.onAfterLoadNextPageRequest();\n\t\t\t\t}).catch(result => {\n\t\t\t\t\tthis.$store.dispatch('notifications/clearPlaceholders');\n\t\t\t\t\tLogger.warn('History request error', result);\n\t\t\t\t});\n\t\t},\n\t\tonAfterLoadNextPageRequest()\n\t\t{\n\t\t\tLogger.warn('onAfterLoadNextPageRequest');\n\t\t\tif (this.searchPagesRequested > 0)\n\t\t\t{\n\t\t\t\tLogger.warn('We have delayed requests -', this.searchPagesRequested);\n\t\t\t\tthis.searchPagesRequested--;\n\n\t\t\t\treturn this.loadNextPage();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tLogger.warn('No more delayed requests, clearing placeholders');\n\t\t\t\tthis.$store.dispatch('notifications/clearPlaceholders');\n\t\t\t\tthis.isLoadingNewPage = false;\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\tgetSearchRequestParams()\n\t\t{\n\t\t\tconst params = {\n\t\t\t\t'SEARCH_TEXT': this.searchQuery,\n\t\t\t\t'SEARCH_TYPE': this.searchType,\n\t\t\t\t'LIMIT': this.pageLimit,\n\t\t\t\t'CONVERT_TEXT': 'Y'\n\t\t\t};\n\t\t\tif (BX.parseDate(this.searchDate) instanceof Date)\n\t\t\t{\n\t\t\t\tparams['SEARCH_DATE'] = BX.parseDate(this.searchDate).toISOString();\n\t\t\t}\n\t\t\tif (this.lastId > 0)\n\t\t\t{\n\t\t\t\tparams['LAST_ID'] = this.lastId;\n\t\t\t}\n\n\t\t\treturn params;\n\t\t},\n\t\tresetSearchState()\n\t\t{\n\t\t\tthis.$store.dispatch('notifications/deleteSearchResults');\n\t\t\tthis.initialDataReceived = false;\n\t\t\tthis.lastId = 0;\n\t\t\tthis.isLoadingNewPage = true;\n\t\t\tthis.placeholderCount = 0;\n\t\t\tthis.searchPageLoaded = 0;\n\t\t},\n\t\tdrawPlaceholders(amount = 0)\n\t\t{\n\t\t\tconst placeholders = this.generatePlaceholders(amount);\n\n\t\t\treturn this.$store.dispatch('notifications/setSearchResults', {notification: placeholders});\n\t\t},\n\n\t\t//events\n\t\tonScroll(event)\n\t\t{\n\t\t\tif (!this.isReadyToLoadNewPage(event) || !this.initialDataReceived || this.remainingPages <= 0)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.isLoadingNewPage)\n\t\t\t{\n\t\t\t\tthis.drawPlaceholders(this.pageLimit).then(() => {\n\t\t\t\t\tthis.searchPagesRequested++;\n\t\t\t\t\tLogger.warn('Already loading! Draw placeholders and add request, total - ', this.pagesRequested);\n\t\t\t\t});\n\t\t\t}\n\t\t\telse //if (!this.isLoadingNewPage)\n\t\t\t{\n\t\t\t\tLogger.warn('Starting new request');\n\n\t\t\t\tthis.isLoadingNewPage = true;\n\n\t\t\t\tthis.drawPlaceholders(this.pageLimit).then(() => {\n\t\t\t\t\tthis.loadNextPage();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tonButtonsClick(event)\n\t\t{\n\t\t\tconst params = this.getConfirmRequestParams(event);\n\t\t\tconst itemId = +params.NOTIFY_ID;\n\t\t\tconst notification = this.$store.getters['notifications/getById'](itemId)\n\n\t\t\tthis.getRestClient().callMethod('im.notify.confirm', params)\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.$store.dispatch('notifications/delete', {\n\t\t\t\t\t\tid: itemId,\n\t\t\t\t\t});\n\t\t\t\t\tif (notification.unread)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.$store.dispatch('notifications/setCounter', { unreadTotal: this.unreadCounter - 1});\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch(() => {\n\t\t\t\t\tthis.$store.dispatch('notifications/update', {\n\t\t\t\t\t\tid: itemId,\n\t\t\t\t\t\tfields: { display: true }\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\tthis.$store.dispatch('notifications/update', {\n\t\t\t\tid: itemId,\n\t\t\t\tfields: { display: false }\n\t\t\t});\n\t\t},\n\t\tonDeleteClick(event)\n\t\t{\n\t\t\tconst itemId = +event.item.id;\n\t\t\tconst notification = this.$store.getters['notifications/getSearchItemById'](itemId)\n\n\t\t\tthis.getRestClient().callMethod('im.notify.delete', { id: itemId })\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.$store.dispatch('notifications/delete', { id: itemId, searchMode: true});\n\t\t\t\t\t//we need to load more, if we are on the first page and we have not enough elements (~15).\n\t\t\t\t\tif (!this.isLoadingNewPage && this.remainingPages > 0 && this.searchResults.length < 15)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.isLoadingNewPage = true;\n\n\t\t\t\t\t\tthis.drawPlaceholders(this.pageLimit).then(() => {\n\t\t\t\t\t\t\tthis.loadNextPage();\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t\tif (notification.unread)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.$store.dispatch('notifications/setCounter', { unreadTotal: this.unreadCounter - 1});\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t\t.catch((error) => {\n\t\t\t\t\tconsole.error(error)\n\t\t\t\t\tthis.$store.dispatch('notifications/update', {\n\t\t\t\t\t\tid: itemId,\n\t\t\t\t\t\tfields: { display: true },\n\t\t\t\t\t\tsearchMode: true\n\t\t\t\t\t});\n\t\t\t\t});\n\n\t\t\tthis.$store.dispatch('notifications/update', {\n\t\t\t\tid: itemId,\n\t\t\t\tfields: { display: false },\n\t\t\t\tsearchMode: true\n\t\t\t});\n\t\t},\n\t},\n\t//language=Vue\n\ttemplate: `\n\t\t<div class=\"bx-messenger-notifications-search-results-wrap\" @scroll.passive=\"onScroll\">\n\t\t\t<notification-item\n\t\t\t\tv-for=\"listItem in searchResults\"\n\t\t\t\tv-if=\"listItem.display\"\n\t\t\t\t:key=\"listItem.id\"\n\t\t\t\t:data-id=\"listItem.id\"\n\t\t\t\t:rawListItem=\"listItem\"\n\t\t\t\tsearchMode=\"true\"\n\t\t\t\t@buttonsClick=\"onButtonsClick\"\n\t\t\t\t@contentClick=\"onContentClick\"\n\t\t\t\t@deleteClick=\"onDeleteClick\"\n\t\t\t/>\n\t\t\t<mounting-portal :mount-to=\"popupIdSelector\" append v-if=\"popupInstance\">\n\t\t\t\t<popup :type=\"contentPopupType\" :value=\"contentPopupValue\" :popupInstance=\"popupInstance\"/>\n\t\t\t</mounting-portal>\n\t\t\t<div \n\t\t\t\tv-if=\"searchResults.length <= 0\" \n\t\t\t\tstyle=\"padding-top: 210px; margin-bottom: 20px;\"\n\t\t\t\tclass=\"bx-messenger-box-empty bx-notifier-content-empty\" \n\t\t\t>\n\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_NOTIFICATIONS_SEARCH_RESULTS_NOT_FOUND') }}\n\t\t\t</div>\n\t\t</div>\n\t`\n};","/**\n * Bitrix im\n * Notifications vue component\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2020 Bitrix\n */\n\nimport { BitrixVue } from 'ui.vue';\nimport { Vuex } from 'ui.vue.vuex';\nimport { Logger } from 'im.lib.logger';\nimport { Utils as MessengerUtils } from 'im.lib.utils';\nimport { Popup } from 'im.view.popup';\nimport { MountingPortal } from 'ui.vue.portal';\nimport { Animation } from \"im.lib.animation\";\n\nimport { MenuManager } from 'main.popup';\nimport { Type } from 'main.core';\nimport 'ui.forms';\n\nimport { NotificationItem } from './component/notification-item';\nimport { NotificationSearchResult } from './component/notification-search-result';\nimport './notifications.css';\nimport { EventType, RestMethod, RestMethodHandler, NotificationTypesCodes } from 'im.const';\nimport { NotificationCore } from './mixin/notificationCore';\nimport { Timer } from 'im.lib.timer';\nimport { EventEmitter } from \"main.core.events\";\n\nconst ObserverType = Object.freeze({\n\tread: 'read',\n\tnone: 'none',\n});\n\n/**\n * @notice Do not mutate or clone this component! It is under development.\n */\nBitrixVue.component('bx-im-component-notifications',\n{\n\tcomponents:\n\t{\n\t\tNotificationItem,\n\t\tMountingPortal,\n\t\tPopup,\n\t\tNotificationSearchResult\n\t},\n\tdirectives:\n\t{\n\t\t'bx-im-directive-notifications-observer':\n\t\t{\n\t\t\tinserted(element, bindings, vnode)\n\t\t\t{\n\t\t\t\tif (bindings.value === ObserverType.none)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tif (!vnode.context.observers[bindings.value])\n\t\t\t\t{\n\t\t\t\t\tvnode.context.observers[bindings.value] = vnode.context.getObserver({\n\t\t\t\t\t\ttype: bindings.value\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tvnode.context.observers[bindings.value].observe(element);\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tunbind(element, bindings, vnode)\n\t\t\t{\n\t\t\t\tif (bindings.value === ObserverType.none)\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tif (vnode.context.observers[bindings.value])\n\t\t\t\t{\n\t\t\t\t\tvnode.context.observers[bindings.value].unobserve(element);\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\t},\n\tmixins: [\n\t\tNotificationCore\n\t],\n\tprops:\n\t{\n\t\tdarkTheme: { default: undefined },\n\t},\n\tdata: function()\n\t{\n\t\treturn {\n\t\t\tinitialDataReceived: false,\n\t\t\tperPage: 50,\n\t\t\tisLoadingInitialData: false,\n\t\t\tisLoadingNewPage: false,\n\t\t\tpagesRequested: 0,\n\t\t\tpagesLoaded: 0,\n\t\t\tlastId: 0,\n\t\t\tlastType: NotificationTypesCodes.confirm,\n\n\t\t\tObserverType: ObserverType,\n\t\t\tnotificationsOnScreen: [],\n\t\t\tnotificationsToRead: [],\n\t\t\tnotificationsToDelete: [],\n\t\t\tchangeReadStatusBlockTimeout: {},\n\t\t\tfirstUnreadNotificationOnInit: null,\n\n\t\t\tcontentPopupType: '',\n\t\t\tcontentPopupValue: '',\n\t\t\tpopupInstance: null,\n\t\t\tpopupIdSelector: '',\n\t\t\tcontextPopupInstance: null,\n\n\t\t\tsearchQuery: '',\n\t\t\tsearchType: '',\n\t\t\tsearchDate: '',\n\t\t\tshowSearch: false,\n\n\t\t\tcallViewState: false,\n\t\t};\n\t},\n\tcomputed:\n\t{\n\t\tNotificationTypesCodes: () => NotificationTypesCodes,\n\t\tremainingPages()\n\t\t{\n\t\t\treturn Math.ceil(\n\t\t\t\t(this.total - this.notification.length) / this.perPage\n\t\t\t);\n\t\t},\n\t\tlocalize()\n\t\t{\n\t\t\treturn BitrixVue.getFilteredPhrases('IM_NOTIFICATIONS_', this);\n\t\t},\n\t\tvisibleNotifications()\n\t\t{\n\t\t\treturn this.notification.filter((notificationItem) => {\n\t\t\t\treturn notificationItem.display;\n\t\t\t});\n\t\t},\n\t\thighestNotificationId()\n\t\t{\n\t\t\treturn this.notification.reduce((highestId, currentNotification) => {\n\t\t\t\treturn currentNotification.id > highestId ? currentNotification.id : highestId\n\t\t\t}, 0);\n\t\t},\n\t\tisNeedToReadAll()\n\t\t{\n\t\t\tconst confirmCounterInModel = this.notification.filter(notificationItem => {\n\t\t\t\treturn notificationItem.sectionCode === NotificationTypesCodes.confirm\n\t\t\t}).length;\n\n\t\t\treturn confirmCounterInModel < this.unreadCounter\n\t\t},\n\t\tpanelStyles()\n\t\t{\n\t\t\tif (this.callViewState === BX.Call.Controller.ViewState.Folded && !this.showSearch)\n\t\t\t{\n\t\t\t\treturn {\n\t\t\t\t\tpaddingBottom: '60px' // height of .bx-messenger-videocall-panel-folded\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {};\n\t\t},\n\t\tfilterBoxStyles()\n\t\t{\n\t\t\tif (this.callViewState === BX.Call.Controller.ViewState.Folded && this.showSearch)\n\t\t\t{\n\t\t\t\treturn {\n\t\t\t\t\tpaddingTop: '70px' // height of .bx-messenger-videocall-panel-folded + 10px for space\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn {};\n\t\t},\n\t\tfirstUnreadNotification()\n\t\t{\n\t\t\tlet unreadNotification = null;\n\t\t\tconst maxNotificationIndex = this.notification.length - 1;\n\n\t\t\tfor (let i = 0; i <= maxNotificationIndex; i++)\n\t\t\t{\n\t\t\t\tif (this.notification[i].unread && this.notification[i].sectionCode !== NotificationTypesCodes.placeholder)\n\t\t\t\t{\n\t\t\t\t\tunreadNotification = this.notification[i];\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn unreadNotification;\n\t\t},\n\t\tfirstUnreadNotificationBelowVisible()\n\t\t{\n\t\t\tconst minIdOnScreen = Math.max(...this.notificationsOnScreen);\n\n\t\t\tlet unreadId = null;\n\t\t\tconst maxNotificationIndex = this.notification.length - 1;\n\n\t\t\tfor (let i = 0; i <= maxNotificationIndex; i++)\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\tthis.notification[i].unread\n\t\t\t\t\t&& minIdOnScreen > this.notification[i].id\n\t\t\t\t\t&& this.notification[i].sectionCode === NotificationTypesCodes.simple\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tunreadId = this.notification[i].id;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn unreadId;\n\t\t},\n\t\tisUnreadNotificationVisible()\n\t\t{\n\t\t\tconst unreadOnScreen = Array.from(this.notificationsOnScreen).filter(idOnScreen => {\n\t\t\t\tconst notificationOnScreen = this.$store.getters['notifications/getById'](idOnScreen);\n\n\t\t\t\treturn notificationOnScreen ? notificationOnScreen.unread : false;\n\t\t\t});\n\n\t\t\treturn unreadOnScreen.length > 0\n\t\t},\n\t\tshowScrollButton()\n\t\t{\n\t\t\tif (!this.initialDataReceived)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (this.unreadCounter <= 0 || !BXIM.settings.notifyAutoRead)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (this.notificationsOnScreen.length === 0)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (this.isUnreadNotificationVisible)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\n\t\thasUnreadBelowVisible()\n\t\t{\n\t\t\tlet unreadCounterBeforeVisible = 0;\n\n\t\t\tfor (let i = 0; i <= this.notification.length - 1; i++)\n\t\t\t{\n\t\t\t\tif (this.notification[i].unread && this.notification[i].sectionCode !== NotificationTypesCodes.placeholder)\n\t\t\t\t{\n\t\t\t\t\t++unreadCounterBeforeVisible;\n\t\t\t\t}\n\n\t\t\t\t// In this case we decide that there is no more unread notifications below visible notifications,\n\t\t\t\t// so we show arrow up on scroll button.\n\t\t\t\tif (\n\t\t\t\t\tthis.notificationsOnScreen.includes(this.notification[i].id)\n\t\t\t\t\t&& this.unreadCounter === unreadCounterBeforeVisible\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn true;\n\t\t},\n\n\t\tarrowButtonClass()\n\t\t{\n\t\t\tlet arrowUp = !this.hasUnreadBelowVisible;\n\n\t\t\treturn {\n\t\t\t\t'bx-im-notifications-scroll-button-arrow-down': !arrowUp,\n\t\t\t\t'bx-im-notifications-scroll-button-arrow-up': arrowUp,\n\t\t\t\t'bx-im-notifications-scroll-button-arrow': true,\n\t\t\t}\n\t\t},\n\t\tfilterTypes()\n\t\t{\n\t\t\tconst originalSchema = Object.assign({}, this.schema);\n\n\t\t\t// get rid of some subcategories\n\t\t\tconst modulesToReduceListItems = [\n\t\t\t\t'timeman', 'mail', 'disk', 'bizproc', 'voximplant', 'sender', 'blog', 'vote', 'socialnetwork',\n\t\t\t\t'imopenlines', 'photogallery', 'intranet', 'forum'\n\t\t\t];\n\t\t\tmodulesToReduceListItems.forEach(moduleId => {\n\t\t\t\tif (originalSchema.hasOwnProperty(moduleId))\n\t\t\t\t{\n\t\t\t\t\tdelete originalSchema[moduleId].LIST;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\t// rename some groups\n\t\t\tif (originalSchema.hasOwnProperty('calendar'))\n\t\t\t{\n\t\t\t\toriginalSchema['calendar'].NAME = this.localize['IM_NOTIFICATIONS_SEARCH_FILTER_TYPE_CALENDAR'];\n\t\t\t}\n\t\t\tif (originalSchema.hasOwnProperty('sender'))\n\t\t\t{\n\t\t\t\toriginalSchema['sender'].NAME = this.localize['IM_NOTIFICATIONS_SEARCH_FILTER_TYPE_SENDER'];\n\t\t\t}\n\t\t\tif (originalSchema.hasOwnProperty('blog'))\n\t\t\t{\n\t\t\t\toriginalSchema['blog'].NAME = this.localize['IM_NOTIFICATIONS_SEARCH_FILTER_TYPE_BLOG'];\n\t\t\t}\n\t\t\tif (originalSchema.hasOwnProperty('socialnetwork'))\n\t\t\t{\n\t\t\t\toriginalSchema['socialnetwork'].NAME = this.localize['IM_NOTIFICATIONS_SEARCH_FILTER_TYPE_SOCIALNETWORK'];\n\t\t\t}\n\t\t\tif (originalSchema.hasOwnProperty('intranet'))\n\t\t\t{\n\t\t\t\toriginalSchema['intranet'].NAME = this.localize['IM_NOTIFICATIONS_SEARCH_FILTER_TYPE_INTRANET'];\n\t\t\t}\n\n\t\t\t// we need only this modules in this order!\n\t\t\tconst modulesToShowInFilter = [\n\t\t\t\t'tasks', 'calendar', 'crm', 'timeman', 'mail', 'disk', 'bizproc', 'voximplant', 'sender',\n\t\t\t\t'blog', 'vote', 'socialnetwork', 'imopenlines', 'photogallery', 'intranet', 'forum'\n\t\t\t];\n\t\t\tconst notificationFilterTypes = [];\n\t\t\tmodulesToShowInFilter.forEach(moduleId => {\n\t\t\t\tif (originalSchema.hasOwnProperty(moduleId))\n\t\t\t\t{\n\t\t\t\t\tnotificationFilterTypes.push(originalSchema[moduleId]);\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn notificationFilterTypes;\n\t\t},\n\t\t...Vuex.mapState({\n\t\t\tnotification: state => state.notifications.collection,\n\t\t\ttotal: state => state.notifications.total,\n\t\t\tunreadCounter: state => state.notifications.unreadCounter,\n\t\t\tschema: state => state.notifications.schema,\n\t\t})\n\t},\n\tcreated()\n\t{\n\t\tthis.drawPlaceholders().then(() => {\n\t\t\tthis.getInitialData();\n\t\t});\n\n\t\tEventEmitter.subscribe(EventType.notification.updateState, this.onUpdateState);\n\t\twindow.addEventListener('focus', this.onWindowFocus);\n\t\twindow.addEventListener('blur', this.onWindowBlur);\n\n\t\tif (BXIM && BX.Call)\n\t\t{\n\t\t\tthis.callViewState = BXIM.callController.callViewState;\n\n\t\t\tBXIM.callController.subscribe(BX.Call.Controller.Events.onViewStateChanged, this.onCallViewStateChange);\n\t\t}\n\n\t\tthis.timer = new Timer();\n\t\tthis.readNotificationsQueue = new Set();\n\t\tthis.readNotificationsNodes = {};\n\t\tthis.observers = {};\n\n\t\tthis.readVisibleNotificationsDelayed = MessengerUtils.debounce(this.readVisibleNotifications, 50, this);\n\t},\n\tmounted()\n\t{\n\t\tthis.windowFocused = document.hasFocus();\n\t},\n\tbeforeDestroy()\n\t{\n\t\tthis.observers = {};\n\t\twindow.removeEventListener('focus', this.onWindowFocus);\n\t\twindow.removeEventListener('blur', this.onWindowBlur);\n\t\tEventEmitter.unsubscribe(EventType.notification.updateState, this.onUpdateState);\n\t\tif (BXIM && BX.Call)\n\t\t{\n\t\t\tBXIM.callController.unsubscribe(BX.Call.Controller.Events.onViewStateChanged, this.onCallViewStateChange);\n\t\t}\n\t},\n\tmethods:\n\t{\n\t\tgetFirstUnreadNotificationOnInit()\n\t\t{\n\t\t\tif (this.unreadCounter <= 0)\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet unreadId = null;\n\t\t\tconst maxNotificationIndex = this.notification.length - 1;\n\n\t\t\tfor (let i = 0; i <= maxNotificationIndex; i++)\n\t\t\t{\n\t\t\t\tif (this.notification[i].unread)\n\t\t\t\t{\n\t\t\t\t\tunreadId = this.notification[i].id;\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn unreadId;\n\t\t},\n\t\tonCallViewStateChange({data})\n\t\t{\n\t\t\tthis.callViewState = data.callViewState;\n\t\t},\n\t\tonUpdateState(event)\n\t\t{\n\t\t\tconst lastNotificationId = event.data.lastId;\n\t\t\tif (\n\t\t\t\t!this.isLoadingInitialData\n\t\t\t\t&& this.highestNotificationId > 0\n\t\t\t\t&& lastNotificationId !== this.highestNotificationId\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.getInitialData();\n\t\t\t}\n\t\t},\n\t\treadVisibleNotifications()\n\t\t{\n\t\t\t//todo: replace legacy chat API\n\t\t\tif (!this.windowFocused || !BXIM.settings.notifyAutoRead)\n\t\t\t{\n\t\t\t\tLogger.warn('reading is disabled!');\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.readNotificationsQueue.forEach(notificationId => {\n\t\t\t\tif (this.readNotificationsNodes[notificationId])\n\t\t\t\t{\n\t\t\t\t\tdelete this.readNotificationsNodes[notificationId];\n\t\t\t\t}\n\t\t\t\tthis.readNotifications(parseInt(notificationId, 10));\n\t\t\t});\n\t\t\tthis.readNotificationsQueue.clear();\n\t\t},\n\t\tgetInitialData()\n\t\t{\n\t\t\tthis.isLoadingInitialData = true;\n\t\t\tconst queryParams = {\n\t\t\t\t[RestMethodHandler.imNotifyGet]: [RestMethod.imNotifyGet, {\n\t\t\t\t\t'LIMIT': this.perPage,\n\t\t\t\t\t'CONVERT_TEXT': 'Y'\n\t\t\t\t}],\n\t\t\t\t[RestMethodHandler.imNotifySchemaGet]: [RestMethod.imNotifySchemaGet, {}],\n\t\t\t};\n\n\t\t\tthis.getRestClient().callBatch(queryParams, (response) => {\n\t\t\t\tLogger.warn('im.notify.get: initial result', response[RestMethodHandler.imNotifyGet].data());\n\t\t\t\tthis.processInitialData(response[RestMethodHandler.imNotifyGet].data());\n\t\t\t\tthis.processSchemaData(response[RestMethodHandler.imNotifySchemaGet].data());\n\t\t\t\tthis.pagesLoaded++;\n\t\t\t\tthis.isLoadingInitialData = false;\n\t\t\t\tthis.firstUnreadNotificationOnInit = this.getFirstUnreadNotificationOnInit();\n\t\t\t}, false, false);\n\t\t},\n\t\tprocessInitialData(data)\n\t\t{\n\t\t\t//if we got empty data - clear all placeholders\n\t\t\tif (!data.notifications || data.notifications.length === 0)\n\t\t\t{\n\t\t\t\tthis.$store.dispatch('notifications/clearPlaceholders');\n\n\t\t\t\tthis.$store.dispatch('notifications/setTotal', {\n\t\t\t\t\ttotal: this.notification.length,\n\t\t\t\t});\n\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.lastId = this.getLastItemId(data.notifications);\n\t\t\tthis.lastType = this.getLastItemType(data.notifications);\n\n\t\t\tthis.$store.dispatch('notifications/clearPlaceholders');\n\t\t\tthis.$store.dispatch('notifications/setCounter', {\n\t\t\t\tunreadTotal: data.total_unread_count\n\t\t\t});\n\t\t\tthis.$store.dispatch('notifications/set', {\n\t\t\t\tnotification: data.notifications,\n\t\t\t\ttotal: data.total_count,\n\t\t\t});\n\t\t\tthis.$store.dispatch('users/set', data.users);\n\t\t\tthis.updateRecentList(data.total_unread_count, true);\n\n\t\t\tthis.initialDataReceived = true;\n\t\t},\n\t\tprocessSchemaData(data)\n\t\t{\n\t\t\tthis.$store.dispatch('notifications/setSchema', {data: data});\n\t\t},\n\t\tdrawPlaceholders()\n\t\t{\n\t\t\tconst placeholders = this.generatePlaceholders(this.perPage);\n\n\t\t\treturn this.$store.dispatch('notifications/set', {notification: placeholders});\n\t\t},\n\t\tloadNextPage()\n\t\t{\n\t\t\tLogger.warn(`Loading more notifications!`);\n\n\t\t\tconst queryParams = {\n\t\t\t\t'LIMIT': this.perPage,\n\t\t\t\t'LAST_ID': this.lastId,\n\t\t\t\t'LAST_TYPE': this.lastType,\n\t\t\t\t'CONVERT_TEXT': 'Y'\n\t\t\t};\n\n\t\t\tthis.getRestClient().callMethod('im.notify.get', queryParams).then(result => {\n\t\t\t\tLogger.warn('im.notify.get: new page results', result.data());\n\n\t\t\t\tconst newUsers = result.data().users;\n\t\t\t\tconst newItems = result.data().notifications;\n\n\t\t\t\t//if we got empty data - clear all placeholders\n\t\t\t\tif (!newItems || newItems.length === 0)\n\t\t\t\t{\n\t\t\t\t\tthis.$store.dispatch('notifications/clearPlaceholders');\n\n\t\t\t\t\tthis.$store.dispatch('notifications/setTotal', {\n\t\t\t\t\t\ttotal: this.notification.length,\n\t\t\t\t\t});\n\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tthis.lastId = this.getLastItemId(newItems);\n\t\t\t\tthis.lastType = this.getLastItemType(newItems);\n\n\t\t\t\tthis.$store.dispatch('users/set', newUsers);\n\n\t\t\t\t//change temp data in models to real data, we need new items, first item to update and section\n\t\t\t\treturn this.$store.dispatch('notifications/updatePlaceholders', {\n\t\t\t\t\t\titems: newItems,\n\t\t\t\t\t\tfirstItem: this.pagesLoaded * this.perPage,\n\t\t\t\t\t});\n\t\t\t}).then(() => {\n\t\t\t\tthis.pagesLoaded++;\n\t\t\t\tLogger.warn('Page loaded. Total loaded - ', this.pagesLoaded);\n\n\t\t\t\treturn this.onAfterLoadNextPageRequest();\n\t\t\t}).catch(result => {\n\t\t\t\tLogger.warn('Request history error', result);\n\t\t\t});\n\t\t},\n\t\tonAfterLoadNextPageRequest()\n\t\t{\n\t\t\tLogger.warn('onAfterLoadNextPageRequest');\n\t\t\tif (this.pagesRequested > 0)\n\t\t\t{\n\t\t\t\tLogger.warn('We have delayed requests -', this.pagesRequested);\n\t\t\t\tthis.pagesRequested--;\n\n\t\t\t\treturn this.loadNextPage();\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tLogger.warn('No more delayed requests, clearing placeholders');\n\t\t\t\tthis.$store.dispatch('notifications/clearPlaceholders');\n\t\t\t\tthis.isLoadingNewPage = false;\n\n\t\t\t\treturn true;\n\t\t\t}\n\t\t},\n\t\tchangeReadStatus(item)\n\t\t{\n\t\t\tthis.$store.dispatch('notifications/read', { ids: [item.id], action: item.unread });\n\t\t\t// change the unread counter\n\t\t\tconst originalCounterBeforeUpdate = this.unreadCounter;\n\t\t\tconst counterValue = item.unread ? this.unreadCounter - 1 : this.unreadCounter + 1;\n\t\t\tthis.updateRecentList(counterValue);\n\t\t\tthis.$store.dispatch('notifications/setCounter', {\n\t\t\t\tunreadTotal: counterValue\n\t\t\t});\n\n\t\t\tclearTimeout(this.changeReadStatusBlockTimeout[item.id]);\n\t\t\tthis.changeReadStatusBlockTimeout[item.id] = setTimeout(() => {\n\t\t\t\tthis.getRestClient().callMethod('im.notify.read', {\n\t\t\t\t\t\tid: item.id,\n\t\t\t\t\t\taction: item.unread ? 'Y' : 'N',\n\t\t\t\t\t\tonly_current: 'Y'\n\t\t\t\t\t})\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tLogger.warn(`Notification ${item.id} unread status set to ${!item.unread}`);\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsole.error(error);\n\t\t\t\t\t\tthis.$store.dispatch('notifications/read', { ids: [item.id], action: !item.unread });\n\t\t\t\t\t\t// restore the unread counter in case of an error\n\t\t\t\t\t\tthis.updateRecentList(originalCounterBeforeUpdate)\n\t\t\t\t\t\tthis.$store.dispatch('notifications/setCounter', {\n\t\t\t\t\t\t\tunreadTotal: originalCounterBeforeUpdate\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t}, 1500);\n\t\t},\n\t\tdelete(item)\n\t\t{\n\t\t\tconst itemId = +item.id;\n\t\t\tthis.notificationsToDelete.push(itemId);\n\t\t\tconst notification = this.$store.getters['notifications/getById'](itemId);\n\t\t\tthis.$store.dispatch('notifications/update', {\n\t\t\t\tid: itemId,\n\t\t\t\tfields: { display: false }\n\t\t\t});\n\t\t\t// change the unread counter\n\t\t\tconst originalCounterBeforeUpdate = this.unreadCounter;\n\t\t\tconst counterValue = notification.unread ? this.unreadCounter - 1 : this.unreadCounter;\n\t\t\tthis.updateRecentList(counterValue, true)\n\t\t\tthis.$store.dispatch('notifications/setCounter', {\n\t\t\t\tunreadTotal: counterValue\n\t\t\t});\n\n\t\t\tthis.timer.stop('deleteNotificationServer', 'notifications', true);\n\n\t\t\tthis.timer.start('deleteNotificationServer', 'notifications', .5, () => {\n\t\t\t\tconst idsToDelete = this.notificationsToDelete;\n\t\t\t\tthis.notificationsToDelete = [];\n\n\t\t\t\tthis.getRestClient().callMethod('im.notify.delete', { id: idsToDelete })\n\t\t\t\t\t.then(() => {\n\t\t\t\t\t\tidsToDelete.forEach(id => {\n\t\t\t\t\t\t\tthis.$store.dispatch('notifications/delete', { id: id });\n\t\t\t\t\t\t});\n\n\t\t\t\t\t})\n\t\t\t\t\t.catch((error) => {\n\t\t\t\t\t\tconsole.error(error)\n\t\t\t\t\t\tidsToDelete.forEach(id => {\n\t\t\t\t\t\t\tthis.$store.dispatch('notifications/update', {\n\t\t\t\t\t\t\t\tid: id,\n\t\t\t\t\t\t\t\tfields: { display: true }\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\t// restore the unread counter in case of an error\n\t\t\t\t\t\tthis.updateRecentList(originalCounterBeforeUpdate, true)\n\t\t\t\t\t\tthis.$store.dispatch('notifications/setCounter', {\n\t\t\t\t\t\t\tunreadTotal: originalCounterBeforeUpdate\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t});\n\t\t},\n\t\tgetObserver(config)\n\t\t{\n\t\t\tif (\n\t\t\t\ttypeof window.IntersectionObserver === 'undefined'\n\t\t\t\t|| config.type === ObserverType.none\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn {\n\t\t\t\t\tobserve: () => {},\n\t\t\t\t\tunobserve: () => {}\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tconst observerCallback = (entries) => {\n\t\t\t\tentries.forEach(entry => {\n\t\t\t\t\tlet sendReadEvent = false;\n\t\t\t\t\tconst entryNotificationId = parseInt(entry.target.dataset.id, 10);\n\t\t\t\t\tif (entry.isIntersecting)\n\t\t\t\t\t{\n\t\t\t\t\t\t//on Windows with interface scaling intersectionRatio will never be 1\n\t\t\t\t\t\tif (entry.intersectionRatio >= 0.99)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsendReadEvent = true;\n\t\t\t\t\t\t\tthis.notificationsOnScreen.push(entryNotificationId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (\n\t\t\t\t\t\t\tentry.intersectionRatio > 0\n\t\t\t\t\t\t\t&& entry.intersectionRect.height > entry.rootBounds.height / 2\n\t\t\t\t\t\t)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsendReadEvent = true;\n\t\t\t\t\t\t\tthis.notificationsOnScreen.push(entryNotificationId);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.notificationsOnScreen = this.notificationsOnScreen.filter(notificationId => notificationId !== entryNotificationId);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.notificationsOnScreen = this.notificationsOnScreen.filter(notificationId => notificationId !== entryNotificationId);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (sendReadEvent)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.readNotificationsQueue.add(entryNotificationId);\n\t\t\t\t\t\tthis.readNotificationsNodes[entryNotificationId] = entry.target;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.readNotificationsQueue.delete(entryNotificationId);\n\t\t\t\t\t\tdelete this.readNotificationsNodes[entryNotificationId];\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.readVisibleNotificationsDelayed();\n\t\t\t\t});\n\t\t\t};\n\n\t\t\tconst observerOptions = {\n\t\t\t\troot: this.$refs['listNotifications'],\n\t\t\t\tthreshold: new Array(101).fill(0).map((zero, index) => index * 0.01)\n\t\t\t};\n\n\t\t\treturn new IntersectionObserver(observerCallback, observerOptions);\n\n\t\t},\n\n\t\t//events\n\t\tonScroll(event)\n\t\t{\n\t\t\tif (!this.isReadyToLoadNewPage(event))\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.remainingPages === 0 || !this.initialDataReceived)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (this.isLoadingNewPage)\n\t\t\t{\n\t\t\t\tthis.drawPlaceholders().then(() => {\n\t\t\t\t\tthis.pagesRequested++;\n\t\t\t\t\tLogger.warn('Already loading! Draw placeholders and add request, total - ', this.pagesRequested);\n\t\t\t\t});\n\t\t\t}\n\t\t\telse //if (!this.isLoadingNewPage)\n\t\t\t{\n\t\t\t\tLogger.warn('Starting new request');\n\n\t\t\t\tthis.isLoadingNewPage = true;\n\n\t\t\t\tthis.drawPlaceholders().then(() => {\n\t\t\t\t\tthis.loadNextPage();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tonWindowFocus()\n\t\t{\n\t\t\tthis.windowFocused = true;\n\t\t\tthis.readVisibleNotifications();\n\t\t},\n\t\tonWindowBlur()\n\t\t{\n\t\t\tthis.windowFocused = false;\n\t\t},\n\t\tonDoubleClick(event)\n\t\t{\n\t\t\tthis.changeReadStatus(event.item);\n\t\t},\n\t\tonButtonsClick(event)\n\t\t{\n\t\t\tconst params = this.getConfirmRequestParams(event);\n\t\t\tconst itemId = +params.NOTIFY_ID;\n\n\t\t\tthis.$store.dispatch('notifications/update', {\n\t\t\t\tid: itemId,\n\t\t\t\tfields: { display: false }\n\t\t\t});\n\t\t\t// change the unread counter\n\t\t\tconst counterValueBeforeUpdate = this.unreadCounter;\n\t\t\tconst counterValue = this.unreadCounter - 1;\n\t\t\tthis.updateRecentList(counterValue, true);\n\t\t\tthis.$store.dispatch('notifications/setCounter', {\n\t\t\t\tunreadTotal: counterValue\n\t\t\t});\n\n\t\t\tthis.getRestClient().callMethod('im.notify.confirm', params)\n\t\t\t\t.then(() => {\n\t\t\t\t\tthis.$store.dispatch('notifications/delete', {\n\t\t\t\t\t\tid: itemId,\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t\t.catch(() => {\n\t\t\t\t\tthis.$store.dispatch('notifications/update', {\n\t\t\t\t\t\tid: itemId,\n\t\t\t\t\t\tfields: { display: true }\n\t\t\t\t\t});\n\t\t\t\t\t// restore the unread counter in case of an error\n\t\t\t\t\tthis.updateRecentList(counterValueBeforeUpdate, true);\n\t\t\t\t\tthis.$store.dispatch('notifications/setCounter', {\n\t\t\t\t\t\tunreadTotal: counterValueBeforeUpdate\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t},\n\t\tonDeleteClick(event)\n\t\t{\n\t\t\tthis.delete(event.item);\n\n\t\t\t//we need to load more, if we are on the first page and we have more elements.\n\t\t\tif (!this.isLoadingNewPage && this.remainingPages > 0 && this.notification.length === this.perPage - 1)\n\t\t\t{\n\t\t\t\tthis.isLoadingNewPage = true;\n\n\t\t\t\tthis.drawPlaceholders().then(() => {\n\t\t\t\t\tthis.loadNextPage();\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tonRightClick(event)\n\t\t{\n\t\t\tif (this.contextPopupInstance !== null)\n\t\t\t{\n\t\t\t\tthis.closeContextMenuPopup();\n\t\t\t}\n\n\t\t\tconst items = this.getContextMenu(event.item);\n\n\t\t\tthis.contextPopupInstance = MenuManager.create({\n\t\t\t\tid: 'bx-messenger-context-popup-external-data',\n\t\t\t\tbindElement: event.event,\n\t\t\t\titems: items,\n\t\t\t\tevents: {\n\t\t\t\t\tonPopupClose: () => this.contextPopupInstance.destroy(),\n\t\t\t\t\tonPopupDestroy: () => this.contextPopupInstance = null\n\t\t\t\t},\n\t\t\t});\n\n\t\t\tthis.contextPopupInstance.show();\n\t\t},\n\n\t\tonDateFilterClick(event)\n\t\t{\n\t\t\tif (typeof (BX) !== 'undefined' && BX.calendar && BX.calendar.get().popup)\n\t\t\t{\n\t\t\t\tBX.calendar.get().popup.close();\n\t\t\t}\n\n\t\t\tBX.calendar({\n\t\t\t\tnode: event.target,\n\t\t\t\tfield: event.target,\n\t\t\t\tbTime: false,\n\t\t\t\tcallback_after: () => {\n\t\t\t\t\tthis.searchDate = event.target.value;\n\t\t\t\t}\n\t\t\t});\n\n\t\t\treturn false;\n\t\t},\n\n\t\tgetContextMenu(notification)\n\t\t{\n\t\t\tconst unreadMenuItemText = notification.unread ?\n\t\t\t\tthis.localize['IM_NOTIFICATIONS_CONTEXT_POPUP_SET_READ'] :\n\t\t\t\tthis.localize['IM_NOTIFICATIONS_CONTEXT_POPUP_SET_UNREAD'];\n\n\t\t\tconst blockMenuItemText = Type.isUndefined(BXIM.settingsNotifyBlocked[notification.settingName]) ?\n\t\t\t\tthis.localize['IM_NOTIFICATIONS_CONTEXT_POPUP_DONT_NOTIFY'] :\n\t\t\t\tthis.localize['IM_NOTIFICATIONS_CONTEXT_POPUP_NOTIFY'];\n\n\t\t\treturn [\n\t\t\t\t{\n\t\t\t\t\ttext: unreadMenuItemText,\n\t\t\t\t\tonclick: (event, item) => {\n\t\t\t\t\t\tthis.changeReadStatus(notification);\n\t\t\t\t\t\tthis.closeContextMenuPopup();\n\t\t\t\t\t}},\n\t\t\t\t{\n\t\t\t\t\ttext: this.localize['IM_NOTIFICATIONS_CONTEXT_POPUP_DELETE_NOTIFICATION'],\n\t\t\t\t\tonclick: (event, item) => {\n\t\t\t\t\t\tthis.delete(notification);\n\t\t\t\t\t\tthis.closeContextMenuPopup();\n\t\t\t\t\t}},\n\t\t\t\t{\n\t\t\t\t\ttext: blockMenuItemText,\n\t\t\t\t\tonclick: (event, item) => {\n\t\t\t\t\t\tconsole.log(notification)\n\t\t\t\t\t\tthis.closeContextMenuPopup();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t];\n\t\t},\n\t\tcloseContextMenuPopup()\n\t\t{\n\t\t\tthis.contextPopupInstance.destroy();\n\t\t\tthis.contextPopupInstance = null;\n\t\t},\n\t\tgetConfirmRequestParams(event)\n\t\t{\n\t\t\tif (event.params)\n\t\t\t{\n\t\t\t\tconst options = event.params.params.split('|');\n\n\t\t\t\treturn {\n\t\t\t\t\t'NOTIFY_ID': options[0],\n\t\t\t\t\t'NOTIFY_VALUE': options[1],\n\t\t\t\t};\n\t\t\t}\n\n\t\t\treturn null;\n\t\t},\n\t\treadNotifications(notificationId)\n\t\t{\n\t\t\tconst notification = this.$store.getters['notifications/getById'](notificationId);\n\t\t\tif (notification.unread === false || notification.sectionCode === NotificationTypesCodes.confirm)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.notificationsToRead.push(notificationId);\n\t\t\t// read on front\n\t\t\tthis.$store.dispatch('notifications/read', { ids: [notificationId], action: true });\n\n\t\t\t// change the unread counter\n\t\t\tconst counterValueBeforeUpdate = this.unreadCounter;\n\t\t\tconst counterValue = this.unreadCounter - 1;\n\t\t\tthis.$store.dispatch('notifications/setCounter', { unreadTotal: counterValue });\n\t\t\t// update recent counter\n\t\t\tthis.updateRecentList(counterValue);\n\n\t\t\tthis.timer.stop('readNotificationServer', 'notifications', true);\n\n\t\t\tthis.timer.start('readNotificationServer', 'notifications', .5, () => {\n\t\t\t\tconst idsToRead = this.notificationsToRead;\n\t\t\t\tthis.notificationsToRead = [];\n\n\t\t\t\t// we can read all notifications from some ID, only if we have not received new notifications\n\t\t\t\t// (otherwise we will read notifications at the top that we are not actually seeing)\n\t\t\t\tlet canReadFromId = false;\n\t\t\t\tif (this.firstUnreadNotificationOnInit !== null)\n\t\t\t\t{\n\t\t\t\t\tcanReadFromId = Math.max(...idsToRead) <= this.firstUnreadNotificationOnInit;\n\t\t\t\t}\n\n\t\t\t\tlet restMethod = 'im.notify.read.list';\n\t\t\t\tlet requestParams = {\n\t\t\t\t\tids: idsToRead,\n\t\t\t\t\taction: 'Y'\n\t\t\t\t};\n\n\t\t\t\tif (canReadFromId)\n\t\t\t\t{\n\t\t\t\t\tconst readFromId = Math.min(...idsToRead);\n\t\t\t\t\trestMethod = 'im.notify.read';\n\t\t\t\t\trequestParams = {\n\t\t\t\t\t\tid: readFromId,\n\t\t\t\t\t\taction: 'Y'\n\t\t\t\t\t};\n\t\t\t\t}\n\n\t\t\t\tthis.getRestClient().callMethod(restMethod, requestParams).then(() => {\n\t\t\t\t\tLogger.warn('I have read the notifications', requestParams);\n\t\t\t\t}).catch(() => {\n\t\t\t\t\tthis.$store.dispatch('notifications/read', { ids: idsToRead, action: false });\n\t\t\t\t\t// restore the unread counter in case of an error\n\t\t\t\t\tthis.$store.dispatch('notifications/setCounter', { unreadTotal: counterValueBeforeUpdate });\n\t\t\t\t\tthis.updateRecentList(counterValueBeforeUpdate);\n\t\t\t\t});\n\t\t\t});\n\t\t},\n\t\tgetLastItemType(collection)\n\t\t{\n\t\t\treturn this.getItemType(collection[collection.length - 1]);\n\t\t},\n\t\tgetItemType(item)\n\t\t{\n\t\t\tif (item.notify_type === NotificationTypesCodes.confirm)\n\t\t\t{\n\t\t\t\treturn NotificationTypesCodes.confirm;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn NotificationTypesCodes.simple;\n\t\t\t}\n\t\t},\n\t\tgetLatest()\n\t\t{\n\t\t\tlet latestNotification = {\n\t\t\t\tid: 0\n\t\t\t};\n\n\t\t\tfor (const notification of this.notification)\n\t\t\t{\n\t\t\t\tif (notification.id > latestNotification.id)\n\t\t\t\t{\n\t\t\t\t\tlatestNotification = notification;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn latestNotification;\n\t\t},\n\t\t//todo: refactor this method for the new chat\n\t\tshowConfirmPopupOnReadAll()\n\t\t{\n\t\t\tconst readAll = this.readAll.bind(this);\n\n\t\t\tBXIM.openConfirm(this.localize['IM_NOTIFICATIONS_READ_ALL_WARNING_POPUP'], [\n\t\t\t\tnew BX.PopupWindowButton({\n\t\t\t\t\ttext: this.localize['IM_NOTIFICATIONS_READ_ALL_WARNING_POPUP_YES'],\n\t\t\t\t\tclassName: 'popup-window-button-accept',\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: function() {\n\t\t\t\t\t\t\treadAll();\n\t\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}),\n\t\t\t\tnew BX.PopupWindowButton({\n\t\t\t\t\ttext: this.localize['IM_NOTIFICATIONS_READ_ALL_WARNING_POPUP_CANCEL'],\n\t\t\t\t\tclassName: 'popup-window-button',\n\t\t\t\t\tevents: {\n\t\t\t\t\t\tclick: function() {\n\t\t\t\t\t\t\tthis.popupWindow.close();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t]);\n\t\t},\n\t\treadAll()\n\t\t{\n\t\t\tif (this.notification.lastId <= 0)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif (!this.isNeedToReadAll)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.$store.dispatch('notifications/readAll');\n\n\t\t\t//we need to count \"confirms\" because its always \"unread\"\n\t\t\tconst confirms = this.notification.filter((notificationItem) => {\n\t\t\t\treturn notificationItem.sectionCode === NotificationTypesCodes.confirm;\n\t\t\t});\n\t\t\tthis.$store.dispatch('notifications/setCounter', { unreadTotal: confirms.length });\n\t\t\tthis.updateRecentList(confirms.length);\n\n\t\t\tthis.getRestClient().callMethod('im.notify.read', {\n\t\t\t\tid: 0,\n\t\t\t\taction: 'Y'\n\t\t\t}).catch((result) => {\n\t\t\t\tthis.getInitialData();\n\t\t\t\tconsole.error(result);\n\t\t\t});\n\t\t},\n\t\tupdateRecentList(counterValue, setPreview = false)\n\t\t{\n\t\t\tconst fields = {\n\t\t\t\tcounter: counterValue\n\t\t\t};\n\n\t\t\tif (setPreview)\n\t\t\t{\n\t\t\t\tconst latestNotification = this.getLatest();\n\t\t\t\tfields.message = {\n\t\t\t\t\tid: latestNotification.id,\n\t\t\t\t\ttext: latestNotification.text,\n\t\t\t\t\tdate: latestNotification.date\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tthis.$store.dispatch('recent/update', {\n\t\t\t\tid: 'notify',\n\t\t\t\tfields: fields\n\t\t\t});\n\t\t},\n\t\tonScrollButtonClick(event)\n\t\t{\n\t\t\tif (this.isLoadingNewPage || !this.initialDataReceived)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet notificationIdToScroll = null;\n\t\t\tif (this.firstUnreadNotificationBelowVisible !== null)\n\t\t\t{\n\t\t\t\tnotificationIdToScroll = this.firstUnreadNotificationBelowVisible;\n\t\t\t}\n\t\t\telse if (!this.hasUnreadBelowVisible)\n\t\t\t{\n\t\t\t\tnotificationIdToScroll = this.firstUnreadNotification.id\n\t\t\t}\n\n\t\t\tlet firstUnreadNotificationNode = null\n\t\t\tif (notificationIdToScroll !== null)\n\t\t\t{\n\t\t\t\tconst selector = `.bx-im-notifications-item[data-id=\"${notificationIdToScroll}\"]`;\n\t\t\t\tfirstUnreadNotificationNode = document.querySelector(selector);\n\t\t\t}\n\n\t\t\tif (firstUnreadNotificationNode)\n\t\t\t{\n\t\t\t\tthis.animatedScrollToPosition({\n\t\t\t\t\tstart: this.$refs['listNotifications'].scrollTop,\n\t\t\t\t\tend: firstUnreadNotificationNode.offsetTop\n\t\t\t\t});\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tconst latestNotification = this.notification[this.notification.length - 1];\n\t\t\t\tconst selector = `.bx-im-notifications-item[data-id=\"${latestNotification.id}\"]`;\n\t\t\t\tconst latestNotificationNode = document.querySelector(selector);\n\n\t\t\t\tthis.animatedScrollToPosition({\n\t\t\t\t\tstart: this.$refs['listNotifications'].scrollTop,\n\t\t\t\t\tend: latestNotificationNode.offsetTop\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\t\tanimatedScrollToPosition(params = {})\n\t\t{\n\t\t\tif (this.animateScrollId)\n\t\t\t{\n\t\t\t\tAnimation.cancel(this.animateScrollId);\n\t\t\t\tthis.scrollAnimating = false;\n\t\t\t}\n\t\t\tif (typeof params === 'function')\n\t\t\t{\n\t\t\t\tparams = {callback: params};\n\t\t\t}\n\n\t\t\tconst container = this.$refs.listNotifications;\n\n\t\t\tlet {\n\t\t\t\tstart = container.scrollTop,\n\t\t\t\tend = container.scrollHeight - container.clientHeight,\n\t\t\t\tincrement = 20,\n\t\t\t\tcallback,\n\t\t\t\tduration = 500\n\t\t\t} = params;\n\n\t\t\tif (container && (end - start) > container.offsetHeight * 3)\n\t\t\t{\n\t\t\t\tstart = end - container.offsetHeight * 3;\n\t\t\t}\n\n\t\t\tthis.scrollAnimating = true;\n\n\t\t\tthis.animateScrollId = Animation.start({\n\t\t\t\tstart,\n\t\t\t\tend,\n\t\t\t\tincrement,\n\t\t\t\tduration,\n\n\t\t\t\telement: container,\n\t\t\t\telementProperty: 'scrollTop',\n\n\t\t\t\tcallback: () =>\n\t\t\t\t{\n\t\t\t\t\tthis.animateScrollId = null;\n\t\t\t\t\tthis.scrollAnimating = false;\n\t\t\t\t\tif (callback && typeof callback === 'function')\n\t\t\t\t\t{\n\t\t\t\t\t\tcallback();\n\t\t\t\t\t}\n\t\t\t\t},\n\t\t\t});\n\t\t},\n\t},\n\t//language=Vue\n\ttemplate: `\n\t\t<div class=\"bx-messenger-next-notify\">\n\t\t\t<div class=\"bx-messenger-panel-next-wrapper\" :style=\"panelStyles\">\n\t\t\t\t<div class=\"bx-messenger-panel-next\">\n\t\t\t\t\t<div>\n\t\t\t\t\t\t<span \n\t\t\t\t\t\t\tclass=\"bx-messenger-panel-avatar bx-im-notifications-image-system bx-im-notifications-header-image\"\n\t\t\t\t\t\t></span>\n\t\t\t\t\t\t<span class=\"bx-messenger-panel-title bx-messenger-panel-title-middle\" style=\"flex-shrink: 0;\">\n\t\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_NOTIFICATIONS_HEADER') }}\n\t\t\t\t\t\t</span>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div v-if=\"notification.length > 0\" class=\"bx-im-notifications-header-buttons\">\n\t\t\t\t\t\t<transition name=\"notifications-read-all-fade\">\n\t\t\t\t\t\t\t<div v-if=\"isNeedToReadAll\" class=\"bx-im-notifications-header-read-all\">\n\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\tclass='bx-messenger-panel-button bx-im-notifications-header-read-all-icon'\n\t\t\t\t\t\t\t\t\t@click=\"showConfirmPopupOnReadAll\"\n\t\t\t\t\t\t\t\t\t:title=\"$Bitrix.Loc.getMessage('IM_NOTIFICATIONS_READ_ALL_BUTTON')\"\n\t\t\t\t\t\t\t\t></span>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</transition>\n\t\t\t\t\t\t<div class=\"bx-im-notifications-header-filter\">\n\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t:class=\"['bx-messenger-panel-button bx-messenger-panel-history bx-im-notifications-header-filter-icon', (showSearch? 'bx-im-notifications-header-filter-active': '')]\"\n\t\t\t\t\t\t\t\t@click=\"showSearch = !showSearch\"\n\t\t\t\t\t\t\t\t:title=\"$Bitrix.Loc.getMessage('IM_NOTIFICATIONS_SEARCH_FILTER_OPEN_BUTTON')\"\n\t\t\t\t\t\t\t></span>\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\t<div v-if=\"showSearch\" class=\"bx-im-notifications-header-filter-box\" :style=\"filterBoxStyles\">\n\t\t\t\t\t<div class=\"ui-ctl ui-ctl-after-icon ui-ctl-dropdown ui-ctl-xs ui-ctl-w25\">\n\t\t\t\t\t\t<div class=\"ui-ctl-after ui-ctl-icon-angle\"></div>\n\t\t\t\t\t\t<select class=\"ui-ctl-element\" v-model=\"searchType\">\n\t\t\t\t\t\t\t<option value=\"\">\n\t\t\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_NOTIFICATIONS_SEARCH_FILTER_TYPE_PLACEHOLDER') }}\n\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t<template v-for=\"group in filterTypes\">\n\t\t\t\t\t\t\t\t<template v-if=\"group.LIST\">\n\t\t\t\t\t\t\t\t\t<optgroup :label=\"group.NAME\">\n\t\t\t\t\t\t\t\t\t\t<option v-for=\"option in group.LIST\" :value=\"option.ID\">\n\t\t\t\t\t\t\t\t\t\t\t{{ option.NAME }}\n\t\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t\t</optgroup>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\t<template v-else> \n\t\t\t\t\t\t\t\t\t<option :value=\"group.MODULE_ID\">\n\t\t\t\t\t\t\t\t\t\t{{ group.NAME }}\n\t\t\t\t\t\t\t\t\t</option>\n\t\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t</template>\n\t\t\t\t\t\t\t\n\t\t\t\t\t\t</select>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ui-ctl ui-ctl-textbox ui-ctl-after-icon ui-ctl-xs ui-ctl-w50\"> \n\t\t\t\t\t\t<button class=\"ui-ctl-after ui-ctl-icon-clear\" @click.prevent=\"searchQuery=''\"></button>\n\t\t\t\t\t\t<input\n\t\t\t\t\t\t\tautofocus\n\t\t\t\t\t\t\ttype=\"text\" \n\t\t\t\t\t\t\tclass=\"ui-ctl-element\" \n\t\t\t\t\t\t\tv-model=\"searchQuery\" \n\t\t\t\t\t\t\t:placeholder=\"$Bitrix.Loc.getMessage('IM_NOTIFICATIONS_SEARCH_FILTER_TEXT_PLACEHOLDER')\"\n\t\t\t\t\t\t>\n\t\t\t\t\t</div>\n\t\t\t\t\t<div class=\"ui-ctl ui-ctl-after-icon ui-ctl-before-icon ui-ctl-xs ui-ctl-w25\">\n\t\t\t\t\t\t<div class=\"ui-ctl-before ui-ctl-icon-calendar\"></div>\n\t\t\t\t\t\t<input \n\t\t\t\t\t\t\ttype=\"text\" \n\t\t\t\t\t\t\tclass=\"ui-ctl-element ui-ctl-textbox\" \n\t\t\t\t\t\t\tv-model=\"searchDate\"\n\t\t\t\t\t\t\t@focus.prevent.stop=\"onDateFilterClick\"\n\t\t\t\t\t\t\t@click.prevent.stop=\"onDateFilterClick\"\n\t\t\t\t\t\t\t:placeholder=\"$Bitrix.Loc.getMessage('IM_NOTIFICATIONS_SEARCH_FILTER_DATE_PLACEHOLDER')\"\n\t\t\t\t\t\t\treadonly\n\t\t\t\t\t\t>\n\t\t\t\t\t\t<button class=\"ui-ctl-after ui-ctl-icon-clear\" @click.prevent=\"searchDate=''\"></button>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</div>\n\t\t\t<div \n\t\t\t\tv-if=\"showSearch && (searchQuery.length >= 3 || searchType !== '' || searchDate !== '')\" \n\t\t\t\tclass=\"bx-messenger-list-notifications-wrap\"\n\t\t\t>\n\t\t\t\t<NotificationSearchResult :searchQuery=\"searchQuery\" :searchType=\"searchType\" :searchDate=\"searchDate\"/>\n\t\t\t</div>\n\t\t\t<div v-else class=\"bx-messenger-list-notifications-wrap\">\n\t\t\t\t<div :class=\"[ darkTheme ? 'bx-messenger-dark' : '', 'bx-messenger-list-notifications']\" @scroll.passive=\"onScroll\" ref=\"listNotifications\">\n\t\t\t\t\t<notification-item\n\t\t\t\t\t\tv-for=\"listItem in visibleNotifications\"\n\t\t\t\t\t\t:key=\"listItem.id\"\n\t\t\t\t\t\t:data-id=\"listItem.id\"\n\t\t\t\t\t\t:rawListItem=\"listItem\"\n\t\t\t\t\t\t@dblclick=\"onDoubleClick\"\n\t\t\t\t\t\t@buttonsClick=\"onButtonsClick\"\n\t\t\t\t\t\t@deleteClick=\"onDeleteClick\"\n\t\t\t\t\t\t@contentClick=\"onContentClick\"\n\t\t\t\t\t\tv-bx-im-directive-notifications-observer=\"\n\t\t\t\t\t\t\tlistItem.sectionCode !== NotificationTypesCodes.placeholder\n\t\t\t\t\t\t\t? ObserverType.read \n\t\t\t\t\t\t\t: ObserverType.none\n\t\t\t\t\t\t\"\n\t\t\t\t\t/>\n\t\t\t\t\t<div\n\t\t\t\t\t\tv-if=\"notification.length <= 0\"\n\t\t\t\t\t\tstyle=\"padding-top: 210px; margin-bottom: 20px;\"\n\t\t\t\t\t\tclass=\"bx-messenger-box-empty bx-notifier-content-empty\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{{ $Bitrix.Loc.getMessage('IM_NOTIFICATIONS_NO_ITEMS') }}\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t\t<!-- Scroll button -->\n\t\t\t\t<transition name=\"bx-im-notifications-scroll-button\">\n\t\t\t\t\t<div v-show=\"showScrollButton\" class=\"bx-im-notifications-scroll-button-box\" @click=\"onScrollButtonClick\">\n\t\t\t\t\t\t<div class=\"bx-im-notifications-scroll-button\">\n\t\t\t\t\t\t\t<div class=\"bx-im-notifications-scroll-button-counter\">\n\t\t\t\t\t\t\t\t<div class=\"bx-im-notifications-scroll-button-counter-digit\">{{ unreadCounter }}</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t<div :class=\"arrowButtonClass\"></div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</transition>\n\t\t\t\t\n\t\t\t\t<mounting-portal :mount-to=\"popupIdSelector\" append v-if=\"popupInstance\">\n\t\t\t\t\t<popup :type=\"contentPopupType\" :value=\"contentPopupValue\" :popupInstance=\"popupInstance\"/>\n\t\t\t\t</mounting-portal>\n\t\t\t</div>\n\t\t</div>\n\t`\n});"],"names":["NotificationQuickAnswer","props","data","quickAnswerText","quickAnswerResultMessage","showQuickAnswer","isSendingQuickAnswer","successSentQuickAnswer","methods","toggleQuickAnswer","$nextTick","$refs","focus","sendQuickAnswer","event","trim","notificationId","item","id","$Bitrix","RestClient","get","callMethod","notify_id","answer_text","then","result","result_message","error","console","template","NotificationItemHeader","computed","moreUsers","phrase","Loc","getMessage","split","start","end","listItem","params","USERS","length","isMoreUsers","hasOwnProperty","isAbleToDelete","sectionCode","NotificationTypesCodes","simple","onDeleteClick","$emit","onMoreUsersClick","users","content","type","value","onUserTitleClick","window","top","userId","openMessenger","NotificationPlaceholder","NotificationItem","components","menuId","rawListItem","authorId","systemType","avatar","title","userTitle","subtitle","textConverted","url","color","defaultAvatarColor","notifyButtons","undefined","unread","settingName","date","Utils","format","getMessages","isRealItem","placeholder","isNeedQuickAnswer","CAN_ANSWER","userData","name","$store","getters","avatarStyles","backgroundImage","onDoubleClick","searchMode","onButtonsClick","action","onContentClick","Vue","testNode","target","className","dataset","onRightClick","platform","isBitrixDesktop","tagName","href","startsWith","hrefToCopy","menuPopup","destroy","existingMenu","PopupManager","getPopupById","menuItem","Dom","create","attrs","events","click","BX","desktop","clipboardCopy","text","targetContainer","document","body","MessengerTheme","isDark","darkMode","bindElement","offsetLeft","autoHide","closeByEsc","onPopupClose","onPopupDestroy","setAngle","show","NotificationCore","placeholderCount","isReadyToLoadNewPage","leftSpaceBottom","scrollHeight","scrollTop","clientHeight","getLastItemId","collection","generatePlaceholders","amount","placeholders","i","push","getRestClient","contentPopupType","toLowerCase","contentPopupValue","popupInstance","popupAngle","isDarkTheme","BXIM","messenger","openPopupExternalData","MessengerCommon","linesGetSessionHistory","popup","lightShadow","offsetTop","bindOptions","position","popupIdSelector","getContentContainer","darkTheme","NotificationSearchResult","MountingPortal","Popup","mixins","pageLimit","lastId","initialDataReceived","isLoadingNewPage","searchResultsTotal","searchPageLoaded","searchPagesRequested","remainingPages","Math","ceil","searchResults","Vuex","mapState","notification","state","notifications","searchCollection","watch","searchQuery","search","searchType","searchDate","parseDate","Date","created","searchServerDelayed","debounce","getSearchResultsFromServer","beforeDestroy","dispatch","resetSearchState","localResults","filter","includes","itemDateForCompare","getTime","setHours","dateFromInput","isNeedPlaceholders","drawPlaceholders","queryParams","getSearchRequestParams","Logger","warn","processHistoryData","total_results","loadNextPage","newUsers","newItems","items","firstItem","onAfterLoadNextPageRequest","toISOString","onScroll","pagesRequested","getConfirmRequestParams","itemId","NOTIFY_ID","unreadTotal","unreadCounter","fields","display","ObserverType","Object","freeze","read","none","BitrixVue","component","directives","inserted","element","bindings","vnode","context","observers","getObserver","observe","unbind","unobserve","perPage","isLoadingInitialData","pagesLoaded","lastType","confirm","notificationsOnScreen","notificationsToRead","notificationsToDelete","changeReadStatusBlockTimeout","firstUnreadNotificationOnInit","contextPopupInstance","showSearch","callViewState","total","localize","getFilteredPhrases","visibleNotifications","notificationItem","highestNotificationId","reduce","highestId","currentNotification","isNeedToReadAll","confirmCounterInModel","panelStyles","Call","Controller","ViewState","Folded","paddingBottom","filterBoxStyles","paddingTop","firstUnreadNotification","unreadNotification","maxNotificationIndex","firstUnreadNotificationBelowVisible","minIdOnScreen","max","unreadId","isUnreadNotificationVisible","unreadOnScreen","Array","from","idOnScreen","notificationOnScreen","showScrollButton","settings","notifyAutoRead","hasUnreadBelowVisible","unreadCounterBeforeVisible","arrowButtonClass","arrowUp","filterTypes","originalSchema","assign","schema","modulesToReduceListItems","forEach","moduleId","LIST","NAME","modulesToShowInFilter","notificationFilterTypes","getInitialData","EventEmitter","subscribe","EventType","updateState","onUpdateState","addEventListener","onWindowFocus","onWindowBlur","callController","Events","onViewStateChanged","onCallViewStateChange","timer","Timer","readNotificationsQueue","Set","readNotificationsNodes","readVisibleNotificationsDelayed","MessengerUtils","readVisibleNotifications","mounted","windowFocused","hasFocus","removeEventListener","unsubscribe","getFirstUnreadNotificationOnInit","lastNotificationId","readNotifications","parseInt","clear","RestMethodHandler","imNotifyGet","RestMethod","imNotifySchemaGet","callBatch","response","processInitialData","processSchemaData","getLastItemType","total_unread_count","total_count","updateRecentList","changeReadStatus","ids","originalCounterBeforeUpdate","counterValue","clearTimeout","setTimeout","only_current","stop","idsToDelete","config","IntersectionObserver","observerCallback","entries","entry","sendReadEvent","entryNotificationId","isIntersecting","intersectionRatio","intersectionRect","height","rootBounds","add","observerOptions","root","threshold","fill","map","zero","index","counterValueBeforeUpdate","closeContextMenuPopup","getContextMenu","MenuManager","onDateFilterClick","calendar","close","node","field","bTime","callback_after","unreadMenuItemText","blockMenuItemText","Type","isUndefined","settingsNotifyBlocked","onclick","log","options","idsToRead","canReadFromId","restMethod","requestParams","readFromId","min","getItemType","notify_type","getLatest","latestNotification","showConfirmPopupOnReadAll","readAll","bind","openConfirm","PopupWindowButton","popupWindow","confirms","setPreview","counter","message","onScrollButtonClick","notificationIdToScroll","firstUnreadNotificationNode","selector","querySelector","animatedScrollToPosition","latestNotificationNode","animateScrollId","Animation","cancel","scrollAnimating","callback","container","listNotifications","increment","duration","offsetHeight","elementProperty"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.24 |
proxy
|
phpinfo
|
Settings