File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/js/im/view/dialog/dist/dialog.bundle.js.map
Back
{"version":3,"file":"dialog.bundle.js","sources":["../src/dialog.js"],"sourcesContent":["/**\n * Bitrix Messenger\n * Dialog Vue component\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2019 Bitrix\n */\n\nimport './dialog.css';\nimport 'main.polyfill.intersectionobserver';\nimport {Vue} from 'ui.vue';\nimport {Vuex} from 'ui.vue.vuex';\nimport 'im.view.message';\nimport {DeviceType, MutationType, DialogReferenceClassName, DialogType} from \"im.const\";\nimport {Utils as MessengerUtils} from \"im.lib.utils\";\nimport {Animation} from \"im.lib.animation\";\nimport {Logger} from \"im.lib.logger\";\n\nconst TemplateType = Object.freeze({\n\tmessage: 'message',\n\tdelimiter: 'delimiter',\n\tgroup: 'group',\n\thistoryLoader: 'historyLoader',\n\tunreadLoader: 'unreadLoader',\n\tbutton: 'button',\n});\n\nconst ObserverType = Object.freeze({\n\thistory: 'history',\n\tunread: 'unread',\n\tread: 'read',\n\tnone: 'none',\n});\n\nconst LoadButtonTypes = Object.freeze({\n\tbefore: 'before',\n\tafter: 'after'\n});\n\nconst AnimationType = Object.freeze({\n\tnone: 'none',\n\tmixed: 'mixed',\n\tenter: 'enter',\n\tleave: 'leave',\n});\n\nVue.component('bx-im-view-dialog',\n{\n\t/**\n\t * @emits 'requestHistory' {lastId: number, limit: number}\n\t * @emits 'requestUnread' {lastId: number, limit: number}\n\t * @emits 'readMessage' {id: number}\n\t * @emits 'quoteMessage' {message: object}\n\t * @emits 'click' {event: MouseEvent}\n\t * @emits 'clickByUserName' {user: object, event: MouseEvent}\n\t * @emits 'clickByUploadCancel' {file: object, event: MouseEvent}\n\t * @emits 'clickByKeyboardButton' {message: object, action: string, params: Object}\n\t * @emits 'clickByChatTeaser' {message: object, event: MouseEvent}\n\t * @emits 'clickByMessageMenu' {message: object, event: MouseEvent}\n\t * @emits 'clickByCommand' {type: string, value: string, event: MouseEvent}\n\t * @emits 'clickByMention' {type: string, value: string, event: MouseEvent}\n\t * @emits 'clickByMessageRetry' {message: object, event: MouseEvent}\n\t * @emits 'clickByReadedList' {list: array, event: MouseEvent}\n\t * @emits 'setMessageReaction' {message: object, reaction: object}\n\t * @emits 'openMessageReactionList' {message: object, values: object}\n\t */\n\n\t/**\n\t * @listens props.listenEventScrollToBottom {force:boolean, cancelIfScrollChange:boolean} (global|application) -- scroll dialog to bottom, see more in methods.onScrollToBottom()\n\t * @listens props.listenEventRequestHistory {count:number} (application)\n\t * @listens props.listenEventRequestUnread {count:number} (application)\n\t * @listens props.listenEventSendReadMessages {} (application)\n\t */\n\tprops:\n\t{\n\t\tuserId: { default: 0 },\n\t\tdialogId: { default: 0 },\n\t\tchatId: { default: 0 },\n\t\tmessageLimit: { default: 20 },\n\t\tmessageExtraCount: { default: 0 },\n\t\tlistenEventScrollToBottom: { default: '' },\n\t\tlistenEventRequestHistory: { default: '' },\n\t\tlistenEventRequestUnread: { default: '' },\n\t\tlistenEventSendReadMessages: { default: '' },\n\t\tenableReadMessages: { default: true },\n\t\tenableReactions: { default: true },\n\t\tenableDateActions: { default: true },\n\t\tenableCreateContent: { default: true },\n\t\tenableGestureQuote: { default: true },\n\t\tenableGestureQuoteFromRight: { default: true },\n\t\tenableGestureMenu: { default: false },\n\t\tshowMessageUserName: { default: true },\n\t\tshowMessageAvatar: { default: true },\n\t\tshowMessageMenu: { default: true },\n\t},\n\tdata()\n\t{\n\t\treturn {\n\t\t\tscrollAnimating: false,\n\t\t\tshowScrollButton: false,\n\t\t\tmessageShowCount: 0,\n\t\t\tunreadLoaderShow: false,\n\t\t\thistoryLoaderBlocked: false,\n\t\t\thistoryLoaderShow: true,\n\t\t\tstartMessageLimit: 0,\n\t\t\ttemplateMessageScrollOffset: 20,\n\t\t\ttemplateMessageWithNameDifferent: 29, // name block + padding top\n\t\t\tTemplateType: TemplateType,\n\t\t\tObserverType: ObserverType,\n\t\t\tDialogReferenceClassName: DialogReferenceClassName,\n\t\t\tcaptureMove: false,\n\t\t\tcapturedMoveEvent: null,\n\t\t\tlastMessageId: null,\n\t\t\tmaxMessageId: null,\n\t\t}\n\t},\n\tcreated()\n\t{\n\t\tthis.showScrollButton = this.unreadCounter > 0;\n\n\t\tthis.scrollChangedByUser = false;\n\t\tthis.scrollButtonDiff = 100;\n\t\tthis.scrollButtonShowTimeout = null;\n\t\tthis.scrollPosition = 0;\n\t\tthis.scrollPositionChangeTime = new Date().getTime();\n\n\t\tthis.animationScrollHeightStart = 0;\n\t\tthis.animationScrollHeightEnd = 0;\n\t\tthis.animationScrollTop = 0;\n\t\tthis.animationScrollChange = 0;\n\t\tthis.animationScrollLastUserId = 0;\n\t\tthis.animationType = AnimationType.none;\n\t\tthis.animationCollection = [];\n\t\tthis.animationCollectionOffset = {};\n\t\tthis.animationLastElementBeforeStart = 0;\n\n\t\tthis.observers = {};\n\n\t\tthis.requestHistoryInterval = null;\n\t\tthis.requestUnreadInterval = null;\n\n\t\tthis.lastAuthorId = 0;\n\t\tthis.firstMessageId = null;\n\t\tthis.firstUnreadMessageId = null;\n\t\tthis.dateFormatFunction = null;\n\t\tthis.cacheGroupTitle = {};\n\n\t\tthis.waitLoadHistory = false;\n\t\tthis.waitLoadUnread = false;\n\t\tthis.skipUnreadScroll = false;\n\n\t\tthis.readMessageQueue = [];\n\t\tthis.readMessageTarget = {};\n\t\tthis.readMessageDelayed = MessengerUtils.debounce(this.readMessage, 50, this);\n\n\t\tthis.requestHistoryBlockIntersect = false;\n\t\tthis.requestHistoryDelayed = MessengerUtils.debounce(this.requestHistory, 50, this);\n\n\t\tthis.requestUnreadBlockIntersect = false;\n\t\tthis.requestUnreadDelayed = MessengerUtils.debounce(this.requestUnread, 50, this);\n\n\t\tthis.startMessageLimit = this.messageLimit;\n\n\t\tif (this.listenEventScrollToBottom)\n\t\t{\n\t\t\tVue.event.$on(this.listenEventScrollToBottom, this.onScrollToBottom);\n\t\t\tthis.$root.$on(this.listenEventScrollToBottom, this.onScrollToBottom);\n\t\t}\n\t\tif (this.listenEventRequestHistory)\n\t\t{\n\t\t\tVue.event.$on(this.listenEventRequestHistory, this.onRequestHistoryAnswer);\n\t\t\tthis.$root.$on(this.listenEventRequestHistory, this.onRequestHistoryAnswer);\n\t\t}\n\t\tif (this.listenEventRequestUnread)\n\t\t{\n\t\t\tVue.event.$on(this.listenEventRequestUnread, this.onRequestUnreadAnswer);\n\t\t\tthis.$root.$on(this.listenEventRequestUnread, this.onRequestUnreadAnswer);\n\t\t}\n\t\tif (this.listenEventSendReadMessages)\n\t\t{\n\t\t\tVue.event.$on(this.listenEventSendReadMessages, this.onSendReadMessages);\n\t\t\tthis.$root.$on(this.listenEventSendReadMessages, this.onSendReadMessages);\n\t\t}\n\n\t\twindow.addEventListener(\"orientationchange\", this.onOrientationChange);\n\t\twindow.addEventListener('focus', this.onWindowFocus);\n\t\twindow.addEventListener('blur', this.onWindowBlur);\n\n\t\tVue.event.$on('bitrixmobile:controller:focus', this.onWindowFocus);\n\t\tVue.event.$on('bitrixmobile:controller:blur', this.onWindowBlur);\n\t},\n\tbeforeDestroy()\n\t{\n\t\tthis.observers = {};\n\n\t\tclearTimeout(this.scrollButtonShowTimeout);\n\t\tclearInterval(this.requestHistoryInterval);\n\t\tclearInterval(this.requestUnreadInterval);\n\n\t\tif (this.listenEventScrollToBottom)\n\t\t{\n\t\t\tVue.event.$off(this.listenEventScrollToBottom, this.onScrollToBottom);\n\t\t\tthis.$root.$off(this.listenEventScrollToBottom, this.onScrollToBottom);\n\t\t}\n\t\tif (this.listenEventRequestHistory)\n\t\t{\n\t\t\tVue.event.$off(this.listenEventRequestHistory, this.onRequestHistoryAnswer);\n\t\t\tthis.$root.$off(this.listenEventRequestHistory, this.onRequestHistoryAnswer);\n\t\t}\n\t\tif (this.listenEventRequestUnread)\n\t\t{\n\t\t\tVue.event.$off(this.listenEventRequestUnread, this.onRequestUnreadAnswer);\n\t\t\tthis.$root.$off(this.listenEventRequestUnread, this.onRequestUnreadAnswer);\n\t\t}\n\t\tif (this.listenEventSendReadMessages)\n\t\t{\n\t\t\tVue.event.$off(this.listenEventSendReadMessages, this.onSendReadMessages);\n\t\t\tthis.$root.$off(this.listenEventSendReadMessages, this.onSendReadMessages);\n\t\t}\n\n\t\twindow.removeEventListener(\"orientationchange\", this.onOrientationChange);\n\t\twindow.removeEventListener('focus', this.onWindowFocus);\n\t\twindow.removeEventListener('blur', this.onWindowBlur);\n\n\t\tVue.event.$off('bitrixmobile:controller:focus', this.onWindowFocus);\n\t\tVue.event.$off('bitrixmobile:controller:blur', this.onWindowBlur);\n\t},\n\tmounted()\n\t{\n\t\tlet unreadId = Utils.getFirstUnreadMessage(this.collection);\n\t\tif (unreadId)\n\t\t{\n\t\t\tUtils.scrollToFirstUnreadMessage(this, this.collection, unreadId, true)\n\t\t}\n\t\telse\n\t\t{\n\t\t\tlet body = this.$refs.body;\n\t\t\tUtils.scrollToPosition(this, body.scrollHeight - body.clientHeight);\n\t\t}\n\t\tthis.windowFocused = MessengerUtils.platform.isBitrixMobile()? true: document.hasFocus();\n\t},\n\tcomputed:\n\t{\n\t\tlocalize()\n\t\t{\n\t\t\treturn Vue.getFilteredPhrases('IM_MESSENGER_DIALOG_', this.$root.$bitrixMessages);\n\t\t},\n\t\tdialog()\n\t\t{\n\t\t\tlet dialog = this.$store.getters['dialogues/get'](this.dialogId);\n\t\t\treturn dialog? dialog: this.$store.getters['dialogues/getBlank']();\n\t\t},\n\t\tcollectionMutationType()\n\t\t{\n\t\t\treturn this.$store.getters['messages/getMutationType'](this.chatId);\n\t\t},\n\t\tcollection()\n\t\t{\n\t\t\treturn this.$store.getters['messages/get'](this.chatId);\n\t\t},\n\t\telementsWithLimit()\n\t\t{\n\t\t\tlet unreadCount = this.collection.filter(element => element.unread).length;\n\t\t\tlet showLimit = this.messageExtraCount + this.messageLimit * 2;\n\t\t\tif (unreadCount > showLimit)\n\t\t\t{\n\t\t\t\tshowLimit = unreadCount;\n\t\t\t}\n\n\t\t\tlet start = this.collection.length - showLimit;\n\t\t\tif (!this.historyLoaderShow || start < 0)\n\t\t\t{\n\t\t\t\tstart = 0;\n\t\t\t}\n\n\t\t\tlet slicedCollection = start === 0? this.collection: this.collection.slice(start, this.collection.length);\n\t\t\tthis.messageShowCount = slicedCollection.length;\n\n\t\t\tthis.firstMessageId = null;\n\t\t\tthis.lastMessageId = 0;\n\t\t\tthis.maxMessageId = 0;\n\t\t\tthis.lastMessageAuthorId = 0;\n\n\t\t\tlet collection = [];\n\t\t\tlet lastAuthorId = 0;\n\t\t\tlet groupNode = {};\n\n\t\t\tthis.firstUnreadMessageId = 0;\n\t\t\tlet unreadCountInSlicedCollection = 0;\n\n\t\t\tif (this.messageShowCount > 0)\n\t\t\t{\n\t\t\t\tslicedCollection.forEach(element =>\n\t\t\t\t{\n\t\t\t\t\tif (this.firstMessageId === null || this.firstMessageId > element.id)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.firstMessageId = element.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (this.maxMessageId < element.id)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.maxMessageId = element.id;\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.lastMessageId = element.id;\n\n\t\t\t\t\tlet group = this._groupTitle(element.date);\n\t\t\t\t\tif (!groupNode[group.title])\n\t\t\t\t\t{\n\t\t\t\t\t\tgroupNode[group.title] = group.id;\n\t\t\t\t\t\tcollection.push(Blocks.getGroup(group.id, group.title));\n\t\t\t\t\t}\n\t\t\t\t\telse if (lastAuthorId !== element.authorId)\n\t\t\t\t\t{\n\t\t\t\t\t\tcollection.push(Blocks.getDelimiter(element.id));\n\t\t\t\t\t}\n\n\t\t\t\t\tcollection.push(element);\n\n\t\t\t\t\tlastAuthorId = element.authorId;\n\n\t\t\t\t\tif (element.unread)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!this.firstUnreadMessageId)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.firstUnreadMessageId = element.id;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tunreadCountInSlicedCollection++;\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tthis.lastMessageAuthorId = lastAuthorId;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.firstMessageId = 0;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.collection.length >= this.messageLimit\n\t\t\t\t&& this.collection.length >= this.messageShowCount\n\t\t\t\t&& this.historyLoaderBlocked === false\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.historyLoaderShow = true;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.historyLoaderShow = false;\n\t\t\t}\n\n\t\t\tif (this.dialog.unreadLastId > this.maxMessageId)\n\t\t\t{\n\t\t\t\tthis.unreadLoaderShow = true;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.unreadLoaderShow = false;\n\t\t\t}\n\n\t\t\treturn collection;\n\t\t},\n\t\tstatusWriting()\n\t\t{\n\t\t\tclearTimeout(this.scrollToTimeout);\n\n\t\t\tif (this.dialog.writingList.length === 0)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (!this.scrollChangedByUser && !this.showScrollButton)\n\t\t\t{\n\t\t\t\tthis.scrollToTimeout = setTimeout(() => this.scrollTo({duration: 500}), 300);\n\t\t\t}\n\n\t\t\treturn this.localize.IM_MESSENGER_DIALOG_WRITES_MESSAGE.replace(\n\t\t\t\t'#USER#', this.dialog.writingList.map(element => element.userName).join(', ')\n\t\t\t);\n\t\t},\n\t\tstatusReaded()\n\t\t{\n\t\t\tclearTimeout(this.scrollToTimeout);\n\n\t\t\tif (this.dialog.readedList.length === 0)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tlet text = '';\n\n\t\t\tif (this.dialog.type === DialogType.private)\n\t\t\t{\n\t\t\t\tlet record = this.dialog.readedList[0];\n\t\t\t\tif (\n\t\t\t\t\trecord.messageId === this.lastMessageId\n\t\t\t\t\t&& record.userId !== this.lastMessageAuthorId\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tlet dateFormat = MessengerUtils.date.getFormatType(\n\t\t\t\t\t\tBX.Messenger.Const.DateFormat.readedTitle,\n\t\t\t\t\t\tthis.$root.$bitrixMessages\n\t\t\t\t\t);\n\n\t\t\t\t\ttext = this.localize.IM_MESSENGER_DIALOG_MESSAGES_READED_USER.replace(\n\t\t\t\t\t\t'#DATE#', this._getDateFormat().format(dateFormat, record.date)\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tlet readedList = this.dialog.readedList.filter(record => record.messageId === this.lastMessageId && record.userId !== this.lastMessageAuthorId);\n\t\t\t\tif (readedList.length === 1)\n\t\t\t\t{\n\t\t\t\t\ttext = this.localize.IM_MESSENGER_DIALOG_MESSAGES_READED_CHAT.replace(\n\t\t\t\t\t\t'#USERS#', readedList[0].userName\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t\telse if (readedList.length > 1)\n\t\t\t\t{\n\t\t\t\t\ttext = this.localize.IM_MESSENGER_DIALOG_MESSAGES_READED_CHAT.replace(\n\t\t\t\t\t\t'#USERS#',\n\t\t\t\t\t\tthis.localize.IM_MESSENGER_DIALOG_MESSAGES_READED_CHAT_PLURAL\n\t\t\t\t\t\t\t\t.replace('#USER#', readedList[0].userName)\n\t\t\t\t\t\t\t\t.replace('#COUNT#', readedList.length-1)\n\t\t\t\t\t\t\t\t.replace('[LINK]', '')\n\t\t\t\t\t\t\t\t.replace('[/LINK]', '')\n\t\t\t\t\t);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (!text)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (!this.scrollChangedByUser && !this.showScrollButton)\n\t\t\t{\n\t\t\t\tthis.scrollToTimeout = setTimeout(() => this.scrollTo({duration: 500}), 300);\n\t\t\t}\n\n\t\t\treturn text;\n\t\t},\n\t\tunreadCounter()\n\t\t{\n\t\t\treturn this.dialog.counter > 999? 999: this.dialog.counter;\n\t\t},\n\t\tscrollBlocked()\n\t\t{\n\t\t\tif (this.application.device.type !== DeviceType.mobile)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn this.scrollAnimating || this.captureMove;\n\t\t},\n\t\tisDarkBackground()\n\t\t{\n\t\t\treturn this.application.options.darkBackground;\n\t\t},\n\t\tisMobile()\n\t\t{\n\t\t\treturn this.application.device.type === DeviceType.mobile;\n\t\t},\n\n\t\tAnimationType: () => AnimationType,\n\n\t\t...Vuex.mapState({\n\t\t\tapplication: state => state.application,\n\t\t})\n\t},\n\tmethods:\n\t{\n\t\tonDialogClick(event)\n\t\t{\n\t\t\tif (Vue.testNode(event.target, {className: 'bx-im-message-command'}))\n\t\t\t{\n\t\t\t\tthis.onCommandClick(event);\n\t\t\t}\n\t\t\telse if (Vue.testNode(event.target, {className: 'bx-im-mention'}))\n\t\t\t{\n\t\t\t\tthis.onMentionClick(event);\n\t\t\t}\n\n\t\t\tthis.windowFocused = true;\n\t\t\tthis.$emit('click', {event});\n\t\t},\n\t\tonDialogMove(event)\n\t\t{\n\t\t\tif (!this.captureMove)\n\t\t\t{\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.capturedMoveEvent = event;\n\t\t},\n\t\tonCommandClick(event)\n\t\t{\n\t\t\tlet value = '';\n\n\t\t\tif (\n\t\t\t\tevent.target.dataset.entity === 'send'\n\t\t\t\t|| event.target.dataset.entity === 'put'\n\t\t\t)\n\t\t\t{\n\t\t\t\tvalue = event.target.nextSibling.innerHTML;\n\t\t\t}\n\t\t\telse if (event.target.dataset.entity === 'call')\n\t\t\t{\n\t\t\t\tvalue = event.target.dataset.command;\n\t\t\t}\n\n\t\t\tthis.$emit('clickByCommand', {type: event.target.dataset.entity, value, event});\n\t\t},\n\t\tonMentionClick(event)\n\t\t{\n\t\t\tthis.$emit('clickByMention', {type: event.target.dataset.type, value: event.target.dataset.value, event});\n\t\t},\n\t\tonScroll(event)\n\t\t{\n\t\t\tclearTimeout(this.scrollToTimeout);\n\n\t\t\tthis.scrollPosition = event.target.scrollTop;\n\t\t\tthis.scrollPositionChangeTime = new Date().getTime();\n\n\t\t\tthis.scrollChangedByUser = !(event.target.scrollTop + this.scrollButtonDiff >= event.target.scrollHeight - event.target.clientHeight);\n\n\t\t\tclearTimeout(this.scrollButtonShowTimeout);\n\t\t\tthis.scrollButtonShowTimeout = setTimeout(() =>\n\t\t\t{\n\t\t\t\tif (this.scrollChangedByUser)\n\t\t\t\t{\n\t\t\t\t\tif (!this.showScrollButton)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.showScrollButton = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tif (this.showScrollButton && !this.unreadLoaderShow)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.showScrollButton = false;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}, 200);\n\n\t\t\tif (event.target.scrollTop === event.target.scrollHeight - event.target.offsetHeight)\n\t\t\t{\n\t\t\t\tclearTimeout(this.scrollButtonShowTimeout);\n\n\t\t\t\tif (this.showScrollButton && !this.unreadLoaderShow)\n\t\t\t\t{\n\t\t\t\t\tthis.showScrollButton = false;\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\n\t\tscrollToBottom(params = {})\n\t\t{\n\t\t\tlet {\n\t\t\t\tforce = false,\n\t\t\t\tcancelIfScrollChange = false,\n\t\t\t\tduration = null\n\t\t\t} = params;\n\n\t\t\tif (cancelIfScrollChange && this.scrollChangedByUser)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet body = this.$refs.body;\n\n\t\t\tif (this.dialog.counter > 0)\n\t\t\t{\n\t\t\t\tlet scrollToMessageId = this.dialog.counter > 1 && this.firstUnreadMessageId? this.firstUnreadMessageId: this.lastMessageId;\n\t\t\t\tUtils.scrollToFirstUnreadMessage(this, this.collection, scrollToMessageId);\n\n\t\t\t\tif (this.dialog.counter < this.startMessageLimit)\n\t\t\t\t{\n\t\t\t\t\tthis.historyLoaderShow = true;\n\t\t\t\t\tthis.historyLoaderBlocked = false;\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tthis.showScrollButton = false;\n\n\t\t\tif (force)\n\t\t\t{\n\t\t\t\tUtils.scrollToPosition(this, body.scrollHeight - body.clientHeight);\n\n\t\t\t\tif (this.messageExtraCount)\n\t\t\t\t{\n\t\t\t\t\tthis.$store.commit('application/clearDialogExtraCount');\n\t\t\t\t}\n\t\t\t\tthis.historyLoaderShow = true;\n\t\t\t\tthis.historyLoaderBlocked = false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tlet scrollParams = {};\n\t\t\t\tif (duration)\n\t\t\t\t{\n\t\t\t\t\tscrollParams.duration = duration;\n\t\t\t\t}\n\t\t\t\tthis.scrollTo({\n\t\t\t\t\tcallback: () => {\n\t\t\t\t\t\tif (this.messageExtraCount)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.$store.commit('application/clearDialogExtraCount');\n\t\t\t\t\t\t}\n\t\t\t\t\t\tthis.historyLoaderShow = true;\n\t\t\t\t\t\tthis.historyLoaderBlocked = false;\n\t\t\t\t\t},\n\t\t\t\t\t...scrollParams\n\t\t\t\t});\n\t\t\t}\n\t\t},\n\n\t\tscrollTo(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\tlet body = this.$refs.body;\n\t\t\tif (!body)\n\t\t\t{\n\t\t\t\tif (params.callback && typeof params.callback === 'function')\n\t\t\t\t{\n\t\t\t\t\tparams.callback();\n\t\t\t\t}\n\t\t\t\tthis.animateScrollId = null;\n\t\t\t\tthis.scrollAnimating = false;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tMessengerUtils.platform.isIos() && (\n\t\t\t\t\tMessengerUtils.platform.getIosVersion() > 12\n\t\t\t\t\t&& MessengerUtils.platform.getIosVersion() < 13.2\n\t\t\t\t)\n\t\t\t)\n\t\t\t{\n\t\t\t\tbody.scrollTop = body.scrollHeight - body.clientHeight;\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tlet {\n\t\t\t\tstart = body.scrollTop,\n\t\t\t\tend = body.scrollHeight - body.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\tlet container = this.$refs.container;\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\tLogger.warn('Dialog.scrollTo: Scroll trajectory has been reduced');\n\t\t\t}\n\n\t\t\tthis.scrollAnimating = true;\n\t\t\tLogger.warn('Dialog.scrollTo: User scroll blocked while scrolling');\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: body,\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\tonScrollToBottom(event = {})\n\t\t{\n\t\t\tevent.force = event.force === true;\n\t\t\tevent.cancelIfScrollChange = event.cancelIfScrollChange === true;\n\n\t\t\tif (this.firstUnreadMessageId)\n\t\t\t{\n\t\t\t\tLogger.warn('Dialog.onScrollToBottom: canceled - unread messages');\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.scrollToBottom(event);\n\n\t\t\treturn true;\n\t\t},\n\t\tonOrientationChange(event = {})\n\t\t{\n\t\t\tclearTimeout(this.scrollToTimeout);\n\n\t\t\tif (this.application.device.type !== DeviceType.mobile)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tLogger.log('Orientation changed');\n\n\t\t\tif (!this.scrollChangedByUser)\n\t\t\t{\n\t\t\t\tthis.scrollToTimeout = setTimeout(() => this.scrollToBottom({force: true}), 300);\n\t\t\t}\n\t\t},\n\t\tonWindowFocus(event = {})\n\t\t{\n\t\t\tthis.windowFocused = true;\n\t\t\tthis.readMessage();\n\n\t\t\treturn true;\n\t\t},\n\t\tonWindowBlur(event = {})\n\t\t{\n\t\t\tthis.windowFocused = false;\n\t\t},\n\t\trequestHistory()\n\t\t{\n\t\t\tif (!this.requestHistoryBlockIntersect)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (this.waitLoadHistory || !this.windowFocused || this.animateScrollId)\n\t\t\t{\n\t\t\t\tthis.requestHistoryDelayed();\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.scrollPositionChangeTime + 100 > new Date().getTime()\n\t\t\t//\t|| this.$refs.body.scrollTop < 0\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.requestHistoryDelayed();\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tthis.waitLoadHistory = true;\n\n\t\t\tclearTimeout(this.waitLoadHistoryTimeout);\n\t\t\tthis.waitLoadHistoryTimeout = setTimeout(() => {\n\t\t\t\tthis.waitLoadHistory = false;\n\t\t\t}, 10000);\n\n\t\t\tlet length = this.collection.length;\n\t\t\tlet messageShowCount = this.messageShowCount;\n\t\t\tif (length > messageShowCount)\n\t\t\t{\n\t\t\t\tlet element = this.$refs.body.getElementsByClassName(DialogReferenceClassName.listItem)[0];\n\n\t\t\t\tthis.$store.commit('application/increaseDialogExtraCount', {count: this.startMessageLimit});\n\t\t\t\tUtils.scrollToElementAfterLoadHistory(this, element);\n\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tthis.$emit('requestHistory', {lastId: this.firstMessageId});\n\t\t},\n\t\trequestUnread()\n\t\t{\n\t\t\tif (!this.requestUnreadBlockIntersect)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (this.waitLoadUnread || !this.windowFocused || this.animateScrollId)\n\t\t\t{\n\t\t\t\tthis.requestUnreadDelayed();\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tthis.scrollPositionChangeTime + 10 > new Date().getTime()\n\t\t\t\t//|| this.$refs.body.scrollTop > this.$refs.body.scrollHeight - this.$refs.body.clientHeight\n\t\t\t)\n\t\t\t{\n\t\t\t\tthis.requestUnreadDelayed();\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tthis.waitLoadUnread = true;\n\t\t\tthis.skipUnreadScroll = true;\n\n\t\t\tthis.$emit('requestUnread', {lastId: this.lastMessageId});\n\t\t},\n\t\tonRequestHistoryAnswer(event = {})\n\t\t{\n\t\t\tif (event.error)\n\t\t\t{\n\t\t\t\tthis.historyLoaderBlocked = false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.historyLoaderBlocked = event.count < this.startMessageLimit;\n\t\t\t\tthis.$store.commit('application/increaseDialogExtraCount', {count: event.count});\n\t\t\t}\n\n\t\t\tif (this.historyLoaderBlocked)\n\t\t\t{\n\t\t\t\tthis.historyLoaderShow = false;\n\t\t\t}\n\n\t\t\tlet element = this.$refs.body.getElementsByClassName(DialogReferenceClassName.listItem)[0];\n\n\t\t\tif (event.count > 0)\n\t\t\t{\n\t\t\t\tif (element)\n\t\t\t\t{\n\t\t\t\t\tUtils.scrollToElementAfterLoadHistory(this, element);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (event.error)\n\t\t\t{\n\t\t\t\telement.scrollIntoView(true);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tUtils.scrollToPosition(this, 0);\n\t\t\t}\n\n\t\t\tclearTimeout(this.waitLoadHistoryTimeout);\n\t\t\tthis.waitLoadHistoryTimeout = setTimeout(() => {\n\t\t\t\tthis.waitLoadHistory = false;\n\t\t\t}, 1000);\n\n\t\t\treturn true;\n\t\t},\n\t\tonRequestUnreadAnswer(event = {})\n\t\t{\n\t\t\tif (event.error)\n\t\t\t{\n\t\t\t\tthis.historyLoaderBlocked = false;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (event.count < this.startMessageLimit)\n\t\t\t\t{\n\t\t\t\t\tthis.unreadLoaderShow = false;\n\t\t\t\t}\n\t\t\t\tthis.$store.commit('application/increaseDialogExtraCount', {count: event.count});\n\t\t\t}\n\n\t\t\tlet body = this.$refs.body;\n\t\t\tif (event.count > 0)\n\t\t\t{\n\t\t\t}\n\t\t\telse if (event.error)\n\t\t\t{\n\t\t\t\tlet element = this.$refs.body.getElementsByClassName(DialogReferenceClassName.listUnreadLoader)[0];\n\t\t\t\tif (element)\n\t\t\t\t{\n\t\t\t\t\tUtils.scrollToPosition(this, body.scrollTop - element.offsetHeight*2);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tUtils.scrollToPosition(this, body.scrollHeight - body.clientHeight);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tUtils.scrollToPosition(this, body.scrollHeight - body.clientHeight);\n\t\t\t}\n\n\t\t\tsetTimeout(() => this.waitLoadUnread = false, 1000);\n\n\t\t\treturn true;\n\t\t},\n\t\tonSendReadMessages(event = {})\n\t\t{\n\t\t\tthis.readMessageDelayed();\n\n\t\t\treturn true;\n\t\t},\n\t\treadMessage()\n\t\t{\n\t\t\tif (!this.windowFocused)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.readMessageQueue = this.readMessageQueue.filter(messageId =>\n\t\t\t{\n\t\t\t\tif (this.readMessageTarget[messageId])\n\t\t\t\t{\n\t\t\t\t\tif (this.observers[ObserverType.read])\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.observers[ObserverType.read].unobserve(this.readMessageTarget[messageId]);\n\t\t\t\t\t}\n\t\t\t\t\tdelete this.readMessageTarget[messageId];\n\t\t\t\t}\n\n\t\t\t\tthis.requestReadMessage(messageId);\n\t\t\t\treturn false;\n\t\t\t});\n\t\t},\n\t\trequestReadMessage(messageId)\n\t\t{\n\t\t\tthis.$emit('readMessage', {id: messageId});\n\t\t},\n\n\t\tonClickByUserName(event)\n\t\t{\n\t\t\tif (!this.windowFocused)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.$emit('clickByUserName', event)\n\t\t},\n\n\t\tonClickByUploadCancel(event)\n\t\t{\n\t\t\tif (!this.windowFocused)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.$emit('clickByUploadCancel', event)\n\t\t},\n\n\t\tonClickByKeyboardButton(event)\n\t\t{\n\t\t\tif (!this.windowFocused)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.$emit('clickByKeyboardButton', event)\n\t\t},\n\n\t\tonClickByChatTeaser(event)\n\t\t{\n\t\t\tthis.$emit('clickByChatTeaser', event)\n\t\t},\n\n\t\tonClickByMessageMenu(event)\n\t\t{\n\t\t\tif (!this.windowFocused)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.$emit('clickByMessageMenu', event)\n\t\t},\n\n\t\tonClickByMessageRetry(event)\n\t\t{\n\t\t\tif (!this.windowFocused)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.$emit('clickByMessageRetry', event)\n\t\t},\n\n\t\tonClickByReadedList(event)\n\t\t{\n\t\t\tconst readedList = this.dialog.readedList.filter(record => record.messageId === this.lastMessageId && record.userId !== this.lastMessageAuthorId);\n\t\t\tthis.$emit('clickByReadedList', {list: readedList, event})\n\t\t},\n\n\t\tonMessageReactionSet(event)\n\t\t{\n\t\t\tthis.$emit('setMessageReaction', event)\n\t\t},\n\n\t\tonMessageReactionListOpen(event)\n\t\t{\n\t\t\tthis.$emit('openMessageReactionList', event)\n\t\t},\n\n\t\tonDragMessage(event)\n\t\t{\n\t\t\tif (!this.windowFocused)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.captureMove = event.result;\n\n\t\t\tif (!event.result)\n\t\t\t{\n\t\t\t\tthis.capturedMoveEvent = null;\n\t\t\t}\n\t\t},\n\n\t\tonQuoteMessage(event)\n\t\t{\n\t\t\tif (!this.windowFocused)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\t\t\tthis.$emit('quoteMessage', event)\n\t\t},\n\n\t\t_getDateFormat()\n\t\t{\n\t\t\tif (this.dateFormatFunction)\n\t\t\t{\n\t\t\t\treturn this.dateFormatFunction;\n\t\t\t}\n\n\t\t\tthis.dateFormatFunction = Object.create(BX.Main.Date);\n\t\t\tif (this.$root.$bitrixMessages)\n\t\t\t{\n\t\t\t\tthis.dateFormatFunction._getMessage = (phrase) => this.$root.$bitrixMessages[phrase];\n\t\t\t}\n\n\t\t\treturn this.dateFormatFunction;\n\t\t},\n\t\t_groupTitle(date)\n\t\t{\n\t\t\tconst id = Utils.getDateFormat(date);\n\t\t\tif (this.cacheGroupTitle[id])\n\t\t\t{\n\t\t\t\treturn {\n\t\t\t\t\tid: id,\n\t\t\t\t\ttitle: this.cacheGroupTitle[id]\n\t\t\t\t};\n\t\t\t}\n\n\t\t\tlet dateFormat = MessengerUtils.date.getFormatType(\n\t\t\t\tBX.Messenger.Const.DateFormat.groupTitle,\n\t\t\t\tthis.$root.$bitrixMessages\n\t\t\t);\n\n\t\t\tthis.cacheGroupTitle[id] = this._getDateFormat().format(dateFormat, date);\n\n\t\t\treturn {\n\t\t\t\tid: id,\n\t\t\t\ttitle: this.cacheGroupTitle[id]\n\t\t\t};\n\t\t},\n\n\t\tanimationTrigger(type, start, element)\n\t\t{\n\t\t\tlet templateId = element.dataset.templateId;\n\t\t\tlet templateType = element.dataset.type;\n\t\t\tlet body = this.$refs.body;\n\n\t\t\tif (!body || !templateId)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (start)\n\t\t\t{\n\t\t\t\tif (!this.animationScrollHeightStart)\n\t\t\t\t{\n\t\t\t\t\tthis.animationScrollHeightStart = body.scrollHeight;\n\t\t\t\t\tthis.animationScrollHeightEnd = body.scrollHeight;\n\t\t\t\t\tthis.animationScrollTop = body.scrollTop;\n\t\t\t\t\tthis.animationScrollChange = 0;\n\n\t\t\t\t\tclearTimeout(this.scrollToTimeout);\n\t\t\t\t\tthis.scrollChangedByUser = !(body.scrollTop + this.scrollButtonDiff >= body.scrollHeight - body.clientHeight);\n\n\t\t\t\t\tif (this.scrollChangedByUser && !this.showScrollButton && this.unreadCounter > 1)\n\t\t\t\t\t{\n\t\t\t\t\t\tthis.showScrollButton = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tthis.animationScrollHeightEnd = body.scrollHeight;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!this.collectionMutationType.applied\n\t\t\t\t&& this.collectionMutationType.initialType !== MutationType.set\n\t\t\t)\n\t\t\t{\n\t\t\t\tif (start)\n\t\t\t\t{\n\t\t\t\t\tthis.animationCollection.push(templateId);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.animationCollection = this.animationCollection.filter(id => {\n\t\t\t\t\t\tdelete this.animationCollectionOffset[templateId];\n\t\t\t\t\t\treturn id !== templateId;\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\tthis.animationStart();\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\t!this.collectionMutationType.applied\n\t\t\t\t&& this.collectionMutationType.initialType === MutationType.set\n\t\t\t\t&& this.collectionMutationType.appliedType === MutationType.setBefore\n\t\t\t)\n\t\t\t{\n\t\t\t\tlet unreadId = Utils.getFirstUnreadMessage(this.collection);\n\t\t\t\tif (unreadId)\n\t\t\t\t{\n\t\t\t\t\tUtils.scrollToFirstUnreadMessage(this, this.collection, unreadId, true);\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tUtils.scrollToPosition(this, body.scrollHeight - body.clientHeight);\n\n\t\t\t\tif (start)\n\t\t\t\t{\n\t\t\t\t\tthis.animationCollection.push(templateId);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tthis.animationCollection = this.animationCollection.filter(id => {\n\t\t\t\t\t\tdelete this.animationCollectionOffset[templateId];\n\t\t\t\t\t\treturn id !== templateId;\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tthis.animationStart();\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (start)\n\t\t\t{\n\t\t\t\tif (type === AnimationType.leave)\n\t\t\t\t{\n\t\t\t\t\tthis.animationCollectionOffset[templateId] = element.offsetHeight;\n\t\t\t\t}\n\n\t\t\t\tif (this.animationType === AnimationType.none)\n\t\t\t\t{\n\t\t\t\t\tthis.animationType = type;\n\t\t\t\t}\n\t\t\t\telse if (this.animationType !== type)\n\t\t\t\t{\n\t\t\t\t\tthis.animationType = AnimationType.mixed;\n\t\t\t\t}\n\n\t\t\t\tthis.animationCollection.push(templateId);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (type === AnimationType.enter)\n\t\t\t\t{\n\t\t\t\t\tlet offset = element.offsetHeight;\n\n\t\t\t\t\tthis.animationScrollChange += offset;\n\t\t\t\t\tbody.scrollTop += offset;\n\t\t\t\t}\n\t\t\t\telse if (type === AnimationType.leave)\n\t\t\t\t{\n\t\t\t\t\tlet offset = this.animationCollectionOffset[templateId]? this.animationCollectionOffset[templateId]: 0;\n\t\t\t\t\tthis.animationScrollChange -= offset;\n\t\t\t\t\tbody.scrollTop -= offset;\n\n\t\t\t\t\tthis.animationScrollLastIsDelimeter = templateType !== TemplateType.message;\n\t\t\t\t}\n\n\t\t\t\tthis.animationCollection = this.animationCollection.filter(id => {\n\t\t\t\t\tdelete this.animationCollectionOffset[templateId];\n\t\t\t\t\treturn id !== templateId;\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tthis.animationStart();\n\t\t},\n\n\t\tanimationStart()\n\t\t{\n\t\t\tif (this.animationCollection.length > 0)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet body = this.$refs.body;\n\n\t\t\tif (this.animationType === AnimationType.leave)\n\t\t\t{\n\t\t\t\tlet newScrollPosition = 0;\n\n\t\t\t\t// fix for chrome dom rendering: while delete node, scroll change immediately\n\t\t\t\tif (body.scrollTop !== this.animationScrollTop + this.animationScrollChange)\n\t\t\t\t{\n\t\t\t\t\tnewScrollPosition = this.animationScrollTop + this.animationScrollChange\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tnewScrollPosition = body.scrollTop;\n\t\t\t\t}\n\n\t\t\t\t// fix position if last element the same type of new element\n\t\t\t\tif (!this.animationScrollLastIsDelimeter)\n\t\t\t\t{\n\t\t\t\t\tnewScrollPosition += this.templateMessageWithNameDifferent;\n\t\t\t\t}\n\n\t\t\t\tif (newScrollPosition !== body.scrollTop)\n\t\t\t\t{\n\t\t\t\t\tUtils.scrollToPosition(this, newScrollPosition);\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (this.animationType === AnimationType.mixed)\n\t\t\t{\n\t\t\t\tlet unreadId = Utils.getFirstUnreadMessage(this.collection);\n\t\t\t\tif (unreadId)\n\t\t\t\t{\n\t\t\t\t\tUtils.scrollToFirstUnreadMessage(this, this.collection, unreadId, true);\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tthis.animationType = AnimationType.none;\n\t\t\tthis.animationScrollHeightStart = 0;\n\t\t\tthis.animationScrollHeightEnd = 0;\n\t\t\tthis.animationScrollTop = 0;\n\t\t\tthis.animationScrollChange = 0;\n\n\t\t\tif (Utils.scrollByMutationType(this))\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (this.scrollChangedByUser)\n\t\t\t{\n\t\t\t\tLogger.warn('Dialog.animationStart: canceled: scroll changed by user');\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (this.unreadCounter > 0 && this.firstUnreadMessageId)\n\t\t\t{\n\t\t\t\tif (this.skipUnreadScroll)\n\t\t\t\t{\n\t\t\t\t\tthis.skipUnreadScroll = false;\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tUtils.scrollToFirstUnreadMessage(this, this.collection, this.firstUnreadMessageId);\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tthis.scrollTo(() =>\n\t\t\t{\n\t\t\t\tif (this.unreadCounter <= 0 && this.messageExtraCount)\n\t\t\t\t{\n\t\t\t\t\tthis.$store.commit('application/clearDialogExtraCount');\n\t\t\t\t}\n\t\t\t});\n\t\t},\n\t},\n\n\tdirectives:\n\t{\n\t\t'bx-im-directive-dialog-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] = Utils.getMessageLoaderObserver({\n\t\t\t\t\t\ttype: bindings.value,\n\t\t\t\t\t\tcontext: vnode.context\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\n\ttemplate: `\n\t\t<div class=\"bx-im-dialog\" @click=\"onDialogClick\" @touchmove=\"onDialogMove\" ref=\"container\">\t\n\t\t\t<div :class=\"[DialogReferenceClassName.listBody, {\n\t\t\t\t'bx-im-dialog-list-scroll-blocked': scrollBlocked, \n\t\t\t\t'bx-im-dialog-dark-background': isDarkBackground,\n\t\t\t\t'bx-im-dialog-mobile': isMobile,\n\t\t\t}]\" @scroll.passive=\"onScroll\" ref=\"body\">\n\t\t\t\t<template v-if=\"historyLoaderShow\">\n\t\t\t\t\t<div class=\"bx-im-dialog-load-more bx-im-dialog-load-more-history\" v-bx-im-directive-dialog-observer=\"ObserverType.history\">\n\t\t\t\t\t\t<span class=\"bx-im-dialog-load-more-text\">{{ localize.IM_MESSENGER_DIALOG_LOAD_MESSAGES }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<transition-group \n\t\t\t\t\ttag=\"div\" class=\"bx-im-dialog-list-box\" name=\"bx-im-dialog-message-animation\" \n\t\t\t\t\t@before-enter=\"animationTrigger(AnimationType.enter, true, $event)\" \n\t\t\t\t\t@after-enter=\"animationTrigger(AnimationType.enter, false, $event)\" \n\t\t\t\t\t@before-leave=\"animationTrigger(AnimationType.leave, true, $event)\" \n\t\t\t\t\t@after-leave=\"animationTrigger(AnimationType.leave, false, $event)\"\n\t\t\t\t>\n\t\t\t\t\t<template v-for=\"element in elementsWithLimit\">\n\t\t\t\t\t\t<template v-if=\"element.templateType == TemplateType.message\">\n\t\t\t\t\t\t\t<div :class=\"['bx-im-dialog-list-item', DialogReferenceClassName.listItem, DialogReferenceClassName.listItem+'-'+element.id]\" :data-message-id=\"element.id\" :data-template-id=\"element.templateId\" :data-type=\"element.templateType\" :key=\"element.templateId\" v-bx-im-directive-dialog-observer=\"element.unread? ObserverType.read: ObserverType.none\">\t\t\t\n\t\t\t\t\t\t\t\t<component :is=\"element.params.COMPONENT_ID\"\n\t\t\t\t\t\t\t\t\t:userId=\"userId\" \n\t\t\t\t\t\t\t\t\t:dialogId=\"dialogId\"\n\t\t\t\t\t\t\t\t\t:chatId=\"chatId\"\n\t\t\t\t\t\t\t\t\t:dialog=\"dialog\"\n\t\t\t\t\t\t\t\t\t:message=\"element\"\n\t\t\t\t\t\t\t\t\t:enableReactions=\"enableReactions\"\n\t\t\t\t\t\t\t\t\t:enableDateActions=\"enableDateActions\"\n\t\t\t\t\t\t\t\t\t:enableCreateContent=\"showMessageMenu\"\n\t\t\t\t\t\t\t\t\t:enableGestureQuote=\"enableGestureQuote\"\n\t\t\t\t\t\t\t\t\t:enableGestureQuoteFromRight=\"enableGestureQuoteFromRight\"\n\t\t\t\t\t\t\t\t\t:enableGestureMenu=\"enableGestureMenu\"\n\t\t\t\t\t\t\t\t\t:showName=\"showMessageUserName\"\n\t\t\t\t\t\t\t\t\t:showAvatar=\"showMessageAvatar\"\n\t\t\t\t\t\t\t\t\t:showMenu=\"showMessageMenu\"\n\t\t\t\t\t\t\t\t\t:capturedMoveEvent=\"capturedMoveEvent\"\n\t\t\t\t\t\t\t\t\t:referenceContentClassName=\"DialogReferenceClassName.listItem\"\n\t\t\t\t\t\t\t\t\t:referenceContentBodyClassName=\"DialogReferenceClassName.listItemBody\"\n\t\t\t\t\t\t\t\t\t:referenceContentNameClassName=\"DialogReferenceClassName.listItemName\"\n\t\t\t\t\t\t\t\t\t@clickByUserName=\"onClickByUserName\"\n\t\t\t\t\t\t\t\t\t@clickByUploadCancel=\"onClickByUploadCancel\"\n\t\t\t\t\t\t\t\t\t@clickByKeyboardButton=\"onClickByKeyboardButton\"\n\t\t\t\t\t\t\t\t\t@clickByChatTeaser=\"onClickByChatTeaser\"\n\t\t\t\t\t\t\t\t\t@clickByMessageMenu=\"onClickByMessageMenu\"\n\t\t\t\t\t\t\t\t\t@clickByMessageRetry=\"onClickByMessageRetry\"\n\t\t\t\t\t\t\t\t\t@setMessageReaction=\"onMessageReactionSet\"\n\t\t\t\t\t\t\t\t\t@openMessageReactionList=\"onMessageReactionListOpen\"\n\t\t\t\t\t\t\t\t\t@dragMessage=\"onDragMessage\"\n\t\t\t\t\t\t\t\t\t@quoteMessage=\"onQuoteMessage\"\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else-if=\"element.templateType == TemplateType.group\">\n\t\t\t\t\t\t\t<div class=\"bx-im-dialog-group\" :data-template-id=\"element.templateId\" :data-type=\"element.templateType\" :key=\"element.templateId\">\n\t\t\t\t\t\t\t\t<div class=\"bx-im-dialog-group-date\">{{ element.text }}</div>\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t\t<template v-else-if=\"element.templateType == TemplateType.delimiter\">\n\t\t\t\t\t\t\t<div class=\"bx-im-dialog-delimiter\" :data-template-id=\"element.templateId\" :data-type=\"element.templateType\" :key=\"element.templateId\"></div>\n\t\t\t\t\t\t</template>\n\t\t\t\t\t</template>\n\t\t\t\t</transition-group>\n\t\t\t\t<template v-if=\"unreadLoaderShow\">\n\t\t\t\t\t<div :class=\"['bx-im-dialog-load-more', 'bx-im-dialog-load-more-unread', DialogReferenceClassName.listUnreadLoader]\" v-bx-im-directive-dialog-observer=\"ObserverType.unread\">\n\t\t\t\t\t\t<span class=\"bx-im-dialog-load-more-text\">{{ localize.IM_MESSENGER_DIALOG_LOAD_MESSAGES }}</span>\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t<transition name=\"bx-im-dialog-status\">\n\t\t\t\t\t<template v-if=\"statusWriting\">\n\t\t\t\t\t\t<div class=\"bx-im-dialog-status\">\n\t\t\t\t\t\t\t<span class=\"bx-im-dialog-status-writing\"></span>\n\t\t\t\t\t\t\t{{ statusWriting }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t\t<template v-else-if=\"statusReaded\">\n\t\t\t\t\t\t<div class=\"bx-im-dialog-status\" @click=\"onClickByReadedList\">\n\t\t\t\t\t\t\t{{ statusReaded }}\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</template>\n\t\t\t\t</transition>\n\t\t\t</div>\n\t\t\t<transition name=\"bx-im-dialog-scroll-button\">\n\t\t\t\t<div v-show=\"showScrollButton || unreadLoaderShow && unreadCounter\" class=\"bx-im-dialog-scroll-button-box\" @click=\"scrollToBottom()\">\n\t\t\t\t\t<div class=\"bx-im-dialog-scroll-button\">\n\t\t\t\t\t\t<div v-show=\"unreadCounter\" class=\"bx-im-dialog-scroll-button-counter\">\n\t\t\t\t\t\t\t<div class=\"bx-im-dialog-scroll-button-counter-digit\">{{unreadCounter}}</div>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t<div class=\"bx-im-dialog-scroll-button-arrow\"></div>\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</transition>\n\t\t</div>\n\t`\n});\n\nconst Utils = {\n\tgetDateFormat(date)\n\t{\n\t\treturn date.toJSON().slice(0,10);\n\t},\n\n\tscrollToMessage(context, collection, messageId = 0, force = false, stickToTop = true)\n\t{\n\t\tlet body = context.$refs.body;\n\n\t\tlet element = body.getElementsByClassName(DialogReferenceClassName.listItem+'-'+messageId)[0];\n\n\t\tlet end = 0;\n\t\tif (!element)\n\t\t{\n\t\t\tif (stickToTop)\n\t\t\t{\n\t\t\t\tend = 10;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tend = body.scrollHeight - body.clientHeight;\n\t\t\t}\n\t\t}\n\t\telse if (stickToTop)\n\t\t{\n\t\t\tend = element.offsetTop - (context.templateMessageScrollOffset/2);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tend = element.offsetTop + element.offsetHeight - body.clientHeight + (context.templateMessageScrollOffset/2);\n\t\t}\n\n\t\tif (force)\n\t\t{\n\t\t\tthis.scrollToPosition(context, end);\n\t\t}\n\t\telse\n\t\t{\n\t\t\tcontext.scrollTo({end});\n\t\t}\n\n\t\treturn true;\n\t},\n\n\tgetFirstUnreadMessage(collection)\n\t{\n\t\tlet unreadId = null;\n\n\t\tfor (let index = collection.length-1; index >= 0; index--)\n\t\t{\n\t\t\tif (!collection[index].unread)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tunreadId = collection[index].id;\n\t\t}\n\n\t\treturn unreadId;\n\t},\n\n\tscrollToPosition(context, position)\n\t{\n\t\tlet body = context.$refs.body;\n\t\tif (!body)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (context.animateScrollId)\n\t\t{\n\t\t\tAnimation.cancel(context.animateScrollId);\n\t\t\tthis.scrollAnimating = false;\n\t\t\tcontext.animateScrollId = null;\n\t\t}\n\n\t\tbody.scrollTop = position;\n\t},\n\n\tscrollByMutationType(context)\n\t{\n\t\tif (\n\t\t\tcontext.collectionMutationType.applied\n\t\t\t|| context.collectionMutationType.initialType !== MutationType.set)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tcontext.$store.dispatch('messages/applyMutationType', {chatId: context.chatId});\n\n\t\tif (context.collectionMutationType.appliedType === MutationType.setBefore)\n\t\t{\n\t\t\tlet body = context.$refs.body;\n\t\t\tthis.scrollToPosition(context, body.scrollHeight - body.clientHeight);\n\n\t\t\treturn true;\n\t\t}\n\n\t\tif (context.collectionMutationType.scrollMessageId > 0)\n\t\t{\n\t\t\tlet unreadId = Utils.getFirstUnreadMessage(context.collection);\n\t\t\tlet toMessageId = context.collectionMutationType.scrollMessageId;\n\t\t\tlet force = !context.collectionMutationType.scrollStickToTop;\n\t\t\tlet stickToTop = context.collectionMutationType.scrollStickToTop;\n\n\t\t\tif (unreadId && toMessageId > unreadId)\n\t\t\t{\n\t\t\t\tstickToTop = true;\n\t\t\t\tforce = true;\n\t\t\t\ttoMessageId = unreadId;\n\t\t\t\tunreadId = null;\n\t\t\t}\n\n\t\t\tUtils.scrollToMessage(context, context.collection, toMessageId, force, stickToTop);\n\n\t\t\tif (unreadId)\n\t\t\t{\n\t\t\t\tUtils.scrollToMessage(context, context.collection, unreadId);\n\t\t\t\treturn true;\n\t\t\t}\n\t\t}\n\n\t\treturn false;\n\t},\n\n\tscrollToFirstUnreadMessage(context, collection, unreadId = null, force = false)\n\t{\n\t\tlet body = context.$refs.body;\n\n\t\tlet element = false;\n\t\tif (unreadId !== null)\n\t\t{\n\t\t\telement = body.getElementsByClassName(DialogReferenceClassName.listItem+'-'+unreadId)[0];\n\t\t}\n\t\tif (!element)\n\t\t{\n\t\t\tunreadId = this.getFirstUnreadMessage(collection);\n\t\t}\n\n\t\tthis.scrollToMessage(context, collection, unreadId, force);\n\t},\n\n\tscrollToElementAfterLoadHistory(context, element)\n\t{\n\t\tlet elementBody = element.getElementsByClassName(DialogReferenceClassName.listItemBody)[0];\n\t\tif (elementBody)\n\t\t{\n\t\t\telement = elementBody;\n\t\t}\n\n\t\tlet previousOffsetTop = element.getBoundingClientRect().top;\n\n\t\tcontext.$nextTick(() =>\n\t\t{\n\t\t\tclearTimeout(context.waitLoadHistoryTimeout);\n\t\t\tcontext.waitLoadHistoryTimeout = setTimeout(() => {\n\t\t\t\tcontext.waitLoadHistory = false;\n\t\t\t}, 1000);\n\n\t\t\tif (!element)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tthis.scrollToPosition(context, element.getBoundingClientRect().top - previousOffsetTop);\n\t\t});\n\t},\n\n\tscrollToElementAfterLoadUnread(context, firstMessageId = 0)\n\t{\n\t\tcontext.showScrollButton = true;\n\n\t\tif (firstMessageId)\n\t\t{\n\t\t\tthis.scrollToMessage(context, context.collection, firstMessageId, false, false);\n\t\t}\n\t},\n\n\tgetMessageLoaderObserver(config)\n\t{\n\t\tif (\n\t\t\ttypeof window.IntersectionObserver === 'undefined'\n\t\t\t|| config.value === ObserverType.none\n\t\t)\n\t\t{\n\t\t\treturn {\n\t\t\t\tobserve: () => {},\n\t\t\t\tunobserve: () => {}\n\t\t\t};\n\t\t}\n\n\t\tlet observerCallback, observerOptions;\n\n\t\tif (config.type === ObserverType.read)\n\t\t{\n\t\t\tobserverCallback = function (entries, observer)\n\t\t\t{\n\t\t\t\tentries.forEach(function(entry)\n\t\t\t\t{\n\t\t\t\t\tlet sendReadEvent = false;\n\t\t\t\t\tif (entry.isIntersecting)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (entry.intersectionRatio >= 1)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tsendReadEvent = true;\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.rootBounds.height < entry.boundingClientRect.height + 20\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}\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\tconfig.context.readMessageQueue.push(entry.target.dataset.messageId);\n\t\t\t\t\t\tconfig.context.readMessageTarget[entry.target.dataset.messageId] = 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\tconfig.context.readMessageQueue = config.context.readMessageQueue.filter(messageId => messageId !== entry.target.dataset.messageId);\n\t\t\t\t\t\tdelete config.context.readMessageTarget[entry.target.dataset.messageId];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (config.context.enableReadMessages)\n\t\t\t\t\t{\n\t\t\t\t\t\tconfig.context.readMessageDelayed();\n\t\t\t\t\t}\n\n\t\t\t\t});\n\t\t\t};\n\t\t\tobserverOptions = {\n\t\t\t\troot: config.context.$refs.body,\n\t\t\t\tthreshold: new Array(101).fill(0).map((zero, index) => index * 0.01)\n\t\t\t};\n\t\t}\n\t\telse\n\t\t{\n\t\t\tobserverCallback = function (entries, observer)\n\t\t\t{\n\t\t\t\tentries.forEach(function(entry)\n\t\t\t\t{\n\t\t\t\t\tif (entry.isIntersecting)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (config.type === ObserverType.unread)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfig.context.requestUnreadBlockIntersect = true;\n\t\t\t\t\t\t\tconfig.context.requestUnreadDelayed();\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\tconfig.context.requestHistoryBlockIntersect = true;\n\t\t\t\t\t\t\tconfig.context.requestHistoryDelayed();\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\tif (config.type === ObserverType.unread)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconfig.context.requestUnreadBlockIntersect = false;\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\tconfig.context.requestHistoryBlockIntersect = false;\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\tobserverOptions = {\n\t\t\t\troot: config.context.$refs.body,\n\t\t\t\tthreshold: [0, 0.01, 0.99, 1]\n\t\t\t};\n\t\t}\n\n\t\treturn new IntersectionObserver(observerCallback, observerOptions);\n\t}\n};\n\nconst Blocks = {\n\tgetDelimiter(id = 0)\n\t{\n\t\treturn {\n\t\t\ttemplateId: 'delimiter'+id,\n\t\t\ttemplateType: TemplateType.delimiter\n\t\t};\n\t},\n\tgetGroup(id = 0, text = '')\n\t{\n\t\treturn {\n\t\t\ttemplateId: 'group'+id,\n\t\t\ttemplateType: TemplateType.group,\n\t\t\ttext: text\n\t\t};\n\t},\n\tgetHistoryLoader()\n\t{\n\t\treturn {\n\t\t\ttemplateId: 'historyLoader',\n\t\t\ttemplateType: TemplateType.historyLoader,\n\t\t};\n\t},\n\tgetUnreadLoader()\n\t{\n\t\treturn {\n\t\t\ttemplateId: 'unreadLoader',\n\t\t\ttemplateType: TemplateType.unreadLoader,\n\t\t};\n\t},\n\tgetLoadButton(id = 0, text = '', type = LoadButtonTypes.before)\n\t{\n\t\treturn {\n\t\t\ttemplateId: 'loadButton'+id+type,\n\t\t\ttemplateType: TemplateType.button,\n\t\t\ttext: text,\n\t\t\ttype: type,\n\t\t\tmessageId: id\n\t\t};\n\t}\n};\n"],"names":["TemplateType","Object","freeze","message","delimiter","group","historyLoader","unreadLoader","button","ObserverType","history","unread","read","none","LoadButtonTypes","before","after","AnimationType","mixed","enter","leave","Vue","component","props","userId","default","dialogId","chatId","messageLimit","messageExtraCount","listenEventScrollToBottom","listenEventRequestHistory","listenEventRequestUnread","listenEventSendReadMessages","enableReadMessages","enableReactions","enableDateActions","enableCreateContent","enableGestureQuote","enableGestureQuoteFromRight","enableGestureMenu","showMessageUserName","showMessageAvatar","showMessageMenu","data","scrollAnimating","showScrollButton","messageShowCount","unreadLoaderShow","historyLoaderBlocked","historyLoaderShow","startMessageLimit","templateMessageScrollOffset","templateMessageWithNameDifferent","DialogReferenceClassName","captureMove","capturedMoveEvent","lastMessageId","maxMessageId","created","unreadCounter","scrollChangedByUser","scrollButtonDiff","scrollButtonShowTimeout","scrollPosition","scrollPositionChangeTime","Date","getTime","animationScrollHeightStart","animationScrollHeightEnd","animationScrollTop","animationScrollChange","animationScrollLastUserId","animationType","animationCollection","animationCollectionOffset","animationLastElementBeforeStart","observers","requestHistoryInterval","requestUnreadInterval","lastAuthorId","firstMessageId","firstUnreadMessageId","dateFormatFunction","cacheGroupTitle","waitLoadHistory","waitLoadUnread","skipUnreadScroll","readMessageQueue","readMessageTarget","readMessageDelayed","MessengerUtils","debounce","readMessage","requestHistoryBlockIntersect","requestHistoryDelayed","requestHistory","requestUnreadBlockIntersect","requestUnreadDelayed","requestUnread","event","$on","onScrollToBottom","$root","onRequestHistoryAnswer","onRequestUnreadAnswer","onSendReadMessages","window","addEventListener","onOrientationChange","onWindowFocus","onWindowBlur","beforeDestroy","clearTimeout","clearInterval","$off","removeEventListener","mounted","unreadId","Utils","getFirstUnreadMessage","collection","scrollToFirstUnreadMessage","body","$refs","scrollToPosition","scrollHeight","clientHeight","windowFocused","platform","isBitrixMobile","document","hasFocus","computed","localize","getFilteredPhrases","$bitrixMessages","dialog","$store","getters","collectionMutationType","elementsWithLimit","unreadCount","filter","element","length","showLimit","start","slicedCollection","slice","lastMessageAuthorId","groupNode","forEach","id","_groupTitle","date","title","push","Blocks","getGroup","authorId","getDelimiter","unreadLastId","statusWriting","scrollToTimeout","writingList","setTimeout","scrollTo","duration","IM_MESSENGER_DIALOG_WRITES_MESSAGE","replace","map","userName","join","statusReaded","readedList","text","type","DialogType","private","record","messageId","dateFormat","getFormatType","BX","Messenger","Const","DateFormat","readedTitle","IM_MESSENGER_DIALOG_MESSAGES_READED_USER","_getDateFormat","format","IM_MESSENGER_DIALOG_MESSAGES_READED_CHAT","IM_MESSENGER_DIALOG_MESSAGES_READED_CHAT_PLURAL","counter","scrollBlocked","application","device","DeviceType","mobile","isDarkBackground","options","darkBackground","isMobile","Vuex","mapState","state","methods","onDialogClick","testNode","target","className","onCommandClick","onMentionClick","$emit","onDialogMove","value","dataset","entity","nextSibling","innerHTML","command","onScroll","scrollTop","offsetHeight","scrollToBottom","params","force","cancelIfScrollChange","scrollToMessageId","commit","scrollParams","callback","animateScrollId","Animation","cancel","isIos","getIosVersion","end","increment","container","Logger","warn","elementProperty","log","waitLoadHistoryTimeout","getElementsByClassName","listItem","count","scrollToElementAfterLoadHistory","lastId","error","scrollIntoView","listUnreadLoader","unobserve","requestReadMessage","onClickByUserName","onClickByUploadCancel","onClickByKeyboardButton","onClickByChatTeaser","onClickByMessageMenu","onClickByMessageRetry","onClickByReadedList","list","onMessageReactionSet","onMessageReactionListOpen","onDragMessage","result","onQuoteMessage","create","Main","_getMessage","phrase","getDateFormat","groupTitle","animationTrigger","templateId","templateType","applied","initialType","MutationType","set","animationStart","appliedType","setBefore","offset","animationScrollLastIsDelimeter","newScrollPosition","scrollByMutationType","directives","inserted","bindings","vnode","context","getMessageLoaderObserver","observe","unbind","template","toJSON","scrollToMessage","stickToTop","offsetTop","index","position","dispatch","scrollMessageId","toMessageId","scrollStickToTop","elementBody","listItemBody","previousOffsetTop","getBoundingClientRect","top","$nextTick","scrollToElementAfterLoadUnread","config","IntersectionObserver","observerCallback","observerOptions","entries","observer","entry","sendReadEvent","isIntersecting","intersectionRatio","rootBounds","height","boundingClientRect","intersectionRect","root","threshold","Array","fill","zero","getHistoryLoader","getUnreadLoader","getLoadButton"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.25 |
proxy
|
phpinfo
|
Settings