Server IP : 80.87.202.40 / Your IP : 216.73.216.169 Web Server : Apache System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64 User : bitrix ( 600) PHP Version : 8.2.27 Disable Function : NONE MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /home/bitrix/ext_www/cvetdv.ru/bitrix/js/im/model/dist/ |
Upload File : |
{"version":3,"file":"registry.bundle.js","sources":["../src/application.js","../src/conference.js","../src/messages.js","../src/dialogues.js","../src/users.js","../src/files.js","../src/recent.js","../src/notifications.js","../src/call.js"],"sourcesContent":["/**\n * Bitrix Messenger\n * Application model (Vuex Builder model)\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2020 Bitrix\n */\n\nimport {DeviceType, DeviceOrientation} from 'im.const';\nimport {VuexBuilderModel} from 'ui.vue.vuex';\n\nexport class ApplicationModel extends VuexBuilderModel\n{\n\tgetName()\n\t{\n\t\treturn 'application';\n\t}\n\n\tgetState()\n\t{\n\t\treturn {\n\t\t\tcommon:\n\t\t\t{\n\t\t\t\thost: this.getVariable('common.host', location.protocol+'//'+location.host),\n\t\t\t\tsiteId: this.getVariable('common.siteId', 'default'),\n\t\t\t\tuserId: this.getVariable('common.userId', 0),\n\t\t\t\tlanguageId: this.getVariable('common.languageId', 'en'),\n\t\t\t},\n\t\t\tdialog:\n\t\t\t{\n\t\t\t\tdialogId: this.getVariable('dialog.dialogId', '0'),\n\t\t\t\tchatId: this.getVariable('dialog.chatId', 0),\n\t\t\t\tdiskFolderId: this.getVariable('dialog.diskFolderId', 0),\n\t\t\t\tmessageLimit: this.getVariable('dialog.messageLimit', 20),\n\t\t\t\tenableReadMessages: this.getVariable('dialog.enableReadMessages', true),\n\t\t\t\tmessageExtraCount: 0,\n\t\t\t},\n\t\t\tdisk:\n\t\t\t{\n\t\t\t\tenabled: false,\n\t\t\t\tmaxFileSize: 5242880,\n\t\t\t},\n\t\t\tcall:\n\t\t\t{\n\t\t\t\tserverEnabled: false,\n\t\t\t\tmaxParticipants: 24,\n\t\t\t},\n\t\t\tmobile:\n\t\t\t{\n\t\t\t\tkeyboardShow: false,\n\t\t\t},\n\t\t\tdevice:\n\t\t\t{\n\t\t\t\ttype: this.getVariable('device.type', DeviceType.desktop),\n\t\t\t\torientation: this.getVariable('device.orientation', DeviceOrientation.portrait),\n\t\t\t},\n\t\t\toptions:\n\t\t\t{\n\t\t\t\tquoteEnable: this.getVariable('options.quoteEnable', true),\n\t\t\t\tquoteFromRight: this.getVariable('options.quoteFromRight', true),\n\t\t\t\tautoplayVideo: this.getVariable('options.autoplayVideo', true),\n\t\t\t\tdarkBackground: this.getVariable('options.darkBackground', false),\n\t\t\t\tshowSmiles: false\n\t\t\t},\n\t\t\terror:\n\t\t\t{\n\t\t\t\tactive: false,\n\t\t\t\tcode: '',\n\t\t\t\tdescription: '',\n\t\t\t},\n\t\t}\n\t}\n\n\tgetStateSaveException()\n\t{\n\t\treturn Object.assign({\n\t\t\tcommon: this.getVariable('saveException.common', null),\n\t\t\tdialog: this.getVariable('saveException.dialog', null),\n\t\t\tmobile: this.getVariable('saveException.mobile', null),\n\t\t\tdevice: this.getVariable('saveException.device', null),\n\t\t\terror: this.getVariable('saveException.error', null)\n\t\t});\n\t}\n\n\tgetActions()\n\t{\n\t\treturn {\n\t\t\tset: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('set', this.validate(payload));\n\t\t\t},\n\t\t\tshowSmiles: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('showSmiles')\n\t\t\t},\n\t\t\thideSmiles: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('hideSmiles');\n\t\t\t}\n\t\t}\n\t}\n\n\tgetMutations()\n\t{\n\t\treturn {\n\t\t\tset: (state, payload) =>\n\t\t\t{\n\t\t\t\tlet hasChange = false;\n\t\t\t\tfor (let group in payload)\n\t\t\t\t{\n\t\t\t\t\tif (!payload.hasOwnProperty(group))\n\t\t\t\t\t{\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tfor (let field in payload[group])\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!payload[group].hasOwnProperty(field))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tcontinue;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstate[group][field] = payload[group][field];\n\t\t\t\t\t\thasChange = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (hasChange && this.isSaveNeeded(payload))\n\t\t\t\t{\n\t\t\t\t\tthis.saveState(state);\n\t\t\t\t}\n\t\t\t},\n\t\t\tincreaseDialogExtraCount(state, payload = {})\n\t\t\t{\n\t\t\t\tlet {count = 1} = payload;\n\n\t\t\t\tstate.dialog.messageExtraCount += count;\n\t\t\t},\n\t\t\tdecreaseDialogExtraCount(state, payload = {})\n\t\t\t{\n\t\t\t\tlet {count = 1} = payload;\n\n\t\t\t\tlet newCounter = state.dialog.messageExtraCount - count;\n\t\t\t\tif (newCounter <= 0)\n\t\t\t\t{\n\t\t\t\t\tnewCounter = 0;\n\t\t\t\t}\n\n\t\t\t\tstate.dialog.messageExtraCount = newCounter;\n\t\t\t},\n\t\t\tclearDialogExtraCount(state)\n\t\t\t{\n\t\t\t\tstate.dialog.messageExtraCount = 0;\n\t\t\t},\n\t\t\tshowSmiles(state)\n\t\t\t{\n\t\t\t\tstate.options.showSmiles = true;\n\t\t\t},\n\t\t\thideSmiles(state)\n\t\t\t{\n\t\t\t\tstate.options.showSmiles = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tvalidate(fields)\n\t{\n\t\tconst result = {};\n\n\t\tif (typeof fields.common === 'object' && fields.common)\n\t\t{\n\t\t\tresult.common = {};\n\n\t\t\tif (typeof fields.common.userId === 'number')\n\t\t\t{\n\t\t\t\tresult.common.userId = fields.common.userId;\n\t\t\t}\n\n\t\t\tif (typeof fields.common.languageId === 'string')\n\t\t\t{\n\t\t\t\tresult.common.languageId = fields.common.languageId;\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.dialog === 'object' && fields.dialog)\n\t\t{\n\t\t\tresult.dialog = {};\n\n\t\t\tif (typeof fields.dialog.dialogId === 'number')\n\t\t\t{\n\t\t\t\tresult.dialog.dialogId = fields.dialog.dialogId.toString();\n\t\t\t\tresult.dialog.chatId = 0;\n\t\t\t}\n\t\t\telse if (typeof fields.dialog.dialogId === 'string')\n\t\t\t{\n\t\t\t\tresult.dialog.dialogId = fields.dialog.dialogId;\n\n\t\t\t\tif (typeof fields.dialog.chatId !== 'number')\n\t\t\t\t{\n\t\t\t\t\tlet chatId = fields.dialog.dialogId;\n\t\t\t\t\tif (chatId.startsWith('chat'))\n\t\t\t\t\t{\n\t\t\t\t\t\tchatId = fields.dialog.dialogId.substr(4);\n\t\t\t\t\t}\n\n\t\t\t\t\tchatId = parseInt(chatId);\n\n\t\t\t\t\tresult.dialog.chatId = !isNaN(chatId)? chatId: 0;\n\t\t\t\t\tfields.dialog.chatId = result.dialog.chatId;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (typeof fields.dialog.chatId === 'number')\n\t\t\t{\n\t\t\t\tresult.dialog.chatId = fields.dialog.chatId;\n\t\t\t}\n\n\t\t\tif (typeof fields.dialog.diskFolderId === 'number')\n\t\t\t{\n\t\t\t\tresult.dialog.diskFolderId = fields.dialog.diskFolderId;\n\t\t\t}\n\n\t\t\tif (typeof fields.dialog.messageLimit === 'number')\n\t\t\t{\n\t\t\t\tresult.dialog.messageLimit = fields.dialog.messageLimit;\n\t\t\t}\n\n\t\t\tif (typeof fields.dialog.messageExtraCount === 'number')\n\t\t\t{\n\t\t\t\tresult.dialog.messageExtraCount = fields.dialog.messageExtraCount;\n\t\t\t}\n\n\t\t\tif (typeof fields.dialog.enableReadMessages === 'boolean')\n\t\t\t{\n\t\t\t\tresult.dialog.enableReadMessages = fields.dialog.enableReadMessages;\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.disk === 'object' && fields.disk)\n\t\t{\n\t\t\tresult.disk = {};\n\n\t\t\tif (typeof fields.disk.enabled === 'boolean')\n\t\t\t{\n\t\t\t\tresult.disk.enabled = fields.disk.enabled;\n\t\t\t}\n\n\t\t\tif (typeof fields.disk.maxFileSize === 'number')\n\t\t\t{\n\t\t\t\tresult.disk.maxFileSize = fields.disk.maxFileSize;\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.call === 'object' && fields.call)\n\t\t{\n\t\t\tresult.call = {};\n\n\t\t\tif (typeof fields.call.serverEnabled === 'boolean')\n\t\t\t{\n\t\t\t\tresult.call.serverEnabled = fields.call.serverEnabled;\n\t\t\t}\n\n\t\t\tif (typeof fields.call.maxParticipants === 'number')\n\t\t\t{\n\t\t\t\tresult.call.maxParticipants = fields.call.maxParticipants;\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.mobile === 'object' && fields.mobile)\n\t\t{\n\t\t\tresult.mobile = {};\n\n\t\t\tif (typeof fields.mobile.keyboardShow === 'boolean')\n\t\t\t{\n\t\t\t\tresult.mobile.keyboardShow = fields.mobile.keyboardShow;\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.device === 'object' && fields.device)\n\t\t{\n\t\t\tresult.device = {};\n\n\t\t\tif (typeof fields.device.type === 'string' && typeof DeviceType[fields.device.type] !== 'undefined')\n\t\t\t{\n\t\t\t\tresult.device.type = fields.device.type;\n\t\t\t}\n\n\t\t\tif (typeof fields.device.orientation === 'string' && typeof DeviceOrientation[fields.device.orientation] !== 'undefined')\n\t\t\t{\n\t\t\t\tresult.device.orientation = fields.device.orientation;\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.error === 'object' && fields.error)\n\t\t{\n\t\t\tif (typeof fields.error.active === 'boolean')\n\t\t\t{\n\t\t\t\tresult.error = {\n\t\t\t\t\tactive: fields.error.active,\n\t\t\t\t\tcode: fields.error.code.toString() || '',\n\t\t\t\t\tdescription: fields.error.description.toString() || '',\n\t\t\t\t};\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n}","/**\n * Bitrix Messenger\n * Call Application model (Vuex Builder model)\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2020 Bitrix\n */\n\nimport {VuexBuilderModel} from 'ui.vue.vuex';\nimport {ConferenceStateType, ConferenceRightPanelMode as RightPanelMode} from 'im.const';\n\nexport class ConferenceModel extends VuexBuilderModel\n{\n\tgetName()\n\t{\n\t\treturn 'conference';\n\t}\n\n\tgetState()\n\t{\n\t\treturn {\n\t\t\tcommon:\n\t\t\t{\n\t\t\t\tinited: false,\n\t\t\t\tpassChecked: true,\n\t\t\t\tshowChat: false,\n\t\t\t\tuserCount: 0,\n\t\t\t\tmessageCount: 0,\n\t\t\t\tuserInCallCount: 0,\n\t\t\t\tstate: ConferenceStateType.preparation,\n\t\t\t\tcallEnded: false,\n\t\t\t\tshowSmiles: false,\n\t\t\t\terror: '',\n\t\t\t\tconferenceTitle: '',\n\t\t\t\talias: '',\n\t\t\t\tpermissionsRequested: false,\n\t\t\t\tconferenceStarted: null,\n\t\t\t\tconferenceStartDate: null,\n\t\t\t\tjoinWithVideo: null,\n\t\t\t\tuserReadyToJoin: false,\n\t\t\t\tisBroadcast: false,\n\t\t\t\tusers: [],\n\t\t\t\tusersInCall: [],\n\t\t\t\tpresenters: [],\n\t\t\t\trightPanelMode: RightPanelMode.hidden,\n\t\t\t\thasErrorInCall: false,\n\t\t\t},\n\t\t\tuser:\n\t\t\t{\n\t\t\t\tid: -1,\n\t\t\t\thash: ''\n\t\t\t},\n\t\t}\n\t}\n\n\tgetActions()\n\t{\n\t\treturn {\n\t\t\tshowChat: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (typeof payload.newState !== 'boolean')\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tstore.commit('showChat', payload);\n\t\t\t},\n\t\t\tchangeRightPanelMode: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (!RightPanelMode[payload.mode])\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tstore.commit('changeRightPanelMode', payload);\n\t\t\t},\n\t\t\tsetPermissionsRequested: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (typeof payload.status !== 'boolean')\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t\tstore.commit('setPermissionsRequested', payload);\n\t\t\t},\n\t\t\tsetPresenters: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (!Array.isArray(payload.presenters))\n\t\t\t\t{\n\t\t\t\t\tpayload.presenters = [payload.presenters];\n\t\t\t\t}\n\n\t\t\t\tstore.commit('setPresenters', payload);\n\t\t\t},\n\t\t\tsetUsers: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (!Array.isArray(payload.users))\n\t\t\t\t{\n\t\t\t\t\tpayload.users = [payload.users];\n\t\t\t\t}\n\n\t\t\t\tstore.commit('setUsers', payload);\n\t\t\t},\n\t\t\tremoveUsers: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (!Array.isArray(payload.users))\n\t\t\t\t{\n\t\t\t\t\tpayload.users = [payload.users];\n\t\t\t\t}\n\n\t\t\t\tstore.commit('removeUsers', payload);\n\t\t\t},\n\t\t\tsetUsersInCall: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (!Array.isArray(payload.users))\n\t\t\t\t{\n\t\t\t\t\tpayload.users = [payload.users];\n\t\t\t\t}\n\n\t\t\t\tstore.commit('setUsersInCall', payload);\n\t\t\t},\n\t\t\tremoveUsersInCall: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (!Array.isArray(payload.users))\n\t\t\t\t{\n\t\t\t\t\tpayload.users = [payload.users];\n\t\t\t\t}\n\n\t\t\t\tstore.commit('removeUsersInCall', payload);\n\t\t\t},\n\t\t\tsetConferenceTitle: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (typeof payload.conferenceTitle !== 'string')\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tstore.commit('setConferenceTitle', payload);\n\t\t\t},\n\t\t\tsetBroadcastMode: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (typeof payload.broadcastMode !== 'boolean')\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tstore.commit('setBroadcastMode', payload);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetMutations()\n\t{\n\t\treturn {\n\t\t\tcommon: (state, payload) =>\n\t\t\t{\n\t\t\t\tif (typeof payload.inited === 'boolean')\n\t\t\t\t{\n\t\t\t\t\tstate.common.inited = payload.inited;\n\t\t\t\t}\n\t\t\t\tif (typeof payload.passChecked === 'boolean')\n\t\t\t\t{\n\t\t\t\t\tstate.common.passChecked = payload.passChecked;\n\t\t\t\t}\n\t\t\t\tif (typeof payload.userCount === 'number' || typeof payload.userCount === 'string')\n\t\t\t\t{\n\t\t\t\t\tstate.common.userCount = parseInt(payload.userCount);\n\t\t\t\t}\n\t\t\t\tif (typeof payload.messageCount === 'number' || typeof payload.messageCount === 'string')\n\t\t\t\t{\n\t\t\t\t\tstate.common.messageCount = parseInt(payload.messageCount);\n\t\t\t\t}\n\t\t\t\tif (typeof payload.userInCallCount === 'number' || typeof payload.userInCallCount === 'string')\n\t\t\t\t{\n\t\t\t\t\tstate.common.userInCallCount = parseInt(payload.userInCallCount);\n\t\t\t\t}\n\t\t\t\tif (typeof payload.componentError === 'string')\n\t\t\t\t{\n\t\t\t\t\tstate.common.componentError = payload.componentError;\n\t\t\t\t}\n\t\t\t\tif (typeof payload.isBroadcast === 'boolean')\n\t\t\t\t{\n\t\t\t\t\tstate.common.isBroadcast = payload.isBroadcast;\n\t\t\t\t}\n\t\t\t\tif (Array.isArray(payload.presenters))\n\t\t\t\t{\n\t\t\t\t\tstate.common.presenters = payload.presenters;\n\t\t\t\t}\n\t\t\t\tif (typeof payload.hasErrorInCall === 'boolean')\n\t\t\t\t{\n\t\t\t\t\tstate.common.hasErrorInCall = payload.hasErrorInCall;\n\t\t\t\t}\n\t\t\t},\n\t\t\tuser: (state, payload) =>\n\t\t\t{\n\t\t\t\tif (typeof payload.id === 'number')\n\t\t\t\t{\n\t\t\t\t\tstate.user.id = payload.id;\n\t\t\t\t}\n\t\t\t\tif (typeof payload.hash === 'string' && payload.hash !== state.user.hash)\n\t\t\t\t{\n\t\t\t\t\tstate.user.hash = payload.hash;\n\t\t\t\t}\n\t\t\t\tif (this.isSaveNeeded({user: payload}))\n\t\t\t\t{\n\t\t\t\t\tthis.saveState(state);\n\t\t\t\t}\n\t\t\t},\n\t\t\tshowChat: (state, {newState}) =>\n\t\t\t{\n\t\t\t\tstate.common.showChat = newState;\n\t\t\t},\n\t\t\tchangeRightPanelMode: (state, {mode}) =>\n\t\t\t{\n\t\t\t\tstate.common.rightPanelMode = mode;\n\t\t\t},\n\t\t\tsetPermissionsRequested: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.common.permissionsRequested = payload.status;\n\t\t\t},\n\t\t\tstartCall: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.common.state = ConferenceStateType.call;\n\t\t\t\tstate.common.callEnded = false;\n\t\t\t},\n\t\t\tendCall: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.common.state = ConferenceStateType.preparation;\n\t\t\t\tstate.common.callEnded = true;\n\t\t\t},\n\t\t\treturnToPreparation: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.common.state = ConferenceStateType.preparation;\n\t\t\t},\n\t\t\ttoggleSmiles: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.common.showSmiles = !state.common.showSmiles;\n\t\t\t},\n\t\t\tsetError: (state, payload) =>\n\t\t\t{\n\t\t\t\tif (typeof payload.errorCode === 'string')\n\t\t\t\t{\n\t\t\t\t\tstate.common.error = payload.errorCode;\n\t\t\t\t}\n\t\t\t},\n\t\t\tsetConferenceTitle: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.common.conferenceTitle = payload.conferenceTitle;\n\t\t\t},\n\t\t\tsetBroadcastMode: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.common.isBroadcast = payload.broadcastMode;\n\t\t\t},\n\t\t\tsetAlias: (state, payload) =>\n\t\t\t{\n\t\t\t\tif (typeof payload.alias === 'string')\n\t\t\t\t{\n\t\t\t\t\tstate.common.alias = payload.alias;\n\t\t\t\t}\n\t\t\t},\n\t\t\tsetJoinType: (state, payload) =>\n\t\t\t{\n\t\t\t\tif (typeof payload.joinWithVideo === 'boolean')\n\t\t\t\t{\n\t\t\t\t\tstate.common.joinWithVideo = payload.joinWithVideo;\n\t\t\t\t}\n\t\t\t},\n\t\t\tsetConferenceStatus: (state, payload) =>\n\t\t\t{\n\t\t\t\tif (typeof payload.conferenceStarted === 'boolean')\n\t\t\t\t{\n\t\t\t\t\tstate.common.conferenceStarted = payload.conferenceStarted;\n\t\t\t\t}\n\t\t\t},\n\t\t\tsetConferenceHasErrorInCall: (state, payload) =>\n\t\t\t{\n\t\t\t\tif (typeof payload.hasErrorInCall === 'boolean')\n\t\t\t\t{\n\t\t\t\t\tstate.common.hasErrorInCall = payload.hasErrorInCall;\n\t\t\t\t}\n\t\t\t},\n\t\t\tsetConferenceStartDate: (state, payload) =>\n\t\t\t{\n\t\t\t\tif (payload.conferenceStartDate instanceof Date)\n\t\t\t\t{\n\t\t\t\t\tstate.common.conferenceStartDate = payload.conferenceStartDate;\n\t\t\t\t}\n\t\t\t},\n\t\t\tsetUserReadyToJoin: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.common.userReadyToJoin = true;\n\t\t\t},\n\t\t\tsetPresenters: (state, payload) =>\n\t\t\t{\n\t\t\t\tif (payload.replace)\n\t\t\t\t{\n\t\t\t\t\tstate.common.presenters = payload.presenters;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tpayload.presenters.forEach(presenter => {\n\t\t\t\t\t\tpresenter = parseInt(presenter);\n\t\t\t\t\t\tif (!state.common.presenters.includes(presenter))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstate.common.presenters.push(presenter);\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\tsetUsers: (state, payload) =>\n\t\t\t{\n\t\t\t\tpayload.users.forEach(user => {\n\t\t\t\t\tuser = parseInt(user);\n\t\t\t\t\tif (!state.common.users.includes(user))\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.common.users.push(user);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\tremoveUsers: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.common.users = state.common.users.filter(user => {\n\t\t\t\t\treturn !payload.users.includes(parseInt(user));\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetUsersInCall: (state, payload) =>\n\t\t\t{\n\t\t\t\tpayload.users.forEach(user => {\n\t\t\t\t\tuser = parseInt(user);\n\t\t\t\t\tif (!state.common.usersInCall.includes(user))\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.common.usersInCall.push(user);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\t\t\tremoveUsersInCall: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.common.usersInCall = state.common.usersInCall.filter(user => {\n\t\t\t\t\treturn !payload.users.includes(parseInt(user));\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tgetStateSaveException()\n\t{\n\t\treturn {\n\t\t\tcommon: {\n\t\t\t\tinited: null,\n\t\t\t\tstate: null,\n\t\t\t\tshowSmiles: null,\n\t\t\t\tuserCount: null,\n\t\t\t\tmessageCount: null,\n\t\t\t\tuserInCallCount: null,\n\t\t\t\terror: null,\n\t\t\t\tconferenceTitle: null,\n\t\t\t\talias: null,\n\t\t\t\tconferenceStarted: null,\n\t\t\t\tconferenceStartDate: null,\n\t\t\t\tjoinWithVideo: null,\n\t\t\t\tuserReadyToJoin: null,\n\t\t\t\trightPanelMode: null,\n\t\t\t\tpresenters: null,\n\t\t\t\tusers: null,\n\t\t\t\thasErrorInCall: null,\n\t\t\t},\n\t\t}\n\t}\n}","/**\n * Bitrix Messenger\n * Messages model (Vuex Builder model)\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2020 Bitrix\n */\n\n\nimport {Vue} from 'ui.vue';\nimport {VuexBuilderModel} from 'ui.vue.vuex';\nimport { MutationType, RecentSection as Section, StorageLimit, EventType } from 'im.const';\nimport {Utils} from \"im.lib.utils\";\nimport { Logger } from \"im.lib.logger\";\n\nimport {EventEmitter} from 'main.core.events';\n\nconst IntersectionType = {\n\tempty: 'empty',\n\tequal: 'equal',\n\tnone: 'none',\n\tfound: 'found',\n\tfoundReverse: 'foundReverse',\n};\n\nexport class MessagesModel extends VuexBuilderModel\n{\n\tgetName()\n\t{\n\t\treturn 'messages';\n\t}\n\n\tgetState()\n\t{\n\t\treturn {\n\t\t\tcreated: 0,\n\t\t\tcollection: {},\n\t\t\tmutationType: {},\n\t\t\tsaveMessageList: {},\n\t\t\tsaveFileList: {},\n\t\t\tsaveUserList: {},\n\t\t\thost: this.getVariable('host', location.protocol+'//'+location.host),\n\t\t}\n\t}\n\n\tgetElementState()\n\t{\n\t\treturn {\n\t\t\ttemplateId: 0,\n\t\t\ttemplateType: 'message',\n\t\t\tplaceholderType: 0,\n\n\t\t\tid: 0,\n\t\t\tchatId: 0,\n\t\t\tauthorId: 0,\n\t\t\tdate: new Date(),\n\t\t\ttext: \"\",\n\t\t\ttextConverted: \"\",\n\t\t\tparams: {\n\t\t\t\tTYPE : 'default',\n\t\t\t\tCOMPONENT_ID : 'bx-im-view-message',\n\t\t\t},\n\n\t\t\tpush: false,\n\t\t\tunread: false,\n\t\t\tsending: false,\n\t\t\terror: false,\n\t\t\tretry: false,\n\t\t\tblink: false,\n\t\t};\n\t}\n\n\tgetGetters()\n\t{\n\t\treturn {\n\n\t\t\tgetMutationType: state => chatId =>\n\t\t\t{\n\t\t\t\tif (!state.mutationType[chatId])\n\t\t\t\t{\n\t\t\t\t\treturn {initialType: MutationType.none, appliedType: MutationType.none};\n\t\t\t\t}\n\n\t\t\t\treturn state.mutationType[chatId];\n\t\t\t},\n\t\t\tgetLastId: state => chatId =>\n\t\t\t{\n\t\t\t\tif (!state.collection[chatId] || state.collection[chatId].length <= 0)\n\t\t\t\t{\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tlet lastId = 0;\n\n\t\t\t\tfor (let i = 0; i < state.collection[chatId].length; i++)\n\t\t\t\t{\n\t\t\t\t\tlet element = state.collection[chatId][i];\n\t\t\t\t\tif (\n\t\t\t\t\t\telement.push\n\t\t\t\t\t\t|| element.sending\n\t\t\t\t\t\t|| element.id.toString().startsWith('temporary')\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (lastId < element.id)\n\t\t\t\t\t{\n\t\t\t\t\t\tlastId = element.id;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn lastId? lastId: null;\n\t\t\t},\n\t\t\tgetMessage: state => (chatId, messageId) =>\n\t\t\t{\n\t\t\t\tif (!state.collection[chatId] || state.collection[chatId].length <= 0)\n\t\t\t\t{\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tfor (let index = state.collection[chatId].length-1; index >= 0; index--)\n\t\t\t\t{\n\t\t\t\t\tif (state.collection[chatId][index].id === messageId)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn state.collection[chatId][index];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tget: state => chatId =>\n\t\t\t{\n\t\t\t\tif (!state.collection[chatId] || state.collection[chatId].length <= 0)\n\t\t\t\t{\n\t\t\t\t\treturn [];\n\t\t\t\t}\n\n\t\t\t\treturn state.collection[chatId];\n\t\t\t},\n\t\t\tgetBlank: state => params =>\n\t\t\t{\n\t\t\t\treturn this.getElementState();\n\t\t\t},\n\t\t\tgetSaveFileList: state => params =>\n\t\t\t{\n\t\t\t\treturn state.saveFileList;\n\t\t\t},\n\t\t\tgetSaveUserList: state => params =>\n\t\t\t{\n\t\t\t\treturn state.saveUserList;\n\t\t\t},\n\t\t}\n\t}\n\n\tgetActions()\n\t{\n\t\treturn {\n\t\t\tadd: (store, payload) =>\n\t\t\t{\n\t\t\t\tlet result = this.validate(Object.assign({}, payload));\n\t\t\t\tresult.params = Object.assign({}, this.getElementState().params, result.params);\n\t\t\t\tif (payload.id)\n\t\t\t\t{\n\t\t\t\t\tif (store.state.collection[payload.chatId])\n\t\t\t\t\t{\n\t\t\t\t\t\tconst countMessages = store.state.collection[payload.chatId].length-1;\n\t\t\t\t\t\tfor (let index = countMessages; index >= 0; index--)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tconst message = store.state.collection[payload.chatId][index];\n\t\t\t\t\t\t\tif (message.templateId === payload.id)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\treturn;\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tresult.id = payload.id;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult.id = 'temporary' + (new Date).getTime() + store.state.created;\n\t\t\t\t}\n\t\t\t\tresult.templateId = result.id;\n\t\t\t\tresult.unread = false;\n\n\t\t\t\tstore.commit('add', Object.assign({}, this.getElementState(), result));\n\n\t\t\t\tif (payload.sending !== false)\n\t\t\t\t{\n\t\t\t\t\tstore.dispatch('actionStart', {\n\t\t\t\t\t\tid: result.id,\n\t\t\t\t\t\tchatId: result.chatId,\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn result.id;\n\t\t\t},\n\t\t\tactionStart: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (/^\\d+$/.test(payload.id))\n\t\t\t\t{\n\t\t\t\t\tpayload.id = parseInt(payload.id);\n\t\t\t\t}\n\n\t\t\t\tpayload.chatId = parseInt(payload.chatId);\n\n\t\t\t\tVue.nextTick(() => {\n\t\t\t\t\tstore.commit('update', {\n\t\t\t\t\t\tid : payload.id ,\n\t\t\t\t\t\tchatId : payload.chatId,\n\t\t\t\t\t\tfields : {sending: true}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\tactionError: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (/^\\d+$/.test(payload.id))\n\t\t\t\t{\n\t\t\t\t\tpayload.id = parseInt(payload.id);\n\t\t\t\t}\n\t\t\t\tpayload.chatId = parseInt(payload.chatId);\n\n\t\t\t\tVue.nextTick(() => {\n\t\t\t\t\tstore.commit('update', {\n\t\t\t\t\t\tid : payload.id ,\n\t\t\t\t\t\tchatId : payload.chatId,\n\t\t\t\t\t\tfields : {sending: false, error: true, retry: payload.retry !== false}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\tactionFinish: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (/^\\d+$/.test(payload.id))\n\t\t\t\t{\n\t\t\t\t\tpayload.id = parseInt(payload.id);\n\t\t\t\t}\n\t\t\t\tpayload.chatId = parseInt(payload.chatId);\n\n\t\t\t\tVue.nextTick(() => {\n\t\t\t\t\tstore.commit('update', {\n\t\t\t\t\t\tid : payload.id ,\n\t\t\t\t\t\tchatId : payload.chatId,\n\t\t\t\t\t\tfields : {sending: false, error: false, retry: false}\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\t\t\tset: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (payload instanceof Array)\n\t\t\t\t{\n\t\t\t\t\tpayload = payload.map(message => this.prepareMessage(message, {host: store.state.host}));\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tlet result = this.prepareMessage(payload, {host: store.state.host});\n\t\t\t\t\t(payload = []).push(result);\n\t\t\t\t}\n\n\t\t\t\tstore.commit('set', {\n\t\t\t\t\tinsertType : MutationType.set,\n\t\t\t\t\tdata : payload\n\t\t\t\t});\n\n\t\t\t\treturn 'set is done';\n\t\t\t},\n\t\t\taddPlaceholders: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (payload.placeholders instanceof Array)\n\t\t\t\t{\n\t\t\t\t\tpayload.placeholders = payload.placeholders.map(message => this.prepareMessage(message, { host: store.state.host }));\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tconst insertType = payload.requestMode === 'history'? MutationType.setBefore : MutationType.setAfter;\n\t\t\t\tif (insertType === MutationType.setBefore)\n\t\t\t\t{\n\t\t\t\t\tpayload.placeholders = payload.placeholders.reverse();\n\t\t\t\t}\n\n\t\t\t\tstore.commit('set', {\n\t\t\t\t\tinsertType,\n\t\t\t\t\tdata : payload.placeholders\n\t\t\t\t});\n\n\t\t\t\treturn payload.placeholders[0].id;\n\t\t\t},\n\t\t\tclearPlaceholders: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('clearPlaceholders', payload);\n\t\t\t},\n\t\t\tupdatePlaceholders: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (payload.data instanceof Array)\n\t\t\t\t{\n\t\t\t\t\tpayload.data = payload.data.map(message => this.prepareMessage(message, { host: store.state.host }));\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tstore.commit('updatePlaceholders', payload);\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tsetAfter: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (payload instanceof Array)\n\t\t\t\t{\n\t\t\t\t\tpayload = payload.map(message => this.prepareMessage(message));\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tlet result = this.prepareMessage(payload);\n\t\t\t\t\t(payload = []).push(result);\n\t\t\t\t}\n\n\t\t\t\tstore.commit('set', {\n\t\t\t\t\tinsertType : MutationType.setAfter,\n\t\t\t\t\tdata : payload\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetBefore: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (payload instanceof Array)\n\t\t\t\t{\n\t\t\t\t\tpayload = payload.map(message => this.prepareMessage(message));\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tlet result = this.prepareMessage(payload);\n\t\t\t\t\t(payload = []).push(result);\n\t\t\t\t}\n\n\t\t\t\tstore.commit('set', {\n\t\t\t\t\tinsertType : MutationType.setBefore,\n\t\t\t\t\tdata : payload\n\t\t\t\t});\n\t\t\t},\n\t\t\tupdate: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (/^\\d+$/.test(payload.id))\n\t\t\t\t{\n\t\t\t\t\tpayload.id = parseInt(payload.id);\n\t\t\t\t}\n\t\t\t\tif (/^\\d+$/.test(payload.chatId))\n\t\t\t\t{\n\t\t\t\t\tpayload.chatId = parseInt(payload.chatId);\n\t\t\t\t}\n\n\t\t\t\tstore.commit('initCollection', {chatId: payload.chatId});\n\n\t\t\t\tif (!store.state.collection[payload.chatId])\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tlet index = store.state.collection[payload.chatId].findIndex(el => el.id === payload.id);\n\t\t\t\tif (index < 0)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tlet result = this.validate(Object.assign({}, payload.fields));\n\n\t\t\t\tif (result.params)\n\t\t\t\t{\n\t\t\t\t\tresult.params = Object.assign(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tthis.getElementState().params,\n\t\t\t\t\t\tstore.state.collection[payload.chatId][index].params,\n\t\t\t\t\t\tresult.params\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tstore.commit('update', {\n\t\t\t\t\tid : payload.id,\n\t\t\t\t\tchatId : payload.chatId,\n\t\t\t\t\tindex : index,\n\t\t\t\t\tfields : result\n\t\t\t\t});\n\n\t\t\t\tif (payload.fields.blink)\n\t\t\t\t{\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tstore.commit('update', {\n\t\t\t\t\t\t\tid : payload.id ,\n\t\t\t\t\t\t\tchatId : payload.chatId,\n\t\t\t\t\t\t\tfields : {blink: false}\n\t\t\t\t\t\t});\n\t\t\t\t\t}, 1000);\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tdelete: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (!(payload.id instanceof Array))\n\t\t\t\t{\n\t\t\t\t\tpayload.id = [payload.id];\n\t\t\t\t}\n\n\t\t\t\tpayload.id = payload.id.map(id => {\n\t\t\t\t\tif (/^\\d+$/.test(id))\n\t\t\t\t\t{\n\t\t\t\t\t\tid = parseInt(id);\n\t\t\t\t\t}\n\t\t\t\t\treturn id;\n\t\t\t\t});\n\n\t\t\t\tstore.commit('delete', {\n\t\t\t\t\tchatId : payload.chatId,\n\t\t\t\t\telements : payload.id,\n\t\t\t\t});\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tclear: (store, payload) =>\n\t\t\t{\n\t\t\t\tpayload.chatId = parseInt(payload.chatId);\n\n\t\t\t\tif (payload.keepPlaceholders)\n\t\t\t\t{\n\t\t\t\t\tstore.commit('clearMessages', {\n\t\t\t\t\t\tchatId : payload.chatId\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\tstore.commit('clear', {\n\t\t\t\t\t\tchatId : payload.chatId\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tapplyMutationType: (store, payload) =>\n\t\t\t{\n\t\t\t\tpayload.chatId = parseInt(payload.chatId);\n\n\t\t\t\tstore.commit('applyMutationType', {\n\t\t\t\t\tchatId : payload.chatId\n\t\t\t\t});\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\treadMessages: (store, payload) =>\n\t\t\t{\n\t\t\t\tpayload.readId = parseInt(payload.readId) || 0;\n\t\t\t\tpayload.chatId = parseInt(payload.chatId);\n\n\t\t\t\tif (typeof store.state.collection[payload.chatId] === 'undefined')\n\t\t\t\t{\n\t\t\t\t\treturn {count: 0}\n\t\t\t\t}\n\n\t\t\t\tlet count = 0;\n\t\t\t\tfor (let index = store.state.collection[payload.chatId].length-1; index >= 0; index--)\n\t\t\t\t{\n\t\t\t\t\tlet element = store.state.collection[payload.chatId][index];\n\t\t\t\t\tif (!element.unread)\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tif (payload.readId === 0 || element.id <= payload.readId)\n\t\t\t\t\t{\n\t\t\t\t\t\tcount++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tstore.commit('readMessages', {\n\t\t\t\t\tchatId: payload.chatId,\n\t\t\t\t\treadId: payload.readId,\n\t\t\t\t});\n\n\t\t\t\treturn {count};\n\t\t\t},\n\t\t\tunreadMessages: (store, payload) =>\n\t\t\t{\n\t\t\t\tpayload.unreadId = parseInt(payload.unreadId) || 0;\n\t\t\t\tpayload.chatId = parseInt(payload.chatId);\n\n\t\t\t\tif (typeof store.state.collection[payload.chatId] === 'undefined' || !payload.unreadId)\n\t\t\t\t{\n\t\t\t\t\treturn {count: 0}\n\t\t\t\t}\n\n\t\t\t\tlet count = 0;\n\t\t\t\tfor (let index = store.state.collection[payload.chatId].length-1; index >= 0; index--)\n\t\t\t\t{\n\t\t\t\t\tlet element = store.state.collection[payload.chatId][index];\n\t\t\t\t\tif (element.unread)\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tif (element.id >= payload.unreadId)\n\t\t\t\t\t{\n\t\t\t\t\t\tcount++;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tstore.commit('unreadMessages', {\n\t\t\t\t\tchatId: payload.chatId,\n\t\t\t\t\tunreadId: payload.unreadId,\n\t\t\t\t});\n\n\t\t\t\treturn {count};\n\t\t\t},\n\t\t}\n\t}\n\n\tgetMutations()\n\t{\n\t\treturn {\n\t\t\tinitCollection: (state, payload) =>\n\t\t\t{\n\t\t\t\treturn this.initCollection(state, payload);\n\t\t\t},\n\t\t\tadd: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.initCollection(state, {chatId: payload.chatId});\n\n\t\t\t\tstate.collection[payload.chatId].push(payload);\n\t\t\t\tstate.saveMessageList[payload.chatId].push(payload.id);\n\n\t\t\t\tstate.created += 1;\n\n\t\t\t\tstate.collection[payload.chatId].sort((a, b) => a.id - b.id);\n\t\t\t\tthis.saveState(state, payload.chatId);\n\t\t\t\tLogger.warn('Messages model: saving state after add');\n\t\t\t},\n\t\t\tclearPlaceholders: (state, payload) =>\n\t\t\t{\n\t\t\t\tif (!state.collection[payload.chatId])\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tstate.collection[payload.chatId] = state.collection[payload.chatId].filter(element => {\n\t\t\t\t\treturn !element.id.toString().startsWith('placeholder');\n\t\t\t\t});\n\t\t\t},\n\t\t\tupdatePlaceholders: (state, payload) =>\n\t\t\t{\n\t\t\t\tconst firstPlaceholderId = `placeholder${payload.firstMessage}`;\n\t\t\t\tconst firstPlaceholderIndex = state.collection[payload.chatId].findIndex((message) => {\n\t\t\t\t\treturn message.id === firstPlaceholderId;\n\t\t\t\t});\n\t\t\t\t// Logger.warn('firstPlaceholderIndex', firstPlaceholderIndex);\n\t\t\t\tif (firstPlaceholderIndex >= 0)\n\t\t\t\t{\n\t\t\t\t\t// Logger.warn('before delete', state.collection[payload.chatId].length, [...state.collection[payload.chatId]]);\n\t\t\t\t\tstate.collection[payload.chatId].splice(firstPlaceholderIndex, payload.amount);\n\t\t\t\t\t// Logger.warn('after delete', state.collection[payload.chatId].length, [...state.collection[payload.chatId]]);\n\t\t\t\t\tstate.collection[payload.chatId].splice(firstPlaceholderIndex, 0, ...payload.data);\n\t\t\t\t\t// Logger.warn('after add', state.collection[payload.chatId].length, [...state.collection[payload.chatId]]);\n\t\t\t\t}\n\n\t\t\t\tstate.collection[payload.chatId].sort((a, b) => a.id - b.id);\n\t\t\t\tLogger.warn('Messages model: saving state after updating placeholders');\n\t\t\t\tthis.saveState(state, payload.chatId);\n\t\t\t},\n\t\t\tset: (state, payload) =>\n\t\t\t{\n\t\t\t\tLogger.warn('Messages model: set mutation', payload);\n\t\t\t\tlet chats = [];\n\t\t\t\tlet chatsSave = [];\n\t\t\t\tlet isPush = false;\n\n\t\t\t\tpayload.data = MessagesModel.getPayloadWithTempMessages(state, payload);\n\n\t\t\t\tconst initialType = payload.insertType;\n\n\t\t\t\tif (payload.insertType === MutationType.set)\n\t\t\t\t{\n\t\t\t\t\tpayload.insertType = MutationType.setAfter;\n\n\t\t\t\t\tlet elements = {};\n\t\t\t\t\tpayload.data.forEach(element => {\n\t\t\t\t\t\tif (!elements[element.chatId])\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\telements[element.chatId] = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\telements[element.chatId].push(element.id);\n\t\t\t\t\t});\n\n\t\t\t\t\tfor (let chatId in elements)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (!elements.hasOwnProperty(chatId))\n\t\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\t\tthis.initCollection(state, {chatId});\n\t\t\t\t\t\tLogger.warn('Messages model: messages before adding from request - ', state.collection[chatId].length);\n\n\t\t\t\t\t\tif (\n\t\t\t\t\t\t\tstate.saveMessageList[chatId].length > elements[chatId].length\n\t\t\t\t\t\t\t|| elements[chatId].length < StorageLimit.messages\n\t\t\t\t\t\t)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstate.collection[chatId] = state.collection[chatId].filter(element => elements[chatId].includes(element.id));\n\t\t\t\t\t\t\tstate.saveMessageList[chatId] = state.saveMessageList[chatId].filter(id => elements[chatId].includes(id));\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tLogger.warn('Messages model: cache length', state.saveMessageList[chatId].length);\n\t\t\t\t\t\tlet intersection = this.manageCacheBeforeSet(\n\t\t\t\t\t\t\t[...state.saveMessageList[chatId].reverse()],\n\t\t\t\t\t\t\telements[chatId]\n\t\t\t\t\t\t);\n\t\t\t\t\t\tLogger.warn('Messages model: set intersection with cache', intersection);\n\n\t\t\t\t\t\tif (intersection.type === IntersectionType.none)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tif (intersection.foundElements.length > 0)\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\tstate.collection[chatId] = state.collection[chatId].filter(element => !intersection.foundElements.includes(element.id));\n\t\t\t\t\t\t\t\tstate.saveMessageList[chatId] = state.saveMessageList[chatId].filter(id => !intersection.foundElements.includes(id));\n\t\t\t\t\t\t\t}\n\n\t\t\t\t\t\t\tLogger.warn('Messages model: no intersection - removing cache');\n\t\t\t\t\t\t\tthis.removeIntersectionCacheElements = state.collection[chatId].map(element => element.id);\n\n\t\t\t\t\t\t\tstate.collection[chatId] = state.collection[chatId].filter(element => !this.removeIntersectionCacheElements.includes(element.id));\n\t\t\t\t\t\t\tstate.saveMessageList[chatId] = state.saveMessageList[chatId].filter(id => !this.removeIntersectionCacheElements.includes(id));\n\t\t\t\t\t\t\tthis.removeIntersectionCacheElements = [];\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (intersection.type === IntersectionType.foundReverse)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLogger.warn('Messages model: found reverse intersection');\n\t\t\t\t\t\t\tpayload.insertType = MutationType.setBefore;\n\t\t\t\t\t\t\tpayload.data = payload.data.reverse();\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tLogger.warn('Messages model: adding messages to model', payload.data);\n\t\t\t\tfor (let element of payload.data)\n\t\t\t\t{\n\t\t\t\t\tthis.initCollection(state, {chatId: element.chatId});\n\n\t\t\t\t\tlet index = state.collection[element.chatId].findIndex(localMessage => {\n\t\t\t\t\t\tif (MessagesModel.isTemporaryMessage(localMessage))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\treturn localMessage.templateId === element.templateId;\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\treturn localMessage.id === element.id;\n\t\t\t\t\t});\n\t\t\t\t\tif (index > -1)\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.collection[element.chatId][index] = Object.assign(\n\t\t\t\t\t\t\tstate.collection[element.chatId][index],\n\t\t\t\t\t\t\telement\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t\telse if (payload.insertType === MutationType.setBefore)\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.collection[element.chatId].unshift(element);\n\t\t\t\t\t}\n\t\t\t\t\telse if (payload.insertType === MutationType.setAfter)\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.collection[element.chatId].push(element);\n\t\t\t\t\t}\n\n\t\t\t\t\tchats.push(element.chatId);\n\n\t\t\t\t\tif (this.store.getters['dialogues/canSaveChat'] && this.store.getters['dialogues/canSaveChat'](element.chatId))\n\t\t\t\t\t{\n\t\t\t\t\t\tchatsSave.push(element.chatId);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tchats = [...new Set(chats)];\n\t\t\t\tchatsSave = [...new Set(chatsSave)];\n\n\t\t\t\tisPush = payload.data.every(element => element.push === true);\n\t\t\t\tLogger.warn('Is it fake push message?', isPush);\n\t\t\t\tchats.forEach(chatId => {\n\t\t\t\t\tstate.collection[chatId].sort((a, b) => a.id - b.id);\n\n\t\t\t\t\tif (!isPush)\n\t\t\t\t\t{\n\t\t\t\t\t\t//send event that messages are ready and we can start reading etc\n\t\t\t\t\t\tLogger.warn('setting messagesSet = true for chatId = ', chatId);\n\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\tEventEmitter.emit(EventType.dialog.messagesSet, {chatId});\n\t\t\t\t\t\t\tEventEmitter.emit(EventType.dialog.readVisibleMessages, {chatId});\n\t\t\t\t\t\t}, 100);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (initialType !== MutationType.setBefore)\n\t\t\t\t{\n\t\t\t\t\tchatsSave.forEach(chatId => {\n\t\t\t\t\t\tLogger.warn('Messages model: saving state after set');\n\t\t\t\t\t\tthis.saveState(state, chatId);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tupdate: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.initCollection(state, {chatId: payload.chatId});\n\n\t\t\t\tlet index = -1;\n\t\t\t\tif (typeof payload.index !== 'undefined' && state.collection[payload.chatId][payload.index])\n\t\t\t\t{\n\t\t\t\t\tindex = payload.index;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tindex = state.collection[payload.chatId].findIndex(el => el.id === payload.id);\n\t\t\t\t}\n\n\t\t\t\tif (index >= 0)\n\t\t\t\t{\n\t\t\t\t\tlet isSaveState = (\n\t\t\t\t\t\tstate.saveMessageList[payload.chatId].includes(state.collection[payload.chatId][index].id)\n\t\t\t\t\t\t|| payload.fields.id && !payload.fields.id.toString().startsWith('temporary') && state.collection[payload.chatId][index].id.toString().startsWith('temporary')\n\t\t\t\t\t);\n\n\t\t\t\t\tstate.collection[payload.chatId][index] = Object.assign(\n\t\t\t\t\t\tstate.collection[payload.chatId][index],\n\t\t\t\t\t\tpayload.fields\n\t\t\t\t\t);\n\n\t\t\t\t\tif (isSaveState)\n\t\t\t\t\t{\n\t\t\t\t\t\tLogger.warn('Messages model: saving state after update');\n\t\t\t\t\t\tthis.saveState(state, payload.chatId);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelete: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.initCollection(state, {chatId: payload.chatId});\n\n\t\t\t\tstate.collection[payload.chatId] = state.collection[payload.chatId].filter(element => !payload.elements.includes(element.id));\n\n\t\t\t\tif (state.saveMessageList[payload.chatId].length > 0)\n\t\t\t\t{\n\t\t\t\t\tfor (let id of payload.elements)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (state.saveMessageList[payload.chatId].includes(id))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tLogger.warn('Messages model: saving state after delete');\n\t\t\t\t\t\t\tthis.saveState(state, payload.chatId);\n\n\t\t\t\t\t\t\tbreak;\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\tclear: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.initCollection(state, {chatId: payload.chatId});\n\n\t\t\t\tstate.collection[payload.chatId] = [];\n\t\t\t\tstate.saveMessageList[payload.chatId] = [];\n\t\t\t},\n\t\t\tclearMessages: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.initCollection(state, {chatId: payload.chatId});\n\n\t\t\t\tstate.collection[payload.chatId] = state.collection[payload.chatId].filter(element => {\n\t\t\t\t\treturn element.id.toString().startsWith('placeholder');\n\t\t\t\t});\n\t\t\t\tstate.saveMessageList[payload.chatId] = [];\n\t\t\t},\n\t\t\tapplyMutationType: (state, payload) =>\n\t\t\t{\n\t\t\t\tif (typeof state.mutationType[payload.chatId] === 'undefined')\n\t\t\t\t{\n\t\t\t\t\tVue.set(state.mutationType, payload.chatId, {applied: false, initialType: MutationType.none, appliedType: MutationType.none, scrollStickToTop: 0, scrollMessageId: 0});\n\t\t\t\t}\n\n\t\t\t\tstate.mutationType[payload.chatId].applied = true;\n\t\t\t},\n\t\t\treadMessages: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.initCollection(state, {chatId: payload.chatId});\n\n\t\t\t\tlet saveNeeded = false;\n\t\t\t\tfor (let index = state.collection[payload.chatId].length-1; index >= 0; index--)\n\t\t\t\t{\n\t\t\t\t\tlet element = state.collection[payload.chatId][index];\n\t\t\t\t\tif (!element.unread)\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tif (payload.readId === 0 || element.id <= payload.readId)\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.collection[payload.chatId][index] = Object.assign(\n\t\t\t\t\t\t\tstate.collection[payload.chatId][index],\n\t\t\t\t\t\t\t{unread: false}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsaveNeeded = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (saveNeeded)\n\t\t\t\t{\n\t\t\t\t\tLogger.warn('Messages model: saving state after reading');\n\t\t\t\t\tthis.saveState(state, payload.chatId);\n\t\t\t\t}\n\t\t\t},\n\t\t\tunreadMessages: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.initCollection(state, {chatId: payload.chatId});\n\n\t\t\t\tlet saveNeeded = false;\n\t\t\t\tfor (let index = state.collection[payload.chatId].length-1; index >= 0; index--)\n\t\t\t\t{\n\t\t\t\t\tlet element = state.collection[payload.chatId][index];\n\t\t\t\t\tif (element.unread)\n\t\t\t\t\t\tcontinue;\n\n\t\t\t\t\tif (element.id >= payload.unreadId)\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.collection[payload.chatId][index] = Object.assign(\n\t\t\t\t\t\t\tstate.collection[payload.chatId][index],\n\t\t\t\t\t\t\t{unread: true}\n\t\t\t\t\t\t);\n\t\t\t\t\t\tsaveNeeded = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\tif (saveNeeded)\n\t\t\t\t{\n\t\t\t\t\tLogger.warn('Messages model: saving state after unreading');\n\t\t\t\t\tthis.saveState(state, payload.chatId);\n\t\t\t\t\tthis.updateSubordinateStates();\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t}\n\n\tinitCollection(state, payload)\n\t{\n\t\tif (typeof payload.chatId === 'undefined')\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (\n\t\t\ttypeof payload.chatId === 'undefined'\n\t\t\t|| typeof state.collection[payload.chatId] !== 'undefined'\n\t\t)\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tVue.set(state.collection, payload.chatId, payload.messages? [].concat(payload.messages): []);\n\t\tVue.set(state.saveMessageList, payload.chatId, []);\n\t\tVue.set(state.saveFileList, payload.chatId, []);\n\t\tVue.set(state.saveUserList, payload.chatId, []);\n\n\t\treturn true;\n\t}\n\n\tprepareMessage(message, options = {})\n\t{\n\t\tlet result = this.validate(Object.assign({}, message), options);\n\n\t\tresult.params = Object.assign({}, this.getElementState().params, result.params);\n\t\tif (!result.templateId)\n\t\t{\n\t\t\tresult.templateId = result.id;\n\t\t}\n\n\t\treturn Object.assign({}, this.getElementState(), result);\n\t}\n\n\tmanageCacheBeforeSet(cache, elements, recursive = false)\n\t{\n\t\tLogger.warn('manageCacheBeforeSet', cache, elements);\n\t\tlet result = {\n\t\t\ttype: IntersectionType.empty,\n\t\t\tfoundElements: [],\n\t\t\tnoneElements: []\n\t\t};\n\n\t\tif (!cache || cache.length <= 0)\n\t\t{\n\t\t\treturn result;\n\t\t}\n\n\t\tfor (let id of elements)\n\t\t{\n\t\t\tif (cache.includes(id))\n\t\t\t{\n\t\t\t\tif (result.type === IntersectionType.empty)\n\t\t\t\t{\n\t\t\t\t\tresult.type = IntersectionType.found;\n\t\t\t\t}\n\t\t\t\tresult.foundElements.push(id);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tif (result.type === IntersectionType.empty)\n\t\t\t\t{\n\t\t\t\t\tresult.type = IntersectionType.none;\n\t\t\t\t}\n\t\t\t\tresult.noneElements.push(id);\n\t\t\t}\n\t\t}\n\n\t\tif (\n\t\t\tresult.type === IntersectionType.found\n\t\t\t&& cache.length === elements.length\n\t\t\t&& result.foundElements.length === elements.length\n\t\t)\n\t\t{\n\t\t\tresult.type = IntersectionType.equal;\n\t\t}\n\t\telse if (\n\t\t\tresult.type === IntersectionType.none\n\t\t\t&& !recursive\n\t\t\t&& result.foundElements.length > 0\n\t\t)\n\t\t{\n\t\t\tlet reverseResult = this.manageCacheBeforeSet(cache.reverse(), elements.reverse(), true);\n\t\t\tif (reverseResult.type === IntersectionType.found)\n\t\t\t{\n\t\t\t\treverseResult.type = IntersectionType.foundReverse;\n\t\t\t\treturn reverseResult;\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tupdateSaveLists(state, chatId)\n\t{\n\t\tif (!this.isSaveAvailable())\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tif (\n\t\t\t!chatId\n\t\t\t|| !this.store.getters['dialogues/canSaveChat']\n\t\t\t|| !this.store.getters['dialogues/canSaveChat'](chatId)\n\t\t)\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tthis.initCollection(state, {chatId: chatId});\n\n\t\tlet count = 0;\n\t\tlet saveMessageList = [];\n\t\tlet saveFileList = [];\n\t\tlet saveUserList = [];\n\n\t\tlet dialog = this.store.getters['dialogues/getByChatId'](chatId);\n\t\tif (dialog && dialog.type === 'private')\n\t\t{\n\t\t\tsaveUserList.push(parseInt(dialog.dialogId));\n\t\t}\n\n\t\tlet readCounter = 0;\n\t\tfor (let index = state.collection[chatId].length-1; index >= 0; index--)\n\t\t{\n\t\t\tif (state.collection[chatId][index].id.toString().startsWith('temporary'))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tif (!state.collection[chatId][index].unread)\n\t\t\t{\n\t\t\t\treadCounter++;\n\t\t\t}\n\n\t\t\tif (count >= StorageLimit.messages && readCounter >= 50)\n\t\t\t{\n\t\t\t\tbreak;\n\t\t\t}\n\n\t\t\tsaveMessageList.unshift(state.collection[chatId][index].id);\n\n\t\t\tcount++;\n\t\t}\n\n\t\tsaveMessageList = saveMessageList.slice(0, StorageLimit.messages);\n\n\t\tstate.collection[chatId].filter(element => saveMessageList.includes(element.id)).forEach(element =>\n\t\t{\n\t\t\tif (element.authorId > 0)\n\t\t\t{\n\t\t\t\tsaveUserList.push(element.authorId);\n\t\t\t}\n\n\t\t\tif (element.params.FILE_ID instanceof Array)\n\t\t\t{\n\t\t\t\tsaveFileList = element.params.FILE_ID.concat(saveFileList);\n\t\t\t}\n\t\t});\n\n\t\tstate.saveMessageList[chatId] = saveMessageList;\n\t\tstate.saveFileList[chatId] = [...new Set(saveFileList)];\n\t\tstate.saveUserList[chatId] = [...new Set(saveUserList)];\n\n\t\treturn true;\n\t}\n\n\tgetSaveTimeout()\n\t{\n\t\treturn 150;\n\t}\n\n\tsaveState(state, chatId)\n\t{\n\t\tif (!this.updateSaveLists(state, chatId))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tsuper.saveState(() =>\n\t\t{\n\t\t\tlet storedState = {\n\t\t\t\tcollection: {},\n\t\t\t\tsaveMessageList: {},\n\t\t\t\tsaveUserList: {},\n\t\t\t\tsaveFileList: {},\n\t\t\t};\n\n\t\t\tfor (let chatId in state.saveMessageList)\n\t\t\t{\n\t\t\t\tif (!state.saveMessageList.hasOwnProperty(chatId))\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (!state.collection[chatId])\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (!storedState.collection[chatId])\n\t\t\t\t{\n\t\t\t\t\tstoredState.collection[chatId] = [];\n\t\t\t\t}\n\n\t\t\t\tstate.collection[chatId]\n\t\t\t\t\t.filter(element => state.saveMessageList[chatId].includes(element.id))\n\t\t\t\t\t.forEach(element => {\n\t\t\t\t\t\tif (element.templateType !== 'placeholder')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstoredState.collection[chatId].push(element);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\tLogger.warn('Cache after updating', storedState.collection[chatId]);\n\n\t\t\t\tstoredState.saveMessageList[chatId] = state.saveMessageList[chatId];\n\t\t\t\tstoredState.saveFileList[chatId] = state.saveFileList[chatId];\n\t\t\t\tstoredState.saveUserList[chatId] = state.saveUserList[chatId];\n\t\t\t}\n\n\t\t\treturn storedState;\n\t\t});\n\t}\n\n\tupdateSubordinateStates()\n\t{\n\t\tthis.store.dispatch('users/saveState');\n\t\tthis.store.dispatch('files/saveState');\n\t}\n\n\tvalidate(fields, options)\n\t{\n\t\tconst result = {};\n\n\t\tif (typeof fields.id === \"number\")\n\t\t{\n\t\t\tresult.id = fields.id;\n\t\t}\n\t\telse if (typeof fields.id === \"string\")\n\t\t{\n\t\t\tif (fields.id.startsWith('temporary') || fields.id.startsWith('placeholder') || Utils.types.isUuidV4(fields.id))\n\t\t\t{\n\t\t\t\tresult.id = fields.id;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult.id = parseInt(fields.id);\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.uuid === \"string\")\n\t\t{\n\t\t\tresult.templateId = fields.uuid;\n\t\t}\n\t\telse if (typeof fields.templateId === \"number\")\n\t\t{\n\t\t\tresult.templateId = fields.templateId;\n\t\t}\n\t\telse if (typeof fields.templateId === \"string\")\n\t\t{\n\t\t\tif (fields.templateId.startsWith('temporary') || Utils.types.isUuidV4(fields.templateId))\n\t\t\t{\n\t\t\t\tresult.templateId = fields.templateId;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult.templateId = parseInt(fields.templateId);\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.templateType === \"string\")\n\t\t{\n\t\t\tresult.templateType = fields.templateType;\n\t\t}\n\n\t\tif (typeof fields.placeholderType === \"number\")\n\t\t{\n\t\t\tresult.placeholderType = fields.placeholderType;\n\t\t}\n\n\t\tif (typeof fields.chat_id !== 'undefined')\n\t\t{\n\t\t\tfields.chatId = fields.chat_id;\n\t\t}\n\t\tif (typeof fields.chatId === \"number\" || typeof fields.chatId === \"string\")\n\t\t{\n\t\t\tresult.chatId = parseInt(fields.chatId);\n\t\t}\n\t\tif (typeof fields.date !== \"undefined\")\n\t\t{\n\t\t\tresult.date = Utils.date.cast(fields.date);\n\t\t}\n\n\t\t// previous P&P format\n\t\tif (typeof fields.textLegacy === \"string\" || typeof fields.textLegacy === \"number\")\n\t\t{\n\t\t\tif (typeof fields.text === \"string\" || typeof fields.text === \"number\")\n\t\t\t{\n\t\t\t\tresult.text = fields.text.toString();\n\t\t\t}\n\n\t\t\tresult.textConverted = this.convertToHtml({\n\t\t\t\ttext: fields.textLegacy.toString(),\n\t\t\t\tisConverted: true\n\t\t\t});\n\n\t\t\tif (typeof fields.text === \"string\" || typeof fields.text === \"number\")\n\t\t\t{\n\t\t\t\tresult.text = fields.text;\n\t\t\t}\n\t\t}\n\t\telse // modern format\n\t\t{\n\t\t\tif (typeof fields.text_converted !== 'undefined')\n\t\t\t{\n\t\t\t\tfields.textConverted = fields.text_converted;\n\t\t\t}\n\t\t\tif (typeof fields.textConverted === \"string\" || typeof fields.textConverted === \"number\")\n\t\t\t{\n\t\t\t\tresult.textConverted = fields.textConverted.toString();\n\t\t\t}\n\t\t\tif (typeof fields.text === \"string\" || typeof fields.text === \"number\")\n\t\t\t{\n\t\t\t\tresult.text = fields.text.toString();\n\n\t\t\t\tlet isConverted = typeof result.textConverted !== 'undefined';\n\n\t\t\t\tresult.textConverted = this.convertToHtml({\n\t\t\t\t\ttext: isConverted? result.textConverted: result.text,\n\t\t\t\t\tisConverted\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.senderId !== 'undefined')\n\t\t{\n\t\t\tfields.authorId = fields.senderId;\n\t\t}\n\t\telse if (typeof fields.author_id !== 'undefined')\n\t\t{\n\t\t\tfields.authorId = fields.author_id;\n\t\t}\n\t\tif (typeof fields.authorId === \"number\" || typeof fields.authorId === \"string\")\n\t\t{\n\t\t\tif (fields.system === true || fields.system === 'Y')\n\t\t\t{\n\t\t\t\tresult.authorId = 0;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult.authorId = parseInt(fields.authorId);\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.params === \"object\" && fields.params !== null)\n\t\t{\n\t\t\tconst params = this.validateParams(fields.params, options);\n\t\t\tif (params)\n\t\t\t{\n\t\t\t\tresult.params = params;\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.push === \"boolean\")\n\t\t{\n\t\t\tresult.push = fields.push;\n\t\t}\n\n\t\tif (typeof fields.sending === \"boolean\")\n\t\t{\n\t\t\tresult.sending = fields.sending;\n\t\t}\n\n\t\tif (typeof fields.unread === \"boolean\")\n\t\t{\n\t\t\tresult.unread = fields.unread;\n\t\t}\n\n\t\tif (typeof fields.blink === \"boolean\")\n\t\t{\n\t\t\tresult.blink = fields.blink;\n\t\t}\n\n\t\tif (typeof fields.error === \"boolean\" || typeof fields.error === \"string\")\n\t\t{\n\t\t\tresult.error = fields.error;\n\t\t}\n\n\t\tif (typeof fields.retry === \"boolean\")\n\t\t{\n\t\t\tresult.retry = fields.retry;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tvalidateParams(params, options)\n\t{\n\t\tconst result = {};\n\t\ttry\n\t\t{\n\t\t\tfor (let field in params)\n\t\t\t{\n\t\t\t\tif (!params.hasOwnProperty(field))\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (field === 'COMPONENT_ID')\n\t\t\t\t{\n\t\t\t\t\tif (typeof params[field] === \"string\" && BX.Vue.isComponent(params[field]))\n\t\t\t\t\t{\n\t\t\t\t\t\tresult[field] = params[field];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (field === 'LIKE')\n\t\t\t\t{\n\t\t\t\t\tif (params[field] instanceof Array)\n\t\t\t\t\t{\n\t\t\t\t\t\tresult['REACTION'] = {like: params[field].map(element => parseInt(element))};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (field === 'CHAT_LAST_DATE')\n\t\t\t\t{\n\t\t\t\t\tresult[field] = Utils.date.cast(params[field]);\n\t\t\t\t}\n\t\t\t\telse if (field === 'AVATAR')\n\t\t\t\t{\n\t\t\t\t\tif (params[field])\n\t\t\t\t\t{\n\t\t\t\t\t\tresult[field] = params[field].startsWith('http') ? params[field] : options.host + params[field];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (field === 'NAME')\n\t\t\t\t{\n\t\t\t\t\tif (params[field])\n\t\t\t\t\t{\n\t\t\t\t\t\tresult[field] = params[field];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (field === 'LINK_ACTIVE')\n\t\t\t\t{\n\t\t\t\t\tif (params[field])\n\t\t\t\t\t{\n\t\t\t\t\t\tresult[field] = params[field].map(function(userId) {\n\t\t\t\t\t\t\treturn parseInt(userId)\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (field === 'ATTACH')\n\t\t\t\t{\n\t\t\t\t\tresult[field] = params[field];\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult[field] = params[field];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (e) {}\n\n\t\tlet hasResultElements = false;\n\t\tfor (let field in result)\n\t\t{\n\t\t\tif (!result.hasOwnProperty(field))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\thasResultElements = true;\n\t\t\tbreak\n\t\t}\n\n\t\treturn hasResultElements? result: null;\n\t}\n\n\tconvertToHtml(params = {})\n\t{\n\t\tlet {\n\t\t\tquote = true,\n\t\t\timage = true,\n\t\t\ttext = '',\n\t\t\tisConverted = false,\n\t\t\tenableBigSmile = true\n\t\t} = params;\n\n\t\ttext = text.trim();\n\n\t\tif (!isConverted)\n\t\t{\n\t\t\ttext = text.replace(/&/g, '&').replace(/\"/g, '"').replace(/</g, '<').replace(/>/g, '>');\n\t\t}\n\n\t\tif (text.startsWith('/me'))\n\t\t{\n\t\t\ttext = `<i>${text.substr(4)}</i>`;\n\t\t}\n\t\telse if (text.startsWith('/loud'))\n\t\t{\n\t\t\ttext = `<b>${text.substr(6)}</b>`;\n\t\t}\n\n\t\tconst quoteSign = \">>\";\n\t\tif (quote && text.indexOf(quoteSign) >= 0)\n\t\t{\n\t\t\tlet textPrepareFlag = false;\n\t\t\tlet textPrepare = text.split(isConverted? \"<br />\": \"\\n\");\n\t\t\tfor (let i = 0; i < textPrepare.length; i++)\n\t\t\t{\n\t\t\t\tif (textPrepare[i].startsWith(quoteSign))\n\t\t\t\t{\n\t\t\t\t\ttextPrepare[i] = textPrepare[i].replace(quoteSign, '<div class=\"bx-im-message-content-quote\"><div class=\"bx-im-message-content-quote-wrap\">');\n\t\t\t\t\twhile (++i < textPrepare.length && textPrepare[i].startsWith(quoteSign))\n\t\t\t\t\t{\n\t\t\t\t\t\ttextPrepare[i] = textPrepare[i].replace(quoteSign, '');\n\t\t\t\t\t}\n\t\t\t\t\ttextPrepare[i - 1] += '</div></div><br>';\n\t\t\t\t\ttextPrepareFlag = true;\n\t\t\t\t}\n\t\t\t}\n\t\t\ttext = textPrepare.join(\"<br />\");\n\t\t}\n\n\t\ttext = text.replace(/\\n/gi, '<br />');\n\n\t\ttext = text.replace(/\\t/gi, ' ');\n\n\t\t//text = this.decodeBbCode(text, false, enableBigSmile);\n\t\ttext = Utils.text.decodeBbCode(text, enableBigSmile);\n\n\t\tif (quote)\n\t\t{\n\t\t\ttext = text.replace(/------------------------------------------------------<br \\/>(.*?)\\[(.*?)\\](?: #(?:(?:chat)?\\d+|\\d+:\\d+)\\/\\d+)?<br \\/>(.*?)------------------------------------------------------(<br \\/>)?/g, function (whole, p1, p2, p3, p4, offset) {\n\t\t\t\treturn (offset > 0? '<br>': '') + \"<div class=\\\"bx-im-message-content-quote\\\"><div class=\\\"bx-im-message-content-quote-wrap\\\"><div class=\\\"bx-im-message-content-quote-name\\\"><span class=\\\"bx-im-message-content-quote-name-text\\\">\" + p1 + \"</span><span class=\\\"bx-im-message-content-quote-name-time\\\">\" + p2 + \"</span></div>\" + p3 + \"</div></div><br />\";\n\t\t\t});\n\t\t\ttext = text.replace(/------------------------------------------------------<br \\/>(.*?)------------------------------------------------------(<br \\/>)?/g, function (whole, p1, p2, p3, offset) {\n\t\t\t\treturn (offset > 0? '<br>': '') + \"<div class=\\\"bx-im-message-content-quote\\\"><div class=\\\"bx-im-message-content-quote-wrap\\\">\" + p1 + \"</div></div><br />\";\n\t\t\t});\n\t\t}\n\n\t\tif (image)\n\t\t{\n\t\t\tlet changed = false;\n\t\t\ttext = text.replace(/<a(.*?)>(http[s]{0,1}:\\/\\/.*?)<\\/a>/gi, function(whole, aInner, text, offset)\n\t\t\t{\n\t\t\t\tif(!text.match(/(\\.(jpg|jpeg|png|gif|webp)\\?|\\.(jpg|jpeg|png|gif|webp)$)/i) || text.indexOf(\"/docs/pub/\") > 0 || text.indexOf(\"logout=yes\") > 0)\n\t\t\t\t{\n\t\t\t\t\treturn whole;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tchanged = true;\n\t\t\t\t\treturn (offset > 0? '<br />':'')+'<a' +aInner+ ' target=\"_blank\" class=\"bx-im-element-file-image\"><img src=\"'+text+'\" class=\"bx-im-element-file-image-source-text\" onerror=\"BX.Messenger.Model.MessagesModel.hideErrorImage(this)\"></a></span>';\n\t\t\t\t}\n\t\t\t});\n\t\t\tif (changed)\n\t\t\t{\n\t\t\t\ttext = text.replace(/<\\/span>(\\n?)<br(\\s\\/?)>/gi, '</span>').replace(/<br(\\s\\/?)>(\\n?)<br(\\s\\/?)>(\\n?)<span/gi, '<br /><span');\n\t\t\t}\n\t\t}\n\n\t\tif (enableBigSmile)\n\t\t{\n\t\t\ttext = text.replace(\n\t\t\t\t/^(\\s*<img\\s+src=[^>]+?data-code=[^>]+?data-definition=\"UHD\"[^>]+?style=\"width:)(\\d+)(px[^>]+?height:)(\\d+)(px[^>]+?class=\"bx-smile\"\\s*\\/?>\\s*)$/,\n\t\t\t\tfunction doubleSmileSize(match, start, width, middle, height, end) {\n\t\t\t\t\treturn start + (parseInt(width, 10) * 1.7) + middle + (parseInt(height, 10) * 1.7) + end;\n\t\t\t\t}\n\t\t\t);\n\t\t}\n\n\t\tif (text.substr(-6) == '<br />')\n\t\t{\n\t\t\ttext = text.substr(0, text.length - 6);\n\t\t}\n\t\ttext = text.replace(/<br><br \\/>/gi, '<br />');\n\t\ttext = text.replace(/<br \\/><br>/gi, '<br />');\n\n\t\treturn text;\n\t};\n\n\tdecodeBbCode(text, textOnly = false, enableBigSmile = true)\n\t{\n\t\treturn MessagesModel.decodeBbCode({text, textOnly, enableBigSmile})\n\t}\n\n\tdecodeAttach(item)\n\t{\n\t\tif (Array.isArray(item))\n\t\t{\n\t\t\titem.forEach(arrayElement => {\n\t\t\t\tarrayElement = this.decodeAttach(arrayElement);\n\t\t\t});\n\t\t}\n\t\telse if (typeof item === 'object' && item !== null)\n\t\t{\n\t\t\tfor (const prop in item)\n\t\t\t{\n\t\t\t\tif (item.hasOwnProperty(prop))\n\t\t\t\t{\n\t\t\t\t\titem[prop] = this.decodeAttach(item[prop]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\telse\n\t\t{\n\t\t\tif (typeof item === 'string')\n\t\t\t{\n\t\t\t\titem = Utils.text.htmlspecialcharsback(item);\n\t\t\t}\n\t\t}\n\n\t\treturn item;\n\t}\n\n\tstatic decodeBbCode(params = {})\n\t{\n\t\tlet {text, textOnly = false, enableBigSmile = true} = params;\n\n\t\tlet putReplacement = [];\n\t\ttext = text.replace(/\\[PUT(?:=(.+?))?\\](.+?)?\\[\\/PUT\\]/gi, function(whole)\n\t\t{\n\t\t\tvar id = putReplacement.length;\n\t\t\tputReplacement.push(whole);\n\t\t\treturn '####REPLACEMENT_PUT_'+id+'####';\n\t\t});\n\n\t\tlet sendReplacement = [];\n\t\ttext = text.replace(/\\[SEND(?:=(.+?))?\\](.+?)?\\[\\/SEND\\]/gi, function(whole)\n\t\t{\n\t\t\tvar id = sendReplacement.length;\n\t\t\tsendReplacement.push(whole);\n\t\t\treturn '####REPLACEMENT_SEND_'+id+'####';\n\t\t});\n\n\t\tlet codeReplacement = [];\n\t\ttext = text.replace(/\\[CODE\\]\\n?(.*?)\\[\\/CODE\\]/sig, function(whole, text) {\n\t\t\tlet id = codeReplacement.length;\n\t\t\tcodeReplacement.push(text);\n\t\t\treturn '####REPLACEMENT_CODE_'+id+'####';\n\t\t});\n\n\t\ttext = text.replace(/\\[url=([^\\]]+)\\](.*?)\\[\\/url\\]/gis, function(whole, link, text)\n\t\t{\n\t\t\tlet tag = document.createElement('a');\n\t\t\ttag.href = Utils.text.htmlspecialcharsback(link);\n\t\t\ttag.target = '_blank';\n\t\t\ttag.text = Utils.text.htmlspecialcharsback(text);\n\n\t\t\tlet allowList = [\n\t\t\t\t\"http:\",\n\t\t\t\t\"https:\",\n\t\t\t\t\"ftp:\",\n\t\t\t\t\"file:\",\n\t\t\t\t\"tel:\",\n\t\t\t\t\"callto:\",\n\t\t\t\t\"mailto:\",\n\t\t\t\t\"skype:\",\n\t\t\t\t\"viber:\",\n\t\t\t];\n\t\t\tif (allowList.indexOf(tag.protocol) <= -1)\n\t\t\t{\n\t\t\t\treturn whole;\n\t\t\t}\n\n\t\t\treturn tag.outerHTML;\n\t\t});\n\n\t\ttext = text.replace(/\\[url\\]([^\\]]+)\\[\\/url\\]/gis, function(whole, link)\n\t\t{\n\t\t\tlink = Utils.text.htmlspecialcharsback(link);\n\n\t\t\tlet tag = document.createElement('a');\n\t\t\ttag.href = link;\n\t\t\ttag.target = '_blank';\n\t\t\ttag.text = link;\n\n\t\t\tlet allowList = [\n\t\t\t\t\"http:\",\n\t\t\t\t\"https:\",\n\t\t\t\t\"ftp:\",\n\t\t\t\t\"file:\",\n\t\t\t\t\"tel:\",\n\t\t\t\t\"callto:\",\n\t\t\t\t\"mailto:\",\n\t\t\t\t\"skype:\",\n\t\t\t\t\"viber:\",\n\t\t\t];\n\t\t\tif (allowList.indexOf(tag.protocol) <= -1)\n\t\t\t{\n\t\t\t\treturn whole;\n\t\t\t}\n\n\t\t\treturn tag.outerHTML;\n\t\t});\n\n\t\ttext = text.replace(/\\[LIKE\\]/gi, '<span class=\"bx-smile bx-im-smile-like\"></span>');\n\t\ttext = text.replace(/\\[DISLIKE\\]/gi, '<span class=\"bx-smile bx-im-smile-dislike\"></span>');\n\n\t\ttext = text.replace(/\\[BR\\]/gi, '<br/>');\n\t\ttext = text.replace(/\\[([buis])\\](.*?)\\[(\\/[buis])\\]/gi, (whole, open, inner, close) => '<'+open+'>'+inner+'<'+close+'>'); // TODO tag USER\n\n\t\t// this code needs to be ported to im/install/js/im/view/message/body/src/body.js:229\n\t\ttext = text.replace(/\\[CHAT=(imol\\|)?([0-9]{1,})\\](.*?)\\[\\/CHAT\\]/gi, (whole, openlines, chatId, inner) => openlines? inner: '<span class=\"bx-im-mention\" data-type=\"CHAT\" data-value=\"chat'+chatId+'\">'+inner+'</span>'); // TODO tag CHAT\n\n\t\tif (false && Utils.device.isMobile())\n\t\t{\n\t\t\tlet replacements = [];\n\t\t\ttext = text.replace(/\\[CALL(?:=(.+?))?\\](.+?)?\\[\\/CALL\\]/gi, (whole, number, text) => {\n\t\t\t\tlet index = replacements.length;\n\t\t\t\treplacements.push({number, text});\n\t\t\t\treturn `####REPLACEMENT_MARK_${index}####`;\n\t\t\t});\n\n\t\t\ttext = text.replace(/[+]{0,1}(?:[-\\/. ()\\[\\]~;#,]*[0-9]){10,}[^\\n\\r<][-\\/. ()\\[\\]~;#,0-9^]*/g, (number) => {\n\t\t\t\tlet pureNumber = number.replace(/\\D/g, '');\n\t\t\t\treturn `[CALL=${pureNumber}]${number}[/CALL]`;\n\t\t\t});\n\n\t\t\treplacements.forEach((item, index) => {\n\t\t\t\ttext = text.replace(`####REPLACEMENT_MARK_${index}####`, `[CALL=${item.number}]${item.text}[/CALL]`)\n\t\t\t});\n\t\t}\n\n\t\ttext = text.replace(/\\[CALL(?:=(.+?))?\\](.+?)?\\[\\/CALL\\]/gi, (whole, number, text) => '<span class=\"bx-im-mention\" data-type=\"CALL\" data-value=\"'+Utils.text.htmlspecialchars(number)+'\">'+text+'</span>'); // TODO tag CHAT\n\n\t\ttext = text.replace(/\\[PCH=([0-9]{1,})\\](.*?)\\[\\/PCH\\]/gi, (whole, historyId, text) => text); // TODO tag PCH\n\n\t\tlet textElementSize = 0;\n\t\tif (enableBigSmile)\n\t\t{\n\t\t\ttextElementSize = text.replace(/\\[icon\\=([^\\]]*)\\]/gi, '').trim().length;\n\t\t}\n\n\t\ttext = text.replace(/\\[icon\\=([^\\]]*)\\]/gi, (whole) =>\n\t\t{\n\t\t\tlet url = whole.match(/icon\\=(\\S+[^\\s.,> )\\];\\'\\\"!?])/i);\n\t\t\tif (url && url[1])\n\t\t\t{\n\t\t\t\turl = url[1];\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tlet attrs = {'src': url, 'border': 0};\n\n\t\t\tlet size = whole.match(/size\\=(\\d+)/i);\n\t\t\tif (size && size[1])\n\t\t\t{\n\t\t\t\tattrs['width'] = size[1];\n\t\t\t\tattrs['height'] = size[1];\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tlet width = whole.match(/width\\=(\\d+)/i);\n\t\t\t\tif (width && width[1])\n\t\t\t\t{\n\t\t\t\t\tattrs['width'] = width[1];\n\t\t\t\t}\n\n\t\t\t\tlet height = whole.match(/height\\=(\\d+)/i);\n\t\t\t\tif (height && height[1])\n\t\t\t\t{\n\t\t\t\t\tattrs['height'] = height[1];\n\t\t\t\t}\n\n\t\t\t\tif (attrs['width'] && !attrs['height'])\n\t\t\t\t{\n\t\t\t\t\tattrs['height'] = attrs['width'];\n\t\t\t\t}\n\t\t\t\telse if (attrs['height'] && !attrs['width'])\n\t\t\t\t{\n\t\t\t\t\tattrs['width'] = attrs['height'];\n\t\t\t\t}\n\t\t\t\telse if (attrs['height'] && attrs['width'])\n\t\t\t\t{}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tattrs['width'] = 20;\n\t\t\t\t\tattrs['height'] = 20;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tattrs['width'] = attrs['width']>100? 100: attrs['width'];\n\t\t\tattrs['height'] = attrs['height']>100? 100: attrs['height'];\n\n\t\t\tif (enableBigSmile && textElementSize === 0 && attrs['width'] === attrs['height'] && attrs['width'] === 20)\n\t\t\t{\n\t\t\t\tattrs['width'] = 40;\n\t\t\t\tattrs['height'] = 40;\n\t\t\t}\n\n\t\t\tlet title = whole.match(/title\\=(.*[^\\s\\]])/i);\n\t\t\tif (title && title[1])\n\t\t\t{\n\t\t\t\ttitle = title[1];\n\t\t\t\tif (title.indexOf('width=') > -1)\n\t\t\t\t{\n\t\t\t\t\ttitle = title.substr(0, title.indexOf('width='))\n\t\t\t\t}\n\t\t\t\tif (title.indexOf('height=') > -1)\n\t\t\t\t{\n\t\t\t\t\ttitle = title.substr(0, title.indexOf('height='))\n\t\t\t\t}\n\t\t\t\tif (title.indexOf('size=') > -1)\n\t\t\t\t{\n\t\t\t\t\ttitle = title.substr(0, title.indexOf('size='))\n\t\t\t\t}\n\t\t\t\tif (title)\n\t\t\t\t{\n\t\t\t\t\tattrs['title'] = Utils.text.htmlspecialchars(title).trim();\n\t\t\t\t\tattrs['alt'] = attrs['title'];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet attributes = '';\n\t\t\tfor (let name in attrs)\n\t\t\t{\n\t\t\t\tif (attrs.hasOwnProperty(name))\n\t\t\t\t{\n\t\t\t\t\tattributes += name+'=\"'+attrs[name]+'\" ';\n\t\t\t\t}\n\t\t\t}\n\n\n\t\t\treturn '<img class=\"bx-smile bx-icon\" '+attributes+'>';\n\t\t});\n\n\t\tsendReplacement.forEach((value, index) => {\n\t\t\ttext = text.replace('####REPLACEMENT_SEND_'+index+'####', value);\n\t\t});\n\n\t\ttext = text.replace(/\\[SEND(?:=(?:.+?))?\\](?:.+?)?\\[\\/SEND]/gi, (match) =>\n\t\t{\n\t\t\treturn match.replace(/\\[SEND(?:=(.+))?\\](.+?)?\\[\\/SEND]/gi, (whole, command, text) =>\n\t\t\t{\n\t\t\t\tlet html = '';\n\n\t\t\t\ttext = text? text: command;\n\t\t\t\tcommand = (command? command: text).replace('<br />', '\\n');\n\n\t\t\t\tif (!textOnly && text)\n\t\t\t\t{\n\t\t\t\t\ttext = text.replace(/<([\\w]+)[^>]*>(.*?)<\\\\1>/i, \"$2\", text);\n\t\t\t\t\ttext = text.replace(/\\[([\\w]+)[^\\]]*\\](.*?)\\[\\/\\1\\]/i, \"$2\", text);\n\n\t\t\t\t\tcommand = command.split('####REPLACEMENT_PUT_').join('####REPLACEMENT_SP_');\n\n\t\t\t\t\thtml = '<!--IM_COMMAND_START-->' +\n\t\t\t\t\t\t'<span class=\"bx-im-message-command-wrap\">'+\n\t\t\t\t\t\t\t'<span class=\"bx-im-message-command\" data-entity=\"send\">'+text+'</span>'+\n\t\t\t\t\t\t\t'<span class=\"bx-im-message-command-data\">'+command+'</span>'+\n\t\t\t\t\t\t'</span>'+\n\t\t\t\t\t'<!--IM_COMMAND_END-->';\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\thtml = text;\n\t\t\t\t}\n\n\t\t\t\treturn html;\n\t\t\t});\n\t\t});\n\n\t\tputReplacement.forEach((value, index) => {\n\t\t\ttext = text.replace('####REPLACEMENT_PUT_'+index+'####', value);\n\t\t});\n\n\t\ttext = text.replace(/\\[PUT(?:=(?:.+?))?\\](?:.+?)?\\[\\/PUT]/gi, (match) =>\n\t\t{\n\t\t\treturn match.replace(/\\[PUT(?:=(.+))?\\](.+?)?\\[\\/PUT]/gi, (whole, command, text) =>\n\t\t\t{\n\t\t\t\tlet html = '';\n\n\t\t\t\ttext = text? text: command;\n\t\t\t\tcommand = (command? command: text).replace('<br />', '\\n');\n\n\t\t\t\tif (!textOnly && text)\n\t\t\t\t{\n\t\t\t\t\ttext = text.replace(/<([\\w]+)[^>]*>(.*?)<\\/\\1>/i, \"$2\", text);\n\t\t\t\t\ttext = text.replace(/\\[([\\w]+)[^\\]]*\\](.*?)\\[\\/\\1\\]/i, \"$2\", text);\n\n\t\t\t\t\thtml = '<!--IM_COMMAND_START-->' +\n\t\t\t\t\t\t'<span class=\"bx-im-message-command-wrap\">'+\n\t\t\t\t\t\t\t'<span class=\"bx-im-message-command\" data-entity=\"put\">'+text+'</span>'+\n\t\t\t\t\t\t\t'<span class=\"bx-im-message-command-data\">'+command+'</span>'+\n\t\t\t\t\t\t'</span>'+\n\t\t\t\t\t'<!--IM_COMMAND_END-->';\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\thtml = text;\n\t\t\t\t}\n\n\t\t\t\treturn html;\n\t\t\t});\n\t\t});\n\n\t\tcodeReplacement.forEach((code, index) => {\n\t\t\ttext = text.replace('####REPLACEMENT_CODE_'+index+'####',\n\t\t\t\t!textOnly? '<div class=\"bx-im-message-content-code\">'+code+'</div>': code\n\t\t\t)\n\t\t});\n\n\t\tif (sendReplacement.length > 0)\n\t\t{\n\t\t\tdo\n\t\t\t{\n\t\t\t\tsendReplacement.forEach((value, index) => {\n\t\t\t\t\ttext = text.replace('####REPLACEMENT_SEND_'+index+'####', value);\n\t\t\t\t});\n\t\t\t}\n\t\t\twhile (text.includes('####REPLACEMENT_SEND_'));\n\t\t}\n\n\t\ttext = text.split('####REPLACEMENT_SP_').join('####REPLACEMENT_PUT_');\n\n\t\tif (putReplacement.length > 0)\n\t\t{\n\t\t\tdo\n\t\t\t{\n\t\t\t\tputReplacement.forEach((value, index) => {\n\t\t\t\t\ttext = text.replace('####REPLACEMENT_PUT_'+index+'####', value);\n\t\t\t\t});\n\t\t\t}\n\t\t\twhile (text.includes('####REPLACEMENT_PUT_'));\n\t\t}\n\n\t\treturn text;\n\t}\n\n\tstatic hideErrorImage(element)\n\t{\n\t\tif (element.parentNode && element.parentNode)\n\t\t{\n\t\t\telement.parentNode.innerHTML = '<a href=\"'+element.src+'\" target=\"_blank\">'+element.src+'</a>';\n\t\t}\n\t\treturn true;\n\t};\n\n\tstatic isTemporaryMessage(element)\n\t{\n\t\treturn element.id\n\t\t\t&& (Utils.types.isUuidV4(element.id) || element.id.toString().startsWith('temporary'));\n\t}\n\n\tstatic getPayloadWithTempMessages(state, payload)\n\t{\n\t\tconst payloadData = [...payload.data];\n\n\t\tif (!Utils.platform.isBitrixMobile())\n\t\t{\n\t\t\treturn payloadData;\n\t\t}\n\n\t\tif (!payload.data || payload.data.length <= 0)\n\t\t{\n\t\t\treturn payloadData;\n\t\t}\n\n\t\t// consider that in the payload we have messages only for one chat, so we get the value from the first message.\n\t\tconst payloadChatId = payload.data[0].chatId;\n\t\tif (!state.collection[payloadChatId])\n\t\t{\n\t\t\treturn payloadData;\n\t\t}\n\n\t\tstate.collection[payloadChatId].forEach(message => {\n\t\t\tif (\n\t\t\t\tMessagesModel.isTemporaryMessage(message)\n\t\t\t\t&& !MessagesModel.existsInPayload(payload, message.templateId)\n\t\t\t\t&& MessagesModel.doesTaskExist(message)\n\t\t\t)\n\t\t\t{\n\t\t\t\tpayloadData.push(message);\n\t\t\t}\n\t\t});\n\n\t\treturn payloadData;\n\t}\n\n\tstatic existsInPayload(payload, templateId)\n\t{\n\t\treturn payload.data.find(payloadMessage => payloadMessage.templateId === templateId);\n\t}\n\n\tstatic doesTaskExist(message)\n\t{\n\t\tif (Array.isArray(message.params.FILE_ID))\n\t\t{\n\t\t\tlet foundUploadTasks = false;\n\t\t\tmessage.params.FILE_ID.forEach(fileId => {\n\t\t\t\tif (!foundUploadTasks)\n\t\t\t\t{\n\t\t\t\t\tfoundUploadTasks = window.imDialogUploadTasks.find(task => task.taskId.split('|')[1] === fileId);\n\t\t\t\t}\n\t\t\t})\n\n\t\t\treturn !!foundUploadTasks;\n\t\t}\n\n\t\tif (message.templateId)\n\t\t{\n\t\t\tconst foundMessageTask = window.imDialogMessagesTasks.find(task => task.taskId.split('|')[1] === message.templateId);\n\n\t\t\treturn !!foundMessageTask;\n\t\t}\n\n\t\treturn false;\n\t}\n}","/**\n * Bitrix Messenger\n * Dialogues model (Vuex Builder model)\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2020 Bitrix\n */\n\nimport {Vue} from 'ui.vue';\nimport {VuexBuilderModel} from 'ui.vue.vuex';\nimport {StorageLimit} from \"im.const\";\nimport {Utils} from \"im.lib.utils\";\n\nexport class DialoguesModel extends VuexBuilderModel\n{\n\tgetName()\n\t{\n\t\treturn 'dialogues';\n\t}\n\n\tgetState()\n\t{\n\t\treturn {\n\t\t\thost: this.getVariable('host', location.protocol+'//'+location.host),\n\t\t\tcollection: {},\n\t\t\tsaveDialogList: [],\n\t\t\tsaveChatList: [],\n\t\t}\n\t}\n\n\tgetStateSaveException()\n\t{\n\t\treturn {\n\t\t\thost: null\n\t\t}\n\t}\n\n\tgetElementStateSaveException()\n\t{\n\t\treturn {\n\t\t\twritingList: null,\n\t\t\tquoteId: null\n\t\t}\n\t}\n\n\tgetElementState()\n\t{\n\t\treturn {\n\t\t\tdialogId: '0',\n\t\t\tchatId: 0,\n\t\t\tcounter: 0,\n\t\t\tuserCounter: 0,\n\t\t\tmessageCount: 0,\n\t\t\tunreadId: 0,\n\t\t\tlastMessageId: 0,\n\t\t\tmanagerList: [],\n\t\t\treadedList: [],\n\t\t\twritingList: [],\n\t\t\tmuteList: [],\n\t\t\ttextareaMessage: \"\",\n\t\t\tquoteId: 0,\n\t\t\teditId: 0,\n\t\t\tinit: false,\n\n\t\t\tname: \"\",\n\t\t\towner: 0,\n\t\t\textranet: false,\n\t\t\tavatar: \"\",\n\t\t\tcolor: \"#17A3EA\",\n\t\t\ttype: \"chat\",\n\t\t\tentityType: \"\",\n\t\t\tentityId: \"\",\n\t\t\tentityData1: \"\",\n\t\t\tentityData2: \"\",\n\t\t\tentityData3: \"\",\n\t\t\tdateCreate: new Date(),\n\t\t\trestrictions: {\n\t\t\t\tavatar: true,\n\t\t\t\textend: true,\n\t\t\t\tleave: true,\n\t\t\t\tleaveOwner: true,\n\t\t\t\trename: true,\n\t\t\t\tsend: true,\n\t\t\t\tuserList: true,\n\t\t\t\tmute: true,\n\t\t\t\tcall: true,\n\t\t\t},\n\t\t\tpublic: {\n\t\t\t\tcode: '',\n\t\t\t\tlink: ''\n\t\t\t}\n\t\t};\n\t}\n\n\tgetGetters()\n\t{\n\t\treturn {\n\t\t\tget: state => dialogId =>\n\t\t\t{\n\t\t\t\tif (!state.collection[dialogId])\n\t\t\t\t{\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn state.collection[dialogId];\n\t\t\t},\n\t\t\tgetByChatId: state => chatId =>\n\t\t\t{\n\t\t\t\tchatId = parseInt(chatId);\n\n\t\t\t\tfor (let dialogId in state.collection)\n\t\t\t\t{\n\t\t\t\t\tif (!state.collection.hasOwnProperty(dialogId))\n\t\t\t\t\t{\n\t\t\t\t\t\tcontinue;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (state.collection[dialogId].chatId === chatId)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn state.collection[dialogId];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn null;\n\t\t\t},\n\t\t\tgetBlank: state => params =>\n\t\t\t{\n\t\t\t\treturn this.getElementState();\n\t\t\t},\n\t\t\tgetQuoteId: state => dialogId =>\n\t\t\t{\n\t\t\t\tif (!state.collection[dialogId])\n\t\t\t\t{\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn state.collection[dialogId].quoteId;\n\t\t\t},\n\t\t\tgetEditId: state => dialogId =>\n\t\t\t{\n\t\t\t\tif (!state.collection[dialogId])\n\t\t\t\t{\n\t\t\t\t\treturn 0;\n\t\t\t\t}\n\n\t\t\t\treturn state.collection[dialogId].editId;\n\t\t\t},\n\t\t\tcanSaveChat: state => chatId =>\n\t\t\t{\n\t\t\t\tif (/^\\d+$/.test(chatId))\n\t\t\t\t{\n\t\t\t\t\tchatId = parseInt(chatId);\n\t\t\t\t}\n\t\t\t\treturn state.saveChatList.includes(parseInt(chatId));\n\t\t\t},\n\t\t\tcanSaveDialog: state => dialogId =>\n\t\t\t{\n\t\t\t\treturn state.saveDialogList.includes(dialogId.toString());\n\t\t\t},\n\t\t\tisPrivateDialog: state => dialogId =>\n\t\t\t{\n\t\t\t\tdialogId = dialogId.toString();\n\t\t\t\treturn state.collection[dialogId.toString()] && state.collection[dialogId].type === 'private';\n\t\t\t},\n\t\t}\n\t}\n\n\tgetActions()\n\t{\n\t\treturn {\n\t\t\tset: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (payload instanceof Array)\n\t\t\t\t{\n\t\t\t\t\tpayload = payload.map(dialog => {\n\t\t\t\t\t\treturn Object.assign(\n\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\tthis.validate(Object.assign({}, dialog), {host: store.state.host}),\n\t\t\t\t\t\t\t{init: true}\n\t\t\t\t\t\t);\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\tlet result = [];\n\t\t\t\t\tresult.push(Object.assign(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tthis.validate(Object.assign({}, payload), {host: store.state.host}),\n\t\t\t\t\t\t{init: true}\n\t\t\t\t\t));\n\t\t\t\t\tpayload = result;\n\t\t\t\t}\n\n\t\t\t\tstore.commit('set', payload);\n\t\t\t},\n\n\t\t\tupdate: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\ttypeof store.state.collection[payload.dialogId] === 'undefined'\n\t\t\t\t\t|| store.state.collection[payload.dialogId].init === false\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t\tstore.commit('update', {\n\t\t\t\t\tdialogId : payload.dialogId,\n\t\t\t\t\tfields : this.validate(Object.assign({}, payload.fields), {host: store.state.host})\n\t\t\t\t});\n\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\tdelete: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('delete', payload.dialogId);\n\t\t\t\treturn true;\n\t\t\t},\n\n\t\t\tupdateWriting: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\ttypeof store.state.collection[payload.dialogId] === 'undefined'\n\t\t\t\t\t|| store.state.collection[payload.dialogId].init === false\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tlet index = store.state.collection[payload.dialogId].writingList.findIndex(el => el.userId === payload.userId);\n\t\t\t\tif (payload.action)\n\t\t\t\t{\n\t\t\t\t\tif (index >= 0)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tlet writingList = [].concat(store.state.collection[payload.dialogId].writingList);\n\t\t\t\t\t\twritingList.unshift({\n\t\t\t\t\t\t\tuserId: payload.userId,\n\t\t\t\t\t\t\tuserName: payload.userName,\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\tstore.commit('update', {\n\t\t\t\t\t\t\tactionName: 'updateWriting/1',\n\t\t\t\t\t\t\tdialogId : payload.dialogId,\n\t\t\t\t\t\t\tfields : this.validate({writingList}, {host: store.state.host})\n\t\t\t\t\t\t});\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 (index >= 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tlet writingList = store.state.collection[payload.dialogId].writingList.filter(el => el.userId !== payload.userId);\n\t\t\t\t\t\tstore.commit('update', {\n\t\t\t\t\t\t\tactionName: 'updateWriting/2',\n\t\t\t\t\t\t\tdialogId : payload.dialogId,\n\t\t\t\t\t\t\tfields : this.validate({writingList}, {host: store.state.host})\n\t\t\t\t\t\t});\n\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t},\n\n\t\t\tupdateReaded: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\ttypeof store.state.collection[payload.dialogId] === 'undefined'\n\t\t\t\t\t|| store.state.collection[payload.dialogId].init === false\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tlet readedList = store.state.collection[payload.dialogId].readedList.filter(el => el.userId !== payload.userId);\n\n\t\t\t\tif (payload.action)\n\t\t\t\t{\n\t\t\t\t\treadedList.push({\n\t\t\t\t\t\tuserId: payload.userId,\n\t\t\t\t\t\tuserName: payload.userName || '',\n\t\t\t\t\t\tmessageId: payload.messageId,\n\t\t\t\t\t\tdate: payload.date || (new Date()),\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tstore.commit('update', {\n\t\t\t\t\tactionName: 'updateReaded',\n\t\t\t\t\tdialogId : payload.dialogId,\n\t\t\t\t\tfields : this.validate({readedList}, {host: store.state.host})\n\t\t\t\t});\n\n\t\t\t\treturn false;\n\t\t\t},\n\n\t\t\tincreaseCounter: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\ttypeof store.state.collection[payload.dialogId] === 'undefined'\n\t\t\t\t\t|| store.state.collection[payload.dialogId].init === false\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tlet counter = store.state.collection[payload.dialogId].counter;\n\t\t\t\tif (counter === 100)\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tlet increasedCounter = counter + payload.count;\n\t\t\t\tif (increasedCounter > 100)\n\t\t\t\t{\n\t\t\t\t\tincreasedCounter = 100;\n\t\t\t\t}\n\n\t\t\t\tconst userId = store.rootState.application?.common.userId;\n\t\t\t\tconst dialogMuted = userId && store.state.collection[payload.dialogId].muteList.includes(userId);\n\n\t\t\t\tstore.commit('update', {\n\t\t\t\t\tactionName: 'increaseCounter',\n\t\t\t\t\tdialogId : payload.dialogId,\n\t\t\t\t\tdialogMuted,\n\t\t\t\t\tfields: {\n\t\t\t\t\t\tcounter: increasedCounter,\n\t\t\t\t\t\tpreviousCounter: counter\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\treturn false;\n\t\t\t},\n\n\t\t\tdecreaseCounter: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\ttypeof store.state.collection[payload.dialogId] === 'undefined'\n\t\t\t\t\t|| store.state.collection[payload.dialogId].init === false\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tlet counter = store.state.collection[payload.dialogId].counter;\n\t\t\t\tif (counter === 100)\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tlet decreasedCounter = counter - payload.count;\n\t\t\t\tif (decreasedCounter < 0)\n\t\t\t\t{\n\t\t\t\t\tdecreasedCounter = 0;\n\t\t\t\t}\n\n\t\t\t\tlet unreadId = payload.unreadId > store.state.collection[payload.dialogId].unreadId? payload.unreadId: store.state.collection[payload.dialogId].unreadId;\n\n\t\t\t\tif (\n\t\t\t\t\tstore.state.collection[payload.dialogId].unreadId !== unreadId\n\t\t\t\t\t|| store.state.collection[payload.dialogId].counter !== decreasedCounter\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tconst previousCounter = store.state.collection[payload.dialogId].counter;\n\t\t\t\t\tif (decreasedCounter === 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tunreadId = 0;\n\t\t\t\t\t}\n\n\t\t\t\t\tconst userId = store.rootState.application?.common.userId;\n\t\t\t\t\tconst dialogMuted = userId && store.state.collection[payload.dialogId].muteList.includes(userId);\n\n\t\t\t\t\tstore.commit('update', {\n\t\t\t\t\t\tactionName: 'decreaseCounter',\n\t\t\t\t\t\tdialogId : payload.dialogId,\n\t\t\t\t\t\tdialogMuted,\n\t\t\t\t\t\tfields : {\n\t\t\t\t\t\t\tcounter: decreasedCounter,\n\t\t\t\t\t\t\tpreviousCounter,\n\t\t\t\t\t\t\tunreadId\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t},\n\n\t\t\tincreaseMessageCounter: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\ttypeof store.state.collection[payload.dialogId] === 'undefined'\n\t\t\t\t\t|| store.state.collection[payload.dialogId].init === false\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tconst currentCounter = store.state.collection[payload.dialogId].messageCount;\n\n\t\t\t\tstore.commit('update', {\n\t\t\t\t\tactionName: 'increaseMessageCount',\n\t\t\t\t\tdialogId : payload.dialogId,\n\t\t\t\t\tfields : {\n\t\t\t\t\t\tmessageCount: currentCounter + payload.count,\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\n\t\t\tsaveDialog: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\ttypeof store.state.collection[payload.dialogId] === 'undefined'\n\t\t\t\t\t|| store.state.collection[payload.dialogId].init === false\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tstore.commit('saveDialog', {\n\t\t\t\t\tdialogId : payload.dialogId,\n\t\t\t\t\tchatId : payload.chatId\n\t\t\t\t});\n\n\t\t\t\treturn false;\n\t\t\t},\n\t\t};\n\t}\n\n\tgetMutations()\n\t{\n\t\treturn {\n\t\t\tinitCollection: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.initCollection(state, payload);\n\t\t\t},\n\t\t\tsaveDialog: (state, payload) =>\n\t\t\t{\n\t\t\t\t// TODO if payload.dialogId is IMOL, skip update this flag\n\t\t\t\tif (!(payload.chatId > 0 && payload.dialogId.length > 0))\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tlet saveDialogList = state.saveDialogList.filter(function(element) {\n\t\t\t\t\treturn element !== payload.dialogId;\n\t\t\t\t});\n\n\t\t\t\tsaveDialogList.unshift(payload.dialogId);\n\n\t\t\t\tsaveDialogList = saveDialogList.slice(0, StorageLimit.dialogues);\n\n\t\t\t\tif (state.saveDialogList.join(',') === saveDialogList.join(','))\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tstate.saveDialogList = saveDialogList;\n\n\n\t\t\t\tlet saveChatList = state.saveChatList.filter(function(element) {\n\t\t\t\t\treturn element !== payload.chatId;\n\t\t\t\t});\n\n\t\t\t\tsaveChatList.unshift(payload.chatId);\n\n\t\t\t\tstate.saveChatList = saveChatList.slice(0, StorageLimit.dialogues);\n\n\t\t\t\tthis.saveState(state);\n\t\t\t},\n\t\t\tset: (state, payload) =>\n\t\t\t{\n\t\t\t\tfor (let element of payload)\n\t\t\t\t{\n\t\t\t\t\tthis.initCollection(state, {dialogId: element.dialogId});\n\n\t\t\t\t\tstate.collection[element.dialogId] = Object.assign(\n\t\t\t\t\t\tthis.getElementState(),\n\t\t\t\t\t\tstate.collection[element.dialogId],\n\t\t\t\t\t\telement\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\t// TODO if payload.dialogId is IMOL, skip update cache\n\t\t\t\tthis.saveState(state);\n\t\t\t},\n\t\t\tupdate: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.initCollection(state, payload);\n\n\t\t\t\tstate.collection[payload.dialogId] = Object.assign(\n\t\t\t\t\tstate.collection[payload.dialogId],\n\t\t\t\t\tpayload.fields\n\t\t\t\t);\n\n\t\t\t\t// TODO if payload.dialogId is IMOL, skip update cache\n\t\t\t\tthis.saveState(state);\n\t\t\t},\n\t\t\tdelete: (state, payload) =>\n\t\t\t{\n\t\t\t\tdelete state.collection[payload.dialogId];\n\n\t\t\t\t// TODO if payload.dialogId is IMOL, skip update cache\n\t\t\t\tthis.saveState(state);\n\t\t\t}\n\t\t};\n\t}\n\n\tinitCollection(state, payload)\n\t{\n\t\tif (typeof state.collection[payload.dialogId] !== 'undefined')\n\t\t{\n\t\t\treturn true\n\t\t}\n\n\t\tVue.set(state.collection, payload.dialogId, this.getElementState());\n\n\t\tif (payload.fields)\n\t\t{\n\t\t\tstate.collection[payload.dialogId] = Object.assign(\n\t\t\t\tstate.collection[payload.dialogId],\n\t\t\t\tthis.validate(Object.assign({}, payload.fields), {host: state.host})\n\t\t\t);\n\t\t}\n\n\t\treturn true;\n\t}\n\n\tgetSaveTimeout()\n\t{\n\t\treturn 100;\n\t}\n\n\tsaveState(state = {})\n\t{\n\t\tif (!this.isSaveAvailable())\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tsuper.saveState(() =>\n\t\t{\n\t\t\tlet storedState = {\n\t\t\t\tcollection: {},\n\t\t\t\tsaveDialogList: [].concat(state.saveDialogList),\n\t\t\t\tsaveChatList: [].concat(state.saveChatList),\n\t\t\t};\n\n\t\t\tstate.saveDialogList.forEach(dialogId => {\n\t\t\t\tif (!state.collection[dialogId])\n\t\t\t\t\treturn false;\n\n\t\t\t\tstoredState.collection[dialogId] = Object.assign(\n\t\t\t\t\tthis.getElementState(),\n\t\t\t\t\tthis.cloneState(state.collection[dialogId], this.getElementStateSaveException())\n\t\t\t\t);\n\t\t\t});\n\n\t\t\treturn storedState;\n\t\t});\n\t}\n\n\tvalidate(fields, options = {})\n\t{\n\t\tconst result = {};\n\n\t\toptions.host = options.host || this.getState().host;\n\n\t\tif (typeof fields.dialog_id !== 'undefined')\n\t\t{\n\t\t\tfields.dialogId = fields.dialog_id;\n\t\t}\n\t\tif (typeof fields.dialogId === \"number\" || typeof fields.dialogId === \"string\")\n\t\t{\n\t\t\tresult.dialogId = fields.dialogId.toString();\n\t\t}\n\n\t\tif (typeof fields.chat_id !== 'undefined')\n\t\t{\n\t\t\tfields.chatId = fields.chat_id;\n\t\t}\n\t\telse if (typeof fields.id !== 'undefined')\n\t\t{\n\t\t\tfields.chatId = fields.id;\n\t\t}\n\t\tif (typeof fields.chatId === \"number\" || typeof fields.chatId === \"string\")\n\t\t{\n\t\t\tresult.chatId = parseInt(fields.chatId);\n\t\t}\n\t\tif (typeof fields.quoteId === \"number\")\n\t\t{\n\t\t\tresult.quoteId = parseInt(fields.quoteId);\n\t\t}\n\t\tif (typeof fields.editId === \"number\")\n\t\t{\n\t\t\tresult.editId = parseInt(fields.editId);\n\t\t}\n\n\t\tif (typeof fields.counter === \"number\" || typeof fields.counter === \"string\")\n\t\t{\n\t\t\tresult.counter = parseInt(fields.counter);\n\t\t}\n\n\t\tif (typeof fields.user_counter === \"number\" || typeof fields.user_counter === \"string\")\n\t\t{\n\t\t\tresult.userCounter = parseInt(fields.user_counter);\n\t\t}\n\t\tif (typeof fields.userCounter === \"number\" || typeof fields.userCounter === \"string\")\n\t\t{\n\t\t\tresult.userCounter = parseInt(fields.userCounter);\n\t\t}\n\n\t\tif (typeof fields.message_count === \"number\" || typeof fields.message_count === \"string\")\n\t\t{\n\t\t\tresult.messageCount = parseInt(fields.message_count);\n\t\t}\n\t\tif (typeof fields.messageCount === \"number\" || typeof fields.messageCount === \"string\")\n\t\t{\n\t\t\tresult.messageCount = parseInt(fields.messageCount);\n\t\t}\n\n\t\tif (typeof fields.unread_id !== 'undefined')\n\t\t{\n\t\t\tfields.unreadId = fields.unread_id;\n\t\t}\n\t\tif (typeof fields.unreadId === \"number\" || typeof fields.unreadId === \"string\")\n\t\t{\n\t\t\tresult.unreadId = parseInt(fields.unreadId);\n\t\t}\n\n\t\tif (typeof fields.last_message_id !== 'undefined')\n\t\t{\n\t\t\tfields.lastMessageId = fields.last_message_id;\n\t\t}\n\t\tif (typeof fields.lastMessageId === \"number\" || typeof fields.lastMessageId === \"string\")\n\t\t{\n\t\t\tresult.lastMessageId = parseInt(fields.lastMessageId);\n\t\t}\n\n\t\tif (typeof fields.readed_list !== 'undefined')\n\t\t{\n\t\t\tfields.readedList = fields.readed_list;\n\t\t}\n\t\tif (typeof fields.readedList !== 'undefined')\n\t\t{\n\t\t\tresult.readedList = [];\n\n\t\t\tif (fields.readedList instanceof Array)\n\t\t\t{\n\t\t\t\tfields.readedList.forEach(element =>\n\t\t\t\t{\n\t\t\t\t\tlet record = {};\n\t\t\t\t\tif (typeof element.user_id !== 'undefined')\n\t\t\t\t\t{\n\t\t\t\t\t\telement.userId = element.user_id;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof element.user_name !== 'undefined')\n\t\t\t\t\t{\n\t\t\t\t\t\telement.userName = element.user_name;\n\t\t\t\t\t}\n\t\t\t\t\tif (typeof element.message_id !== 'undefined')\n\t\t\t\t\t{\n\t\t\t\t\t\telement.messageId = element.message_id;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!element.userId || !element.userName || !element.messageId)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\trecord.userId = parseInt(element.userId);\n\t\t\t\t\trecord.userName = element.userName.toString();\n\t\t\t\t\trecord.messageId = parseInt(element.messageId);\n\n\t\t\t\t\trecord.date = Utils.date.cast(element.date);\n\n\t\t\t\t\tresult.readedList.push(record);\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.writing_list !== 'undefined')\n\t\t{\n\t\t\tfields.writingList = fields.writing_list;\n\t\t}\n\t\tif (typeof fields.writingList !== 'undefined')\n\t\t{\n\t\t\tresult.writingList = [];\n\n\t\t\tif (fields.writingList instanceof Array)\n\t\t\t{\n\t\t\t\tfields.writingList.forEach(element =>\n\t\t\t\t{\n\t\t\t\t\tlet record = {};\n\n\t\t\t\t\tif (!element.userId)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\trecord.userId = parseInt(element.userId);\n\t\t\t\t\trecord.userName = Utils.text.htmlspecialcharsback(element.userName);\n\n\t\t\t\t\tresult.writingList.push(record);\n\t\t\t\t})\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.manager_list !== 'undefined')\n\t\t{\n\t\t\tfields.managerList = fields.manager_list;\n\t\t}\n\t\tif (typeof fields.managerList !== 'undefined')\n\t\t{\n\t\t\tresult.managerList = [];\n\n\t\t\tif (fields.managerList instanceof Array)\n\t\t\t{\n\t\t\t\tfields.managerList.forEach(userId =>\n\t\t\t\t{\n\t\t\t\t\tuserId = parseInt(userId);\n\t\t\t\t\tif (userId > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tresult.managerList.push(userId);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.mute_list !== 'undefined')\n\t\t{\n\t\t\tfields.muteList = fields.mute_list;\n\t\t}\n\t\tif (typeof fields.muteList !== 'undefined')\n\t\t{\n\t\t\tresult.muteList = [];\n\n\t\t\tif (fields.muteList instanceof Array)\n\t\t\t{\n\t\t\t\tfields.muteList.forEach(userId =>\n\t\t\t\t{\n\t\t\t\t\tuserId = parseInt(userId);\n\t\t\t\t\tif (userId > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tresult.muteList.push(userId);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t\telse if (typeof fields.muteList === 'object')\n\t\t\t{\n\t\t\t\tObject.entries(fields.muteList).forEach(entry => {\n\t\t\t\t\tif (entry[1] === true)\n\t\t\t\t\t{\n\t\t\t\t\t\tconst userId = parseInt(entry[0]);\n\t\t\t\t\t\tif (userId > 0)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tresult.muteList.push(userId);\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\n\t\tif (typeof fields.textareaMessage !== 'undefined')\n\t\t{\n\t\t\tresult.textareaMessage = fields.textareaMessage.toString();\n\t\t}\n\n\t\tif (typeof fields.title !== 'undefined')\n\t\t{\n\t\t\tfields.name = fields.title;\n\t\t}\n\t\tif (typeof fields.name === \"string\" || typeof fields.name === \"number\")\n\t\t{\n\t\t\tresult.name = Utils.text.htmlspecialcharsback(fields.name.toString());\n\t\t}\n\n\t\tif (typeof fields.owner !== 'undefined')\n\t\t{\n\t\t\tfields.ownerId = fields.owner;\n\t\t}\n\t\tif (typeof fields.ownerId === \"number\" || typeof fields.ownerId === \"string\")\n\t\t{\n\t\t\tresult.ownerId = parseInt(fields.ownerId);\n\t\t}\n\n\t\tif (typeof fields.extranet === \"boolean\")\n\t\t{\n\t\t\tresult.extranet = fields.extranet;\n\t\t}\n\n\t\tif (typeof fields.avatar === 'string')\n\t\t{\n\t\t\tlet avatar;\n\n\t\t\tif (!fields.avatar || fields.avatar.endsWith('/js/im/images/blank.gif'))\n\t\t\t{\n\t\t\t\tavatar = '';\n\t\t\t}\n\t\t\telse if (fields.avatar.startsWith('http'))\n\t\t\t{\n\t\t\t\tavatar = fields.avatar;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tavatar = options.host + fields.avatar;\n\t\t\t}\n\n\t\t\tif (avatar)\n\t\t\t{\n\t\t\t\tresult.avatar = encodeURI(avatar);\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.color === \"string\")\n\t\t{\n\t\t\tresult.color = fields.color.toString();\n\t\t}\n\n\t\tif (typeof fields.type === \"string\")\n\t\t{\n\t\t\tresult.type = fields.type.toString();\n\t\t}\n\n\t\tif (typeof fields.entity_type !== 'undefined')\n\t\t{\n\t\t\tfields.entityType = fields.entity_type;\n\t\t}\n\t\tif (typeof fields.entityType === \"string\")\n\t\t{\n\t\t\tresult.entityType = fields.entityType.toString();\n\t\t}\n\t\tif (typeof fields.entity_id !== 'undefined')\n\t\t{\n\t\t\tfields.entityId = fields.entity_id;\n\t\t}\n\t\tif (typeof fields.entityId === \"string\" || typeof fields.entityId === \"number\")\n\t\t{\n\t\t\tresult.entityId = fields.entityId.toString();\n\t\t}\n\n\t\tif (typeof fields.entity_data_1 !== 'undefined')\n\t\t{\n\t\t\tfields.entityData1 = fields.entity_data_1;\n\t\t}\n\t\tif (typeof fields.entityData1 === \"string\")\n\t\t{\n\t\t\tresult.entityData1 = fields.entityData1.toString();\n\t\t}\n\n\t\tif (typeof fields.entity_data_2 !== 'undefined')\n\t\t{\n\t\t\tfields.entityData2 = fields.entity_data_2;\n\t\t}\n\t\tif (typeof fields.entityData2 === \"string\")\n\t\t{\n\t\t\tresult.entityData2 = fields.entityData2.toString();\n\t\t}\n\n\t\tif (typeof fields.entity_data_3 !== 'undefined')\n\t\t{\n\t\t\tfields.entityData3 = fields.entity_data_3;\n\t\t}\n\t\tif (typeof fields.entityData3 === \"string\")\n\t\t{\n\t\t\tresult.entityData3 = fields.entityData3.toString();\n\t\t}\n\n\t\tif (typeof fields.date_create !== 'undefined')\n\t\t{\n\t\t\tfields.dateCreate = fields.date_create;\n\t\t}\n\n\t\tif (typeof fields.dateCreate !== \"undefined\")\n\t\t{\n\t\t\tresult.dateCreate = Utils.date.cast(fields.dateCreate);\n\t\t}\n\n\t\tif (typeof fields.dateLastOpen !== \"undefined\")\n\t\t{\n\t\t\tresult.dateLastOpen = Utils.date.cast(fields.dateLastOpen);\n\t\t}\n\n\t\tif (typeof fields.restrictions === 'object' && fields.restrictions)\n\t\t{\n\t\t\tresult.restrictions = {};\n\n\t\t\tif (typeof fields.restrictions.avatar === 'boolean')\n\t\t\t{\n\t\t\t\tresult.restrictions.avatar = fields.restrictions.avatar;\n\t\t\t}\n\n\t\t\tif (typeof fields.restrictions.extend === 'boolean')\n\t\t\t{\n\t\t\t\tresult.restrictions.extend = fields.restrictions.extend;\n\t\t\t}\n\n\t\t\tif (typeof fields.restrictions.leave === 'boolean')\n\t\t\t{\n\t\t\t\tresult.restrictions.leave = fields.restrictions.leave;\n\t\t\t}\n\n\t\t\tif (typeof fields.restrictions.leave_owner === 'boolean')\n\t\t\t{\n\t\t\t\tresult.restrictions.leaveOwner = fields.restrictions.leave_owner;\n\t\t\t}\n\n\t\t\tif (typeof fields.restrictions.rename === 'boolean')\n\t\t\t{\n\t\t\t\tresult.restrictions.rename = fields.restrictions.rename;\n\t\t\t}\n\n\t\t\tif (typeof fields.restrictions.send === 'boolean')\n\t\t\t{\n\t\t\t\tresult.restrictions.send = fields.restrictions.send;\n\t\t\t}\n\n\t\t\tif (typeof fields.restrictions.user_list === 'boolean')\n\t\t\t{\n\t\t\t\tresult.restrictions.userList = fields.restrictions.user_list;\n\t\t\t}\n\n\t\t\tif (typeof fields.restrictions.mute === 'boolean')\n\t\t\t{\n\t\t\t\tresult.restrictions.mute = fields.restrictions.mute;\n\t\t\t}\n\n\t\t\tif (typeof fields.restrictions.call === 'boolean')\n\t\t\t{\n\t\t\t\tresult.restrictions.call = fields.restrictions.call;\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.public === 'object' && fields.public)\n\t\t{\n\t\t\tresult.public = {};\n\n\t\t\tif (typeof fields.public.code === 'string')\n\t\t\t{\n\t\t\t\tresult.public.code = fields.public.code;\n\t\t\t}\n\n\t\t\tif (typeof fields.public.link === 'string')\n\t\t\t{\n\t\t\t\tresult.public.link = fields.public.link;\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n}","/**\n * Bitrix Messenger\n * Users model (Vuex Builder model)\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2020 Bitrix\n */\n\nimport {Vue} from 'ui.vue';\nimport {VuexBuilderModel} from 'ui.vue.vuex';\nimport {Utils} from \"im.lib.utils\";\n\nexport class UsersModel extends VuexBuilderModel\n{\n\tgetName()\n\t{\n\t\treturn 'users';\n\t}\n\n\tgetState()\n\t{\n\t\tthis.startOnlineCheckInterval();\n\n\t\treturn {\n\t\t\thost: this.getVariable('host', location.protocol+'//'+location.host),\n\t\t\tcollection: {},\n\t\t\tonlineList: [],\n\t\t\tmobileOnlineList: [],\n\t\t\tabsentList: []\n\t\t}\n\t}\n\n\tgetElementState(params = {})\n\t{\n\t\tlet {\n\t\t\tid = 0,\n\t\t\tname = this.getVariable('default.name', ''),\n\t\t\tfirstName = this.getVariable('default.name', ''),\n\t\t\tlastName = '',\n\t\t} = params;\n\n\t\treturn {\n\t\t\tid,\n\t\t\tname,\n\t\t\tfirstName,\n\t\t\tlastName,\n\t\t\tworkPosition: \"\",\n\t\t\tcolor: \"#048bd0\",\n\t\t\tavatar: \"\",\n\t\t\tgender: \"M\",\n\t\t\tbirthday: false,\n\t\t\tisBirthday: false,\n\t\t\textranet: false,\n\t\t\tnetwork: false,\n\t\t\tbot: false,\n\t\t\tconnector: false,\n\t\t\texternalAuthId: \"default\",\n\t\t\tstatus: \"online\",\n\t\t\tidle: false,\n\t\t\tlastActivityDate: false,\n\t\t\tmobileLastDate: false,\n\t\t\tisOnline: false,\n\t\t\tisMobileOnline: false,\n\t\t\tabsent: false,\n\t\t\tisAbsent: false,\n\t\t\tdepartments: [],\n\t\t\tphones: {\n\t\t\t\tworkPhone: \"\",\n\t\t\t\tpersonalMobile: \"\",\n\t\t\t\tpersonalPhone: \"\",\n\t\t\t\tinnerPhone: \"\",\n\t\t\t},\n\t\t\tinit: false\n\t\t};\n\t}\n\n\tgetGetters()\n\t{\n\t\treturn {\n\t\t\tget: state => (userId, getTemporary = false) =>\n\t\t\t{\n\t\t\t\tuserId = parseInt(userId);\n\n\t\t\t\tif (userId <= 0)\n\t\t\t\t{\n\t\t\t\t\tif (getTemporary)\n\t\t\t\t\t{\n\t\t\t\t\t\tuserId = 0;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\t!getTemporary\n\t\t\t\t\t&& (!state.collection[userId] || !state.collection[userId].init)\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tif (!state.collection[userId])\n\t\t\t\t{\n\t\t\t\t\treturn this.getElementState({id: userId});\n\t\t\t\t}\n\n\t\t\t\treturn state.collection[userId];\n\t\t\t},\n\t\t\tgetBlank: state => params =>\n\t\t\t{\n\t\t\t\treturn this.getElementState(params);\n\t\t\t},\n\t\t\tgetList: state => (userList) => {\n\t\t\t\tconst result = [];\n\n\t\t\t\tif (!Array.isArray(userList))\n\t\t\t\t{\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tuserList.forEach(id => {\n\t\t\t\t\tif (state.collection[id])\n\t\t\t\t\t{\n\t\t\t\t\t\tresult.push(state.collection[id]);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tresult.push(this.getElementState({id}));\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}\n\t}\n\n\tgetActions()\n\t{\n\t\treturn {\n\t\t\tset: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (payload instanceof Array)\n\t\t\t\t{\n\t\t\t\t\tpayload = payload.map(user => {\n\t\t\t\t\t\treturn Object.assign(\n\t\t\t\t\t\t\t{},\n\t\t\t\t\t\t\tthis.getElementState(),\n\t\t\t\t\t\t\tthis.validate(Object.assign({}, user), {host: store.state.host}),\n\t\t\t\t\t\t\t{init: true}\n\t\t\t\t\t\t);\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\tlet result = [];\n\t\t\t\t\tresult.push(Object.assign(\n\t\t\t\t\t\t{},\n\t\t\t\t\t\tthis.getElementState(),\n\t\t\t\t\t\tthis.validate(Object.assign({}, payload), {host: store.state.host}),\n\t\t\t\t\t\t{init: true}\n\t\t\t\t\t));\n\t\t\t\t\tpayload = result;\n\t\t\t\t}\n\n\t\t\t\tstore.commit('set', payload);\n\t\t\t},\n\t\t\tupdate: (store, payload) =>\n\t\t\t{\n\t\t\t\tpayload.id = parseInt(payload.id);\n\n\t\t\t\tif (\n\t\t\t\t\ttypeof store.state.collection[payload.id] === 'undefined'\n\t\t\t\t\t|| store.state.collection[payload.id].init === false\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\tstore.commit('update', {\n\t\t\t\t\tid : payload.id,\n\t\t\t\t\tfields : this.validate(Object.assign({}, payload.fields), {host: store.state.host})\n\t\t\t\t});\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tdelete: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('delete', payload.id);\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tsaveState: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('saveState', {});\n\t\t\t\treturn true;\n\t\t\t},\n\t\t}\n\t}\n\n\tgetMutations()\n\t{\n\t\treturn {\n\t\t\tset: (state, payload) =>\n\t\t\t{\n\t\t\t\tfor (let element of payload)\n\t\t\t\t{\n\t\t\t\t\tthis.initCollection(state, {id: element.id});\n\n\t\t\t\t\tstate.collection[element.id] = Object.assign(state.collection[element.id], element);\n\n\t\t\t\t\tlet status = Utils.user.getOnlineStatus(element);\n\t\t\t\t\tif (status.isOnline)\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.collection[element.id].isOnline = true;\n\t\t\t\t\t\tthis.addToOnlineList(state, element.id);\n\t\t\t\t\t}\n\n\t\t\t\t\tlet mobileStatus = Utils.user.isMobileActive(element);\n\t\t\t\t\tif (mobileStatus)\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.collection[element.id].isMobileOnline = true;\n\t\t\t\t\t\tthis.addToMobileOnlineList(state, element.id);\n\t\t\t\t\t}\n\n\t\t\t\t\tif (element.birthday)\n\t\t\t\t\t{\n\t\t\t\t\t\tlet today = Utils.date.format(new Date(), \"d-m\");\n\t\t\t\t\t\tif (element.birthday === today)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstate.collection[element.id].isBirthday = true;\n\n\t\t\t\t\t\t\tlet timeToNextMidnight = this.getTimeToNextMidnight();\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tstate.collection[element.id].isBirthday = false;\n\t\t\t\t\t\t\t}, timeToNextMidnight);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tif (element.absent)\n\t\t\t\t\t{\n\t\t\t\t\t\telement.isAbsent = true;\n\n\t\t\t\t\t\tif (!state.absentList.includes(element.id))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tthis.addToAbsentList(state, element.id);\n\n\t\t\t\t\t\t\tlet timeToNextMidnight = this.getTimeToNextMidnight();\n\t\t\t\t\t\t\tlet timeToNextDay = 1000*60*60*24;\n\t\t\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\t\t\tsetInterval(() => this.startAbsentCheckInterval(state), timeToNextDay);\n\t\t\t\t\t\t\t}, timeToNextMidnight);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\tthis.saveState(state);\n\t\t\t\t}\n\t\t\t},\n\t\t\tupdate: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.initCollection(state, payload);\n\n\t\t\t\tif (typeof payload.fields.lastActivityDate !== 'undefined' && state.collection[payload.id].lastActivityDate)\n\t\t\t\t{\n\t\t\t\t\tlet lastActivityDate = state.collection[payload.id].lastActivityDate.getTime();\n\t\t\t\t\tlet newActivityDate = payload.fields.lastActivityDate.getTime();\n\t\t\t\t\tif (newActivityDate > lastActivityDate)\n\t\t\t\t\t{\n\t\t\t\t\t\tlet status = Utils.user.getOnlineStatus(payload.fields);\n\t\t\t\t\t\tif (status.isOnline)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tstate.collection[payload.id].isOnline = true;\n\t\t\t\t\t\t\tthis.addToOnlineList(state, payload.fields.id);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tif (\n\t\t\t\t\ttypeof payload.fields.mobileLastDate !== 'undefined'\n\t\t\t\t\t&& state.collection[payload.id].mobileLastDate !== payload.fields.mobileLastDate\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\tlet mobileStatus = Utils.user.isMobileActive(payload.fields);\n\t\t\t\t\tif (mobileStatus)\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.collection[payload.id].isMobileOnline = true;\n\t\t\t\t\t\tthis.addToMobileOnlineList(state, payload.fields.id);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tstate.collection[payload.id] = Object.assign(\n\t\t\t\t\tstate.collection[payload.id],\n\t\t\t\t\tpayload.fields\n\t\t\t\t);\n\n\t\t\t\tthis.saveState(state);\n\t\t\t},\n\t\t\tdelete: (state, payload) =>\n\t\t\t{\n\t\t\t\tdelete state.collection[payload.id];\n\t\t\t\tthis.saveState(state);\n\t\t\t},\n\t\t\tsaveState: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.saveState(state);\n\t\t\t},\n\t\t}\n\t}\n\n\tinitCollection(state, payload)\n\t{\n\t\tif (typeof state.collection[payload.id] !== 'undefined')\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tVue.set(state.collection, payload.id, this.getElementState());\n\n\t\treturn true;\n\t}\n\n\tgetSaveUserList()\n\t{\n\t\tif (!this.db)\n\t\t{\n\t\t\treturn [];\n\t\t}\n\n\t\tif (!this.store.getters['messages/getSaveUserList'])\n\t\t{\n\t\t\treturn [];\n\t\t}\n\n\t\tlet list = this.store.getters['messages/getSaveUserList']();\n\t\tif (!list)\n\t\t{\n\t\t\treturn [];\n\t\t}\n\n\t\treturn list;\n\t}\n\n\tgetSaveTimeout()\n\t{\n\t\treturn 250;\n\t}\n\n\tsaveState(state)\n\t{\n\t\tif (!this.isSaveAvailable())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tsuper.saveState(() =>\n\t\t{\n\t\t\tlet list = this.getSaveUserList();\n\t\t\tif (!list)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet storedState = {\n\t\t\t\tcollection: {},\n\t\t\t};\n\n\t\t\tlet exceptionList = {\n\t\t\t\tabsent: true,\n\t\t\t\tidle: true,\n\t\t\t\tmobileLastDate: true,\n\t\t\t\tlastActivityDate: true,\n\t\t\t};\n\n\t\t\tfor (let chatId in list)\n\t\t\t{\n\t\t\t\tif (!list.hasOwnProperty(chatId))\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tlist[chatId].forEach(userId =>\n\t\t\t\t{\n\t\t\t\t\tif (!state.collection[userId])\n\t\t\t\t\t{\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tstoredState.collection[userId] = this.cloneState(state.collection[userId], exceptionList);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn storedState;\n\t\t});\n\t}\n\n\tvalidate(fields, options = {})\n\t{\n\t\tconst result = {};\n\n\t\toptions.host = options.host || this.getState().host;\n\n\t\tif (typeof fields.id === \"number\" || typeof fields.id === \"string\")\n\t\t{\n\t\t\tresult.id = parseInt(fields.id);\n\t\t}\n\n\t\tif (typeof fields.first_name !== \"undefined\")\n\t\t{\n\t\t\tfields.firstName = Utils.text.htmlspecialcharsback(fields.first_name);\n\t\t}\n\t\tif (typeof fields.last_name !== \"undefined\")\n\t\t{\n\t\t\tfields.lastName = Utils.text.htmlspecialcharsback(fields.last_name);\n\t\t}\n\t\tif (typeof fields.name === \"string\" || typeof fields.name === \"number\")\n\t\t{\n\t\t\tfields.name = Utils.text.htmlspecialcharsback(fields.name.toString());\n\t\t\tresult.name = fields.name;\n\t\t}\n\n\t\tif (typeof fields.firstName === \"string\" || typeof fields.firstName === \"number\")\n\t\t{\n\t\t\tresult.firstName = Utils.text.htmlspecialcharsback(fields.firstName.toString());\n\t\t}\n\t\tif (typeof fields.lastName === \"string\" || typeof fields.lastName === \"number\")\n\t\t{\n\t\t\tresult.lastName = Utils.text.htmlspecialcharsback(fields.lastName.toString());\n\t\t}\n\n\t\tif (typeof fields.work_position !== \"undefined\")\n\t\t{\n\t\t\tfields.workPosition = fields.work_position;\n\t\t}\n\t\tif (typeof fields.workPosition === \"string\" || typeof fields.workPosition === \"number\")\n\t\t{\n\t\t\tresult.workPosition = fields.workPosition.toString();\n\t\t}\n\n\t\tif (typeof fields.color === \"string\")\n\t\t{\n\t\t\tresult.color = fields.color;\n\t\t}\n\n\t\tif (typeof fields.avatar === 'string')\n\t\t{\n\t\t\tlet avatar;\n\n\t\t\tif (!fields.avatar || fields.avatar.endsWith('/js/im/images/blank.gif'))\n\t\t\t{\n\t\t\t\tavatar = '';\n\t\t\t}\n\t\t\telse if (fields.avatar.startsWith('http'))\n\t\t\t{\n\t\t\t\tavatar = fields.avatar;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tavatar = options.host + fields.avatar;\n\t\t\t}\n\n\t\t\tif (avatar)\n\t\t\t{\n\t\t\t\tresult.avatar = encodeURI(avatar);\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.gender !== 'undefined')\n\t\t{\n\t\t\tresult.gender = fields.gender === 'F'? 'F': 'M';\n\t\t}\n\n\t\tif (typeof fields.birthday === \"string\")\n\t\t{\n\t\t\tresult.birthday = fields.birthday;\n\t\t}\n\n\t\tif (typeof fields.extranet === \"boolean\")\n\t\t{\n\t\t\tresult.extranet = fields.extranet;\n\t\t}\n\n\t\tif (typeof fields.network === \"boolean\")\n\t\t{\n\t\t\tresult.network = fields.network;\n\t\t}\n\n\t\tif (typeof fields.bot === \"boolean\")\n\t\t{\n\t\t\tresult.bot = fields.bot;\n\t\t}\n\n\t\tif (typeof fields.connector === \"boolean\")\n\t\t{\n\t\t\tresult.connector = fields.connector;\n\t\t}\n\n\t\tif (typeof fields.external_auth_id !== \"undefined\")\n\t\t{\n\t\t\tfields.externalAuthId = fields.external_auth_id;\n\t\t}\n\t\tif (typeof fields.externalAuthId === \"string\" && fields.externalAuthId)\n\t\t{\n\t\t\tresult.externalAuthId = fields.externalAuthId;\n\t\t}\n\n\t\tif (typeof fields.status === \"string\")\n\t\t{\n\t\t\tresult.status = fields.status;\n\t\t}\n\n\t\tif (typeof fields.idle !== \"undefined\")\n\t\t{\n\t\t\tresult.idle = Utils.date.cast(fields.idle, false);\n\t\t}\n\t\tif (typeof fields.last_activity_date !== \"undefined\")\n\t\t{\n\t\t\tfields.lastActivityDate = fields.last_activity_date;\n\t\t}\n\t\tif (typeof fields.lastActivityDate !== \"undefined\")\n\t\t{\n\t\t\tresult.lastActivityDate = Utils.date.cast(fields.lastActivityDate, false);\n\t\t}\n\t\tif (typeof fields.mobile_last_date !== \"undefined\")\n\t\t{\n\t\t\tfields.mobileLastDate = fields.mobile_last_date;\n\t\t}\n\t\tif (typeof fields.mobileLastDate !== \"undefined\")\n\t\t{\n\t\t\tresult.mobileLastDate = Utils.date.cast(fields.mobileLastDate, false);\n\t\t}\n\n\t\tif (typeof fields.absent !== \"undefined\")\n\t\t{\n\t\t\tresult.absent = Utils.date.cast(fields.absent, false);\n\t\t}\n\n\t\tif (typeof fields.departments !== 'undefined')\n\t\t{\n\t\t\tresult.departments = [];\n\n\t\t\tif (fields.departments instanceof Array)\n\t\t\t{\n\t\t\t\tfields.departments.forEach(departmentId =>\n\t\t\t\t{\n\t\t\t\t\tdepartmentId = parseInt(departmentId);\n\t\t\t\t\tif (departmentId > 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tresult.departments.push(departmentId);\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.phones === 'object' && fields.phones)\n\t\t{\n\t\t\tresult.phones = {};\n\n\t\t\tif (typeof fields.phones.work_phone !== \"undefined\")\n\t\t\t{\n\t\t\t\tfields.phones.workPhone = fields.phones.work_phone;\n\t\t\t}\n\t\t\tif (typeof fields.phones.workPhone === 'string' || typeof fields.phones.workPhone === 'number')\n\t\t\t{\n\t\t\t\tresult.phones.workPhone = fields.phones.workPhone.toString();\n\t\t\t}\n\n\t\t\tif (typeof fields.phones.personal_mobile !== \"undefined\")\n\t\t\t{\n\t\t\t\tfields.phones.personalMobile = fields.phones.personal_mobile;\n\t\t\t}\n\t\t\tif (typeof fields.phones.personalMobile === 'string' || typeof fields.phones.personalMobile === 'number')\n\t\t\t{\n\t\t\t\tresult.phones.personalMobile = fields.phones.personalMobile.toString();\n\t\t\t}\n\n\t\t\tif (typeof fields.phones.personal_phone !== \"undefined\")\n\t\t\t{\n\t\t\t\tfields.phones.personalPhone = fields.phones.personal_phone;\n\t\t\t}\n\t\t\tif (typeof fields.phones.personalPhone === 'string' || typeof fields.phones.personalPhone === 'number')\n\t\t\t{\n\t\t\t\tresult.phones.personalPhone = fields.phones.personalPhone.toString();\n\t\t\t}\n\n\t\t\tif (typeof fields.phones.inner_phone !== \"undefined\")\n\t\t\t{\n\t\t\t\tfields.phones.innerPhone = fields.phones.inner_phone;\n\t\t\t}\n\t\t\tif (typeof fields.phones.innerPhone === 'string' || typeof fields.phones.innerPhone === 'number')\n\t\t\t{\n\t\t\t\tresult.phones.innerPhone = fields.phones.innerPhone.toString();\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\taddToOnlineList(state, id)\n\t{\n\t\tif (!state.onlineList.includes(id))\n\t\t{\n\t\t\tstate.onlineList.push(id);\n\t\t}\n\t}\n\n\taddToMobileOnlineList(state, id)\n\t{\n\t\tif (!state.mobileOnlineList.includes(id))\n\t\t{\n\t\t\tstate.mobileOnlineList.push(id);\n\t\t}\n\t}\n\n\taddToAbsentList(state, id)\n\t{\n\t\tif (!state.absentList.includes(id))\n\t\t{\n\t\t\tstate.absentList.push(id);\n\t\t}\n\t}\n\n\tgetTimeToNextMidnight()\n\t{\n\t\tlet nextMidnight = new Date(new Date().setHours(24,0,0)).getTime();\n\t\treturn nextMidnight - new Date();\n\t}\n\n\tstartAbsentCheckInterval(state)\n\t{\n\t\tfor (let userId of state.absentList)\n\t\t{\n\t\t\tlet user = state.collection[userId];\n\n\t\t\tif (!user)\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\t\t\tlet currentTime = new Date().getTime();\n\t\t\tlet absentEnd = new Date(state.collection[userId].absent).getTime();\n\n\t\t\tif (absentEnd <= currentTime)\n\t\t\t{\n\t\t\t\tstate.absentList = state.absentList.filter(element => {\n\t\t\t\t\treturn element !== userId;\n\t\t\t\t});\n\t\t\t\tuser.isAbsent = false;\n\t\t\t}\n\t\t}\n\t}\n\n\tstartOnlineCheckInterval()\n\t{\n\t\tconst intervalTime = 60000;\n\n\t\tsetInterval(() => {\n\t\t\tfor (let userId of this.store.state.users.onlineList)\n\t\t\t{\n\t\t\t\tlet user = this.store.state.users.collection[userId];\n\n\t\t\t\tif (!user)\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tlet status = Utils.user.getOnlineStatus(user);\n\t\t\t\tif (status.isOnline)\n\t\t\t\t{\n\t\t\t\t\tuser.isOnline = true;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tuser.isOnline = false;\n\t\t\t\t\tthis.store.state.users.onlineList = this.store.state.users.onlineList.filter(element => {\n\t\t\t\t\t\treturn element !== userId\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfor (let userId of this.store.state.users.mobileOnlineList)\n\t\t\t{\n\t\t\t\tlet user = this.store.state.users.collection[userId];\n\n\t\t\t\tif (!user)\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tlet mobileStatus = Utils.user.isMobileActive(user);\n\t\t\t\tif (mobileStatus)\n\t\t\t\t{\n\t\t\t\t\tuser.isMobileOnline = true;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tuser.isMobileOnline = false;\n\t\t\t\t\tthis.store.state.users.mobileOnlineList = this.store.state.users.mobileOnlineList.filter(element => {\n\t\t\t\t\t\treturn element !== userId\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t}\n\t\t}, intervalTime);\n\t}\n}","/**\n * Bitrix Messenger\n * Files model (Vuex Builder model)\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2020 Bitrix\n */\n\n\nimport {Vue} from 'ui.vue';\nimport {VuexBuilderModel} from 'ui.vue.vuex';\nimport {FileStatus, FileType, MutationType} from 'im.const';\nimport {Utils} from \"im.lib.utils\";\n\nexport class FilesModel extends VuexBuilderModel\n{\n\tstatic maxDiskFileSize = 5242880;\n\n\tgetName()\n\t{\n\t\treturn 'files';\n\t}\n\n\tgetState()\n\t{\n\t\treturn {\n\t\t\tcreated: 0,\n\t\t\thost: this.getVariable('host', location.protocol+'//'+location.host),\n\t\t\tcollection: {},\n\t\t\tindex: {},\n\t\t}\n\t}\n\n\tgetElementState(params = {})\n\t{\n\t\tlet {\n\t\t\tid = 0,\n\t\t\tchatId = 0,\n\t\t\tname = this.getVariable('default.name', ''),\n\t\t} = params;\n\n\t\treturn {\n\t\t\tid,\n\t\t\tchatId,\n\t\t\tname,\n\t\t\ttemplateId: id,\n\t\t\tdate: new Date(),\n\t\t\ttype: 'file',\n\t\t\textension: \"\",\n\t\t\ticon: \"empty\",\n\t\t\tsize: 0,\n\t\t\timage: false,\n\t\t\tstatus: FileStatus.done,\n\t\t\tprogress: 100,\n\t\t\tauthorId: 0,\n\t\t\tauthorName: \"\",\n\t\t\turlPreview: \"\",\n\t\t\turlShow: \"\",\n\t\t\turlDownload: \"\",\n\t\t\tinit: false,\n\t\t\tviewerAttrs: {}\n\t\t};\n\t}\n\n\tgetGetters()\n\t{\n\t\treturn {\n\t\t\tget: state => (chatId, fileId, getTemporary = false) =>\n\t\t\t{\n\t\t\t\tif (!chatId || !fileId)\n\t\t\t\t{\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tif (!state.index[chatId] || !state.index[chatId][fileId])\n\t\t\t\t{\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\tif (!getTemporary && !state.index[chatId][fileId].init)\n\t\t\t\t{\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn state.index[chatId][fileId];\n\t\t\t},\n\t\t\tgetList: state => chatId =>\n\t\t\t{\n\t\t\t\tif (!state.index[chatId])\n\t\t\t\t{\n\t\t\t\t\treturn null;\n\t\t\t\t}\n\n\t\t\t\treturn state.index[chatId];\n\t\t\t},\n\t\t\tgetBlank: state => params =>\n\t\t\t{\n\t\t\t\treturn this.getElementState(params);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetActions()\n\t{\n\t\treturn {\n\t\t\tadd: (store, payload) =>\n\t\t\t{\n\t\t\t\tlet result = this.validate(Object.assign({}, payload), {host: store.state.host});\n\t\t\t\tif (payload.id)\n\t\t\t\t{\n\t\t\t\t\tresult.id = payload.id;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult.id = 'temporary' + (new Date).getTime() + store.state.created;\n\t\t\t\t}\n\t\t\t\tresult.templateId = result.id;\n\t\t\t\tresult.init = true;\n\n\t\t\t\tstore.commit('add', Object.assign({}, this.getElementState(), result));\n\n\t\t\t\treturn result.id;\n\t\t\t},\n\t\t\tset: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (payload instanceof Array)\n\t\t\t\t{\n\t\t\t\t\tpayload = payload.map(file => {\n\t\t\t\t\t\tlet result = this.validate(Object.assign({}, file), {host: store.state.host});\n\t\t\t\t\t\tresult.templateId = result.id;\n\t\t\t\t\t\treturn Object.assign({}, this.getElementState(), result, {init: 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\tlet result = this.validate(Object.assign({}, payload), {host: store.state.host});\n\t\t\t\t\tresult.templateId = result.id;\n\t\t\t\t\tpayload = [];\n\t\t\t\t\tpayload.push(\n\t\t\t\t\t\tObject.assign({}, this.getElementState(), result, {init: true})\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tstore.commit('set', {\n\t\t\t\t\tinsertType : MutationType.setAfter,\n\t\t\t\t\tdata : payload\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetBefore: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (payload instanceof Array)\n\t\t\t\t{\n\t\t\t\t\tpayload = payload.map(file => {\n\t\t\t\t\t\tlet result = this.validate(Object.assign({}, file), {host: store.state.host});\n\t\t\t\t\t\tresult.templateId = result.id;\n\t\t\t\t\t\treturn Object.assign({}, this.getElementState(), result, {init: 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\tlet result = this.validate(Object.assign({}, payload), {host: store.state.host});\n\t\t\t\t\tresult.templateId = result.id;\n\t\t\t\t\tpayload = [];\n\t\t\t\t\tpayload.push(\n\t\t\t\t\t\tObject.assign({}, this.getElementState(), result, {init: true})\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tstore.commit('set', {\n\t\t\t\t\tactionName: 'setBefore',\n\t\t\t\t\tinsertType : MutationType.setBefore,\n\t\t\t\t\tdata : payload\n\t\t\t\t});\n\t\t\t},\n\t\t\tupdate: (store, payload) =>\n\t\t\t{\n\t\t\t\tlet result = this.validate(Object.assign({}, payload.fields), {host: store.state.host});\n\n\t\t\t\tstore.commit('initCollection', {chatId: payload.chatId});\n\n\t\t\t\tlet index = store.state.collection[payload.chatId].findIndex(el => el.id === payload.id);\n\t\t\t\tif (index < 0)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tstore.commit('update', {\n\t\t\t\t\tid : payload.id,\n\t\t\t\t\tchatId : payload.chatId,\n\t\t\t\t\tindex : index,\n\t\t\t\t\tfields : result\n\t\t\t\t});\n\n\t\t\t\tif (payload.fields.blink)\n\t\t\t\t{\n\t\t\t\t\tsetTimeout(() => {\n\t\t\t\t\t\tstore.commit('update', {\n\t\t\t\t\t\t\tid : payload.id ,\n\t\t\t\t\t\t\tchatId : payload.chatId,\n\t\t\t\t\t\t\tfields : {blink: false}\n\t\t\t\t\t\t});\n\t\t\t\t\t}, 1000);\n\t\t\t\t}\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tdelete: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('delete', {\n\t\t\t\t\tid : payload.id,\n\t\t\t\t\tchatId : payload.chatId\n\t\t\t\t});\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tsaveState: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('saveState', {});\n\t\t\t\treturn true;\n\t\t\t},\n\t\t}\n\t}\n\n\tgetMutations()\n\t{\n\t\treturn {\n\t\t\tinitCollection: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.initCollection(state, payload);\n\t\t\t},\n\t\t\tadd: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.initCollection(state, payload);\n\n\t\t\t\tstate.collection[payload.chatId].push(payload);\n\t\t\t\tstate.index[payload.chatId][payload.id] = payload;\n\n\t\t\t\tstate.created += 1;\n\n\t\t\t\tthis.saveState(state);\n\t\t\t},\n\t\t\tset: (state, payload) =>\n\t\t\t{\n\t\t\t\tfor (let element of payload.data)\n\t\t\t\t{\n\t\t\t\t\tthis.initCollection(state, {chatId: element.chatId});\n\n\t\t\t\t\tlet index = state.collection[element.chatId].findIndex(el => el.id === element.id);\n\t\t\t\t\tif (index > -1)\n\t\t\t\t\t{\n\t\t\t\t\t\tdelete element.templateId;\n\t\t\t\t\t\tstate.collection[element.chatId][index] = Object.assign(state.collection[element.chatId][index], element);\n\t\t\t\t\t}\n\t\t\t\t\telse if (payload.insertType === MutationType.setBefore)\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.collection[element.chatId].unshift(element);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.collection[element.chatId].push(element);\n\t\t\t\t\t}\n\n\t\t\t\t\tstate.index[element.chatId][element.id] = element;\n\n\t\t\t\t\tthis.saveState(state);\n\t\t\t\t}\n\t\t\t},\n\t\t\tupdate: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.initCollection(state, payload);\n\n\t\t\t\tlet index = -1;\n\t\t\t\tif (typeof payload.index !== 'undefined' && state.collection[payload.chatId][payload.index])\n\t\t\t\t{\n\t\t\t\t\tindex = payload.index;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tindex = state.collection[payload.chatId].findIndex(el => el.id === payload.id);\n\t\t\t\t}\n\n\t\t\t\tif (index >= 0)\n\t\t\t\t{\n\t\t\t\t\tdelete payload.fields.templateId;\n\t\t\t\t\tlet element = Object.assign(\n\t\t\t\t\t\tstate.collection[payload.chatId][index],\n\t\t\t\t\t\tpayload.fields\n\t\t\t\t\t);\n\t\t\t\t\tstate.collection[payload.chatId][index] = element;\n\t\t\t\t\tstate.index[payload.chatId][element.id] = element;\n\n\t\t\t\t\tthis.saveState(state);\n\t\t\t\t}\n\t\t\t},\n\t\t\tdelete: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.initCollection(state, payload);\n\n\t\t\t\tstate.collection[payload.chatId] = state.collection[payload.chatId].filter(element => element.id !== payload.id);\n\t\t\t\tdelete state.index[payload.chatId][payload.id];\n\n\t\t\t\tthis.saveState(state);\n\t\t\t},\n\t\t\tsaveState: (state, payload) =>\n\t\t\t{\n\t\t\t\tthis.saveState(state);\n\t\t\t},\n\t\t}\n\t}\n\n\tinitCollection(state, payload)\n\t{\n\t\tif (typeof state.collection[payload.chatId] !== 'undefined')\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tVue.set(state.collection, payload.chatId, []);\n\t\tVue.set(state.index, payload.chatId, {});\n\n\t\treturn true;\n\t}\n\n\tgetLoadedState(state)\n\t{\n\t\tif (!state || typeof state !== 'object')\n\t\t{\n\t\t\treturn state;\n\t\t}\n\n\t\tif (typeof state.collection !== 'object')\n\t\t{\n\t\t\treturn state;\n\t\t}\n\n\t\tstate.index = {};\n\n\t\tfor (let chatId in state.collection)\n\t\t{\n\t\t\tif (!state.collection.hasOwnProperty(chatId))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\tstate.index[chatId] = {};\n\n\t\t\tstate.collection[chatId]\n\t\t\t\t.filter(file => file != null)\n\t\t\t\t.forEach(file => {\n\t\t\t\t\tstate.index[chatId][file.id] = file;\n\t\t\t});\n\t\t}\n\n\t\treturn state;\n\t}\n\n\tgetSaveFileList()\n\t{\n\t\tif (!this.db)\n\t\t{\n\t\t\treturn [];\n\t\t}\n\n\t\tif (!this.store.getters['messages/getSaveFileList'])\n\t\t{\n\t\t\treturn [];\n\t\t}\n\n\t\tlet list = this.store.getters['messages/getSaveFileList']();\n\t\tif (!list)\n\t\t{\n\t\t\treturn [];\n\t\t}\n\n\t\treturn list;\n\t}\n\n\tgetSaveTimeout()\n\t{\n\t\treturn 250;\n\t}\n\n\tsaveState(state)\n\t{\n\t\tif (!this.isSaveAvailable())\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tsuper.saveState(() =>\n\t\t{\n\t\t\tlet list = this.getSaveFileList();\n\t\t\tif (!list)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet storedState = {\n\t\t\t\tcollection: {},\n\t\t\t};\n\n\t\t\tfor (let chatId in list)\n\t\t\t{\n\t\t\t\tif (!list.hasOwnProperty(chatId))\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tlist[chatId].forEach(fileId =>\n\t\t\t\t{\n\t\t\t\t\tif (!state.index[chatId])\n\t\t\t\t\t{\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!state.index[chatId][fileId])\n\t\t\t\t\t{\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tif (!storedState.collection[chatId])\n\t\t\t\t\t{\n\t\t\t\t\t\tstoredState.collection[chatId] = [];\n\t\t\t\t\t}\n\n\t\t\t\t\tstoredState.collection[chatId].push(\n\t\t\t\t\t\tstate.index[chatId][fileId]\n\t\t\t\t\t);\n\t\t\t\t});\n\t\t\t}\n\n\t\t\treturn storedState;\n\t\t});\n\t}\n\n\tvalidate(fields, options = {})\n\t{\n\t\tconst result = {};\n\n\t\toptions.host = options.host || this.getState().host;\n\n\t\tif (typeof fields.id === \"number\")\n\t\t{\n\t\t\tresult.id = fields.id;\n\t\t}\n\t\telse if (typeof fields.id === \"string\")\n\t\t{\n\t\t\tif (fields.id.startsWith('temporary'))\n\t\t\t{\n\t\t\t\tresult.id = fields.id;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult.id = parseInt(fields.id);\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.templateId === \"number\")\n\t\t{\n\t\t\tresult.templateId = fields.templateId;\n\t\t}\n\t\telse if (typeof fields.templateId === \"string\")\n\t\t{\n\t\t\tif (fields.templateId.startsWith('temporary'))\n\t\t\t{\n\t\t\t\tresult.templateId = fields.templateId;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult.templateId = parseInt(fields.templateId);\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.chatId === \"number\" || typeof fields.chatId === \"string\")\n\t\t{\n\t\t\tresult.chatId = parseInt(fields.chatId);\n\t\t}\n\n\t\tif (typeof fields.date !== \"undefined\")\n\t\t{\n\t\t\tresult.date = Utils.date.cast(fields.date);\n\t\t}\n\n\t\tif (typeof fields.type === \"string\")\n\t\t{\n\t\t\tresult.type = fields.type;\n\t\t}\n\n\t\tif (typeof fields.extension === \"string\")\n\t\t{\n\t\t\tresult.extension = fields.extension.toString();\n\n\t\t\tif (result.type === 'image')\n\t\t\t{\n\t\t\t\tresult.icon = 'img';\n\t\t\t}\n\t\t\telse if (result.type === 'video')\n\t\t\t{\n\t\t\t\tresult.icon = 'mov';\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult.icon = FilesModel.getIconType(result.extension);\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.name === \"string\" || typeof fields.name === \"number\")\n\t\t{\n\t\t\tresult.name = fields.name.toString();\n\t\t}\n\n\n\t\tif (typeof fields.size === \"number\" || typeof fields.size === \"string\")\n\t\t{\n\t\t\tresult.size = parseInt(fields.size);\n\t\t}\n\n\t\tif (typeof fields.image === 'boolean')\n\t\t{\n\t\t\tresult.image = false;\n\t\t}\n\t\telse if (typeof fields.image === 'object' && fields.image)\n\t\t{\n\t\t\tresult.image = {\n\t\t\t\twidth: 0,\n\t\t\t\theight: 0,\n\t\t\t};\n\n\t\t\tif (typeof fields.image.width === \"string\" || typeof fields.image.width === \"number\")\n\t\t\t{\n\t\t\t\tresult.image.width = parseInt(fields.image.width);\n\t\t\t}\n\t\t\tif (typeof fields.image.height === \"string\" || typeof fields.image.height === \"number\")\n\t\t\t{\n\t\t\t\tresult.image.height = parseInt(fields.image.height);\n\t\t\t}\n\n\t\t\tif (result.image.width <= 0 || result.image.height <= 0)\n\t\t\t{\n\t\t\t\tresult.image = false;\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.status === \"string\" && typeof FileStatus[fields.status] !== 'undefined')\n\t\t{\n\t\t\tresult.status = fields.status;\n\t\t}\n\n\t\tif (typeof fields.progress === \"number\" || typeof fields.progress === \"string\")\n\t\t{\n\t\t\tresult.progress = parseInt(fields.progress);\n\t\t}\n\n\t\tif (typeof fields.authorId === \"number\" || typeof fields.authorId === \"string\")\n\t\t{\n\t\t\tresult.authorId = parseInt(fields.authorId);\n\t\t}\n\n\t\tif (typeof fields.authorName === \"string\" || typeof fields.authorName === \"number\")\n\t\t{\n\t\t\tresult.authorName = fields.authorName.toString();\n\t\t}\n\n\t\tif (typeof fields.urlPreview === 'string')\n\t\t{\n\t\t\tif (\n\t\t\t\t!fields.urlPreview\n\t\t\t\t|| fields.urlPreview.startsWith('http')\n\t\t\t\t|| fields.urlPreview.startsWith('bx')\n\t\t\t\t|| fields.urlPreview.startsWith('file')\n\t\t\t\t|| fields.urlPreview.startsWith('blob')\n\t\t\t)\n\t\t\t{\n\t\t\t\tresult.urlPreview = fields.urlPreview;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult.urlPreview = options.host+fields.urlPreview;\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.urlDownload === 'string')\n\t\t{\n\t\t\tif (\n\t\t\t\t!fields.urlDownload\n\t\t\t\t|| fields.urlDownload.startsWith('http')\n\t\t\t\t|| fields.urlDownload.startsWith('bx')\n\t\t\t\t|| fields.urlPreview.startsWith('file')\n\t\t\t)\n\t\t\t{\n\t\t\t\tresult.urlDownload = fields.urlDownload;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult.urlDownload = options.host+fields.urlDownload;\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.urlShow === 'string')\n\t\t{\n\t\t\tif (\n\t\t\t\t!fields.urlShow\n\t\t\t\t|| fields.urlShow.startsWith('http')\n\t\t\t\t|| fields.urlShow.startsWith('bx')\n\t\t\t\t|| fields.urlShow.startsWith('file')\n\t\t\t)\n\t\t\t{\n\t\t\t\tresult.urlShow = fields.urlShow;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult.urlShow = options.host+fields.urlShow;\n\t\t\t}\n\t\t}\n\n\t\tif (typeof fields.viewerAttrs === 'object')\n\t\t{\n\t\t\tif (result.type === 'image' && !Utils.platform.isBitrixMobile())\n\t\t\t{\n\t\t\t\tresult.viewerAttrs = fields.viewerAttrs;\n\t\t\t}\n\n\t\t\tif (result.type === 'video' && !Utils.platform.isBitrixMobile() && result.size > FilesModel.maxDiskFileSize)\n\t\t\t{\n\t\t\t\tresult.viewerAttrs = fields.viewerAttrs;\n\t\t\t}\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tstatic getType(type)\n\t{\n\t\ttype = type.toString().toLowerCase().split('.').splice(-1)[0];\n\n\t\tswitch(type)\n\t\t{\n\t\t\tcase 'png':\n\t\t\tcase 'jpe':\n\t\t\tcase 'jpg':\n\t\t\tcase 'jpeg':\n\t\t\tcase 'gif':\n\t\t\tcase 'heic':\n\t\t\tcase 'bmp':\n\t\t\tcase 'webp':\n\t\t\t\treturn FileType.image;\n\n\t\t\tcase 'mp4':\n\t\t\tcase 'mkv':\n\t\t\tcase 'webm':\n\t\t\tcase 'mpeg':\n\t\t\tcase 'hevc':\n\t\t\tcase 'avi':\n\t\t\tcase '3gp':\n\t\t\tcase 'flv':\n\t\t\tcase 'm4v':\n\t\t\tcase 'ogg':\n\t\t\tcase 'wmv':\n\t\t\tcase 'mov':\n\t\t\t\treturn FileType.video;\n\n\t\t\tcase 'mp3':\n\t\t\t\treturn FileType.audio;\n\t\t}\n\n\t\treturn FileType.file\n\t}\n\n\tstatic getIconType(extension)\n\t{\n\t\tlet icon = 'empty';\n\n\t\tswitch(extension.toString())\n\t\t{\n\t\t\tcase 'png':\n\t\t\tcase 'jpe':\n\t\t\tcase 'jpg':\n\t\t\tcase 'jpeg':\n\t\t\tcase 'gif':\n\t\t\tcase 'heic':\n\t\t\tcase 'bmp':\n\t\t\tcase 'webp':\n\t\t\t\ticon = 'img';\n\t\t\t\tbreak;\n\n\t\t\tcase 'mp4':\n\t\t\tcase 'mkv':\n\t\t\tcase 'webm':\n\t\t\tcase 'mpeg':\n\t\t\tcase 'hevc':\n\t\t\tcase 'avi':\n\t\t\tcase '3gp':\n\t\t\tcase 'flv':\n\t\t\tcase 'm4v':\n\t\t\tcase 'ogg':\n\t\t\tcase 'wmv':\n\t\t\tcase 'mov':\n\t\t\t\ticon = 'mov';\n\t\t\t\tbreak;\n\n\t\t\tcase 'txt':\n\t\t\t\ticon = 'txt';\n\t\t\t\tbreak;\n\n\t\t\tcase 'doc':\n\t\t\tcase 'docx':\n\t\t\t\ticon = 'doc';\n\t\t\t\tbreak;\n\n\t\t\tcase 'xls':\n\t\t\tcase 'xlsx':\n\t\t\t\ticon = 'xls';\n\t\t\t\tbreak;\n\n\t\t\tcase 'php':\n\t\t\t\ticon = 'php';\n\t\t\t\tbreak;\n\n\t\t\tcase 'pdf':\n\t\t\t\ticon = 'pdf';\n\t\t\t\tbreak;\n\n\t\t\tcase 'ppt':\n\t\t\tcase 'pptx':\n\t\t\t\ticon = 'ppt';\n\t\t\t\tbreak;\n\n\t\t\tcase 'rar':\n\t\t\t\ticon = 'rar';\n\t\t\t\tbreak;\n\n\t\t\tcase 'zip':\n\t\t\tcase '7z':\n\t\t\tcase 'tar':\n\t\t\tcase 'gz':\n\t\t\tcase 'gzip':\n\t\t\t\ticon = 'zip';\n\t\t\t\tbreak;\n\n\t\t\tcase 'set':\n\t\t\t\ticon = 'set';\n\t\t\t\tbreak;\n\n\t\t\tcase 'conf':\n\t\t\tcase 'ini':\n\t\t\tcase 'plist':\n\t\t\t\ticon = 'set';\n\t\t\t\tbreak;\n\t\t}\n\n\t\treturn icon;\n\t}\n}","/**\n * Bitrix Messenger\n * Recent model (Vuex Builder model)\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2020 Bitrix\n */\n\nimport {VuexBuilderModel} from 'ui.vue.vuex';\nimport {Type} from 'main.core';\nimport {ChatTypes, MessageStatus, RecentSection as Section, TemplateTypes} from \"im.const\";\nimport {Utils} from \"im.lib.utils\";\n\nexport class RecentModel extends VuexBuilderModel\n{\n\tgetName()\n\t{\n\t\treturn 'recent';\n\t}\n\n\tgetState()\n\t{\n\t\treturn {\n\t\t\thost: this.getVariable('host', location.protocol+'//'+location.host),\n\t\t\tcollection: []\n\t\t}\n\t}\n\n\tgetElementState(): RecentItem\n\t{\n\t\treturn {\n\t\t\tid: 0,\n\t\t\ttemplateId: '',\n\t\t\ttemplate: TemplateTypes.item,\n\t\t\tchatType: ChatTypes.chat,\n\t\t\tsectionCode: Section.general,\n\t\t\tavatar: '',\n\t\t\tcolor: '#048bd0',\n\t\t\ttitle: '',\n\t\t\tlines: {id: 0, status: 0},\n\t\t\tmessage: {\n\t\t\t\tid: 0,\n\t\t\t\ttext: '',\n\t\t\t\tdate: new Date(),\n\t\t\t\tsenderId: 0,\n\t\t\t\tstatus: MessageStatus.received\n\t\t\t},\n\t\t\tcounter: 0,\n\t\t\tpinned: false,\n\t\t\tchatId: 0,\n\t\t\tuserId: 0\n\t\t};\n\t}\n\n\tgetGetters()\n\t{\n\t\treturn {\n\t\t\tget: state => (dialogId: string): {index: number, element: RecentItem} | boolean =>\n\t\t\t{\n\t\t\t\tif (Type.isNumber(dialogId))\n\t\t\t\t{\n\t\t\t\t\tdialogId = dialogId.toString();\n\t\t\t\t}\n\n\t\t\t\tlet currentItem = this.findItem(dialogId);\n\t\t\t\tif (currentItem)\n\t\t\t\t{\n\t\t\t\t\treturn currentItem;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t}\n\t\t};\n\t}\n\n\tgetActions()\n\t{\n\t\treturn {\n\t\t\tset: (store, payload) =>\n\t\t\t{\n\t\t\t\tlet result = [];\n\n\t\t\t\tif (payload instanceof Array)\n\t\t\t\t{\n\t\t\t\t\tresult = payload.map(\n\t\t\t\t\t\trecentItem => this.prepareItem(recentItem, { host: store.state.host })\n\t\t\t\t\t);\n\t\t\t\t}\n\n\t\t\t\tif (result.length === 0)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tresult.forEach(element => {\n\t\t\t\t\tconst existingItem = this.findItem(element.id);\n\t\t\t\t\tif (existingItem)\n\t\t\t\t\t{\n\t\t\t\t\t\tstore.commit('update', {\n\t\t\t\t\t\t\tindex: existingItem.index,\n\t\t\t\t\t\t\tfields: element\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\tstore.commit('add', {\n\t\t\t\t\t\t\tfields: element\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tstore.state.collection.sort(this.sortListByMessageDate);\n\t\t\t},\n\n\t\t\taddPlaceholders: (store, payload: []) =>\n\t\t\t{\n\t\t\t\tpayload.forEach(element => {\n\t\t\t\t\tstore.commit('addPlaceholder', {\n\t\t\t\t\t\tfields: element\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t},\n\n\t\t\tupdatePlaceholders: (store, payload: {items: [], firstMessage: number}) =>\n\t\t\t{\n\t\t\t\tpayload.items = payload.items.map(element => this.prepareItem(element));\n\n\t\t\t\tpayload.items.forEach((element, index) => {\n\t\t\t\t\tconst placeholderId = 'placeholder' + (payload.firstMessage + index);\n\t\t\t\t\tconst existingPlaceholder = this.findItem(placeholderId, 'templateId');\n\n\t\t\t\t\tconst existingItem = this.findItem(element.id);\n\t\t\t\t\tif (existingItem)\n\t\t\t\t\t{\n\t\t\t\t\t\tstore.commit('update', {\n\t\t\t\t\t\t\tindex: existingItem.index,\n\t\t\t\t\t\t\tfields: element\n\t\t\t\t\t\t});\n\t\t\t\t\t\tstore.commit('delete', {\n\t\t\t\t\t\t\tindex: existingPlaceholder.index,\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\tstore.commit('update', {\n\t\t\t\t\t\t\tindex: existingPlaceholder.index,\n\t\t\t\t\t\t\tfields: element\n\t\t\t\t\t\t});\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t},\n\n\t\t\tupdate: (store, payload: {id: string | number, fields: Object}) =>\n\t\t\t{\n\t\t\t\tif (typeof payload.id === 'string' && !payload.id.startsWith('chat') && payload.id !== 'notify')\n\t\t\t\t{\n\t\t\t\t\tpayload.id = parseInt(payload.id);\n\t\t\t\t}\n\n\t\t\t\tconst existingItem = this.findItem(payload.id);\n\t\t\t\tif (!existingItem)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tpayload.fields = this.validate(Object.assign({}, payload.fields));\n\n\t\t\t\tstore.commit('update', {\n\t\t\t\t\tindex: existingItem.index,\n\t\t\t\t\tfields: payload.fields\n\t\t\t\t});\n\t\t\t\tstore.state.collection.sort(this.sortListByMessageDate);\n\t\t\t},\n\n\t\t\tpin: (store, payload: {id: string | number, action: boolean}) =>\n\t\t\t{\n\t\t\t\tif (typeof payload.id === 'string' && !payload.id.startsWith('chat') && payload.id !== 'notify')\n\t\t\t\t{\n\t\t\t\t\tpayload.id = parseInt(payload.id);\n\t\t\t\t}\n\n\n\t\t\t\tlet existingItem = this.findItem(payload.id);\n\n\t\t\t\tif (!existingItem)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tstore.commit('update', {\n\t\t\t\t\tindex: existingItem.index,\n\t\t\t\t\tfields: Object.assign({}, existingItem.element, {\n\t\t\t\t\t\tpinned: payload.action\n\t\t\t\t\t})\n\t\t\t\t});\n\n\t\t\t\tstore.state.collection.sort(this.sortListByMessageDate);\n\t\t\t},\n\n\t\t\tclearPlaceholders: (store) =>\n\t\t\t{\n\t\t\t\tstore.commit('clearPlaceholders');\n\t\t\t},\n\n\t\t\tdelete: (store, payload: {id: string | number}) =>\n\t\t\t{\n\t\t\t\tif (typeof payload.id === 'string' && !payload.id.startsWith('chat') && payload.id !== 'notify')\n\t\t\t\t{\n\t\t\t\t\tpayload.id = parseInt(payload.id);\n\t\t\t\t}\n\n\t\t\t\tconst existingItem = this.findItem(payload.id);\n\t\t\t\tif (!existingItem)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tstore.commit('delete', {\n\t\t\t\t\tindex: existingItem.index\n\t\t\t\t});\n\t\t\t\tstore.state.collection.sort(this.sortListByMessageDate);\n\t\t\t}\n\t\t}\n\t}\n\n\tgetMutations()\n\t{\n\t\treturn {\n\t\t\tadd: (state, payload: {fields: Object}) => {\n\t\t\t\tstate.collection.push(Object.assign(\n\t\t\t\t\t{},\n\t\t\t\t\tthis.getElementState(),\n\t\t\t\t\tpayload.fields\n\t\t\t\t));\n\t\t\t},\n\n\t\t\tupdate: (state, payload: {index: number, fields: Object}) => {\n\t\t\t\tstate.collection.splice(payload.index, 1, Object.assign(\n\t\t\t\t\t{},\n\t\t\t\t\tstate.collection[payload.index],\n\t\t\t\t\tpayload.fields\n\t\t\t\t));\n\t\t\t},\n\n\t\t\tdelete: (state, payload: {index: number}) => {\n\t\t\t\tstate.collection.splice(payload.index, 1);\n\t\t\t},\n\n\t\t\taddPlaceholder: (state, payload: {fields: Object}) => {\n\t\t\t\tstate.collection.push(Object.assign(\n\t\t\t\t\t{},\n\t\t\t\t\tthis.getElementState(),\n\t\t\t\t\tpayload.fields\n\t\t\t\t));\n\t\t\t},\n\n\t\t\tclearPlaceholders: (state) => {\n\t\t\t\tstate.collection = state.collection.filter(element => {\n\t\t\t\t\treturn !element.id.toString().startsWith('placeholder');\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t}\n\n\tvalidate(fields: rawRecentItem, options = {}): RecentItem\n\t{\n\t\tconst result = {};\n\n\t\tif (Type.isNumber(fields.id))\n\t\t{\n\t\t\tresult.id = fields.id.toString();\n\t\t}\n\t\tif (Type.isStringFilled(fields.id))\n\t\t{\n\t\t\tresult.id = fields.id;\n\t\t}\n\n\t\tif (Type.isString(fields.templateId))\n\t\t{\n\t\t\tresult.templateId = fields.templateId;\n\t\t}\n\n\t\tif (Type.isString(fields.template))\n\t\t{\n\t\t\tresult.template = fields.template;\n\t\t}\n\n\t\tif (Type.isString(fields.type))\n\t\t{\n\t\t\tif (fields.type === ChatTypes.chat)\n\t\t\t{\n\t\t\t\tif (fields.chat.type === ChatTypes.open)\n\t\t\t\t{\n\t\t\t\t\tresult.chatType = ChatTypes.open;\n\t\t\t\t}\n\t\t\t\telse if (fields.chat.type === ChatTypes.chat)\n\t\t\t\t{\n\t\t\t\t\tresult.chatType = ChatTypes.chat;\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (fields.type === ChatTypes.user)\n\t\t\t{\n\t\t\t\tresult.chatType = ChatTypes.user;\n\t\t\t}\n\t\t\telse if (fields.type === ChatTypes.notification)\n\t\t\t{\n\t\t\t\tresult.chatType = ChatTypes.notification;\n\t\t\t\tfields.title = 'Notifications';\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult.chatType = ChatTypes.chat;\n\t\t\t}\n\t\t}\n\n\t\tif (Type.isString(fields.avatar))\n\t\t{\n\t\t\tlet avatar;\n\n\t\t\tif (!fields.avatar || fields.avatar.endsWith('/js/im/images/blank.gif'))\n\t\t\t{\n\t\t\t\tavatar = '';\n\t\t\t}\n\t\t\telse if (fields.avatar.startsWith('http'))\n\t\t\t{\n\t\t\t\tavatar = fields.avatar;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tavatar = options.host + fields.avatar;\n\t\t\t}\n\n\t\t\tif (avatar)\n\t\t\t{\n\t\t\t\tresult.avatar = encodeURI(avatar);\n\t\t\t}\n\t\t}\n\n\t\tif (Type.isString(fields.color))\n\t\t{\n\t\t\tresult.color = fields.color;\n\t\t}\n\n\t\tif (Type.isString(fields.title))\n\t\t{\n\t\t\tresult.title = fields.title;\n\t\t}\n\n\t\tif (Type.isPlainObject(fields.message))\n\t\t{\n\t\t\tconst message = {};\n\t\t\tif (Type.isNumber(fields.message.id))\n\t\t\t{\n\t\t\t\tmessage.id = fields.message.id;\n\t\t\t}\n\t\t\tif (Type.isString(fields.message.text))\n\t\t\t{\n\t\t\t\tconst options = {}\n\t\t\t\tif (fields.message.withAttach)\n\t\t\t\t{\n\t\t\t\t\toptions.WITH_ATTACH = true;\n\t\t\t\t}\n\t\t\t\telse if (fields.message.withFile)\n\t\t\t\t{\n\t\t\t\t\toptions.WITH_FILE = true;\n\t\t\t\t}\n\n\t\t\t\tmessage.text = Utils.text.purify(fields.message.text, options);\n\t\t\t}\n\t\t\tif (Type.isDate(fields.message.date) || Type.isString(fields.message.date))\n\t\t\t{\n\t\t\t\tmessage.date = fields.message.date;\n\t\t\t}\n\t\t\tif (Type.isNumber(fields.message.author_id))\n\t\t\t{\n\t\t\t\tmessage.senderId = fields.message.author_id;\n\t\t\t}\n\t\t\tif (Type.isNumber(fields.message.senderId))\n\t\t\t{\n\t\t\t\tmessage.senderId = fields.message.senderId;\n\t\t\t}\n\t\t\tif (Type.isStringFilled(fields.message.status))\n\t\t\t{\n\t\t\t\tmessage.status = fields.message.status;\n\t\t\t}\n\n\t\t\tresult.message = message;\n\t\t}\n\n\t\tif (Type.isNumber(fields.counter))\n\t\t{\n\t\t\tresult.counter = fields.counter;\n\t\t}\n\n\t\tif (Type.isBoolean(fields.pinned))\n\t\t{\n\t\t\tresult.pinned = fields.pinned;\n\t\t}\n\n\t\tif (Type.isNumber(fields.chatId))\n\t\t{\n\t\t\tresult.chatId = fields.chatId;\n\t\t}\n\n\t\tif (Type.isNumber(fields.userId))\n\t\t{\n\t\t\tresult.userId = fields.userId;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tsortListByMessageDate(a: RecentItem, b: RecentItem)\n\t{\n\t\tif (a.message && b.message)\n\t\t{\n\t\t\tlet timestampA = new Date(a.message.date).getTime();\n\t\t\tlet timestampB = new Date(b.message.date).getTime();\n\n\t\t\treturn timestampB - timestampA;\n\t\t}\n\t}\n\n\tprepareItem(item, options = {})\n\t{\n\t\tlet result = this.validate(Object.assign({}, item));\n\n\t\treturn Object.assign({}, this.getElementState(), result, options);\n\t}\n\n\tfindItem(value, key = 'id'): {index: number, element: RecentItem} | boolean\n\t{\n\t\tlet result = {};\n\n\t\tif (key === 'id' && Type.isNumber(value))\n\t\t{\n\t\t\tvalue = value.toString();\n\t\t}\n\n\t\tlet elementIndex = this.store.state.recent.collection.findIndex((element, index) => {\n\t\t\treturn element[key] === value;\n\t\t});\n\n\t\tif (elementIndex !== -1)\n\t\t{\n\t\t\tresult.index = elementIndex;\n\t\t\tresult.element = this.store.state.recent.collection[elementIndex];\n\n\t\t\treturn result;\n\t\t}\n\n\t\treturn false;\n\t}\n}\n\n//raw input object for validation\ntype rawRecentItem = {\n\tid?: number | string,\n\ttemplateId?: string,\n\ttemplate?: TemplateTypes.item | TemplateTypes.placeholder,\n\ttype?: ChatTypes.chat | ChatTypes.user | ChatTypes.notification,\n\tchat?: {\n\t\ttype?: string\n\t},\n\tavatar?: string,\n\tcolor?: string,\n\ttitle?: string,\n\tmessage?: RawRecentItemMessage,\n\tcounter?: number,\n\tpinned?: boolean,\n\tchatId?: number,\n\tuserId?: number\n}\n\ntype RawRecentItemMessage = {\n\tid?: number,\n\ttext?: string,\n\tdate?: Date,\n\tsenderId?: number,\n\tauthor_id?: number, //senderId alias\n\tstatus?: MessageStatus.received | MessageStatus.delivered\n}\n\n//item in collection\ntype RecentItem = {\n\tid?: number,\n\ttemplateId?: string,\n\ttemplate?: TemplateTypes.item | TemplateTypes.placeholder,\n\tchatType?: ChatTypes.chat | ChatTypes.open | ChatTypes.user | ChatTypes.notification,\n\tsectionCode?: Section.general | Section.pinned,\n\tavatar?: string,\n\tcolor?: string,\n\ttitle?: string,\n\tmessage?: RecentItemMessage,\n\tcounter?: number,\n\tpinned?: boolean,\n\tchatId?: number,\n\tuserId?: number\n}\n\ntype RecentItemMessage = {\n\tid?: number,\n\ttext?: string,\n\tdate?: Date | string,\n\tsenderId?: number,\n\tstatus?: MessageStatus.received | MessageStatus.delivered\n}","/**\n * Bitrix Messenger\n * Notifications model (Vuex Builder model)\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2021 Bitrix\n */\n\nimport {Vue} from 'ui.vue';\nimport {VuexBuilderModel} from 'ui.vue.vuex';\nimport {Utils} from 'im.lib.utils';\nimport {Text, Type, Reflection} from 'main.core';\nimport {NotificationTypesCodes} from 'im.const';\n\nclass NotificationsModel extends VuexBuilderModel\n{\n\tgetName()\n\t{\n\t\treturn 'notifications';\n\t}\n\n\tgetState()\n\t{\n\t\treturn {\n\t\t\tcollection: [],\n\t\t\tsearchCollection: [],\n\t\t\tchat_id: 0,\n\t\t\ttotal: 0,\n\t\t\thost: this.getVariable('host', location.protocol+'//'+location.host),\n\t\t\tunreadCounter: 0,\n\t\t\tschema: {}\n\t\t}\n\t}\n\n\tgetElementState()\n\t{\n\t\treturn {\n\t\t\tid: 0,\n\t\t\tauthorId: 0,\n\t\t\tdate: new Date(),\n\t\t\ttext: '',\n\t\t\tsectionCode: NotificationTypesCodes.simple,\n\t\t\ttextConverted: '',\n\t\t\ttitle: '',\n\t\t\tunread: false,\n\t\t\tdisplay: true,\n\t\t\tsettingName: 'im|default',\n\t\t};\n\t}\n\n\tgetGetters()\n\t{\n\t\treturn {\n\t\t\tget: state => () =>\n\t\t\t{\n\t\t\t\treturn state.collection;\n\t\t\t},\n\t\t\tgetById: state => (notificationId) =>\n\t\t\t{\n\t\t\t\tif (Type.isString(notificationId))\n\t\t\t\t{\n\t\t\t\t\tnotificationId = parseInt(notificationId);\n\t\t\t\t}\n\n\t\t\t\tconst existingItem = this.findItemInArr(state.collection, notificationId);\n\t\t\t\tif (!existingItem.element)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn existingItem.element;\n\t\t\t},\n\t\t\tgetSearchItemById: state => (notificationId) =>\n\t\t\t{\n\t\t\t\tif (Type.isString(notificationId))\n\t\t\t\t{\n\t\t\t\t\tnotificationId = parseInt(notificationId);\n\t\t\t\t}\n\n\t\t\t\tconst existingItem = this.findItemInArr(state.searchCollection, notificationId);\n\t\t\t\tif (!existingItem.element)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\treturn existingItem.element;\n\t\t\t},\n\t\t\tgetBlank: state => params =>\n\t\t\t{\n\t\t\t\treturn this.getElementState();\n\t\t\t},\n\t\t}\n\t}\n\n\tgetActions()\n\t{\n\t\treturn {\n\t\t\tset: (store, payload) =>\n\t\t\t{\n\t\t\t\tconst result = {\n\t\t\t\t\tnotification: [],\n\t\t\t\t};\n\n\t\t\t\tif (payload.notification instanceof Array)\n\t\t\t\t{\n\t\t\t\t\tresult.notification = payload.notification.map(notification => this.prepareNotification(notification, { host: store.state.host }));\n\t\t\t\t}\n\n\t\t\t\tif (Type.isNumber(payload.total) || Type.isString(payload.total))\n\t\t\t\t{\n\t\t\t\t\tresult.total = parseInt(payload.total);\n\t\t\t\t}\n\n\t\t\t\tstore.commit('set', result);\n\t\t\t},\n\t\t\tsetSearchResults: (store, payload) =>\n\t\t\t{\n\t\t\t\tconst result = {\n\t\t\t\t\tnotification: [],\n\t\t\t\t};\n\n\t\t\t\tif (!(payload.notification instanceof Array))\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\t// we don't need validation for the local results\n\t\t\t\tif (payload.type === 'local')\n\t\t\t\t{\n\t\t\t\t\tresult.notification = payload.notification;\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tresult.notification = payload.notification.map(notification => this.prepareNotification(notification, { host: store.state.host }));\n\t\t\t\t}\n\n\t\t\t\tstore.commit('setSearchResults', {\n\t\t\t\t\tdata: result\n\t\t\t\t});\n\t\t\t},\n\t\t\tdeleteSearchResults: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('deleteSearchResults');\n\t\t\t},\n\t\t\tsetCounter: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (Type.isNumber(payload.unreadTotal) || Type.isString(payload.unreadTotal))\n\t\t\t\t{\n\t\t\t\t\tconst unreadCounter = parseInt(payload.unreadTotal);\n\t\t\t\t\tstore.commit('setCounter', unreadCounter);\n\t\t\t\t}\n\t\t\t},\n\t\t\tsetTotal: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (Type.isNumber(payload.total) || Type.isString(payload.total))\n\t\t\t\t{\n\t\t\t\t\tstore.commit('setTotal', payload.total);\n\t\t\t\t}\n\t\t\t},\n\t\t\tadd: (store, payload) =>\n\t\t\t{\n\t\t\t\tconst addItem = this.prepareNotification(payload.data, { host: store.state.host });\n\t\t\t\taddItem.unread = true;\n\n\t\t\t\tconst existingItem = this.findItemInArr(store.state.collection, addItem.id);\n\t\t\t\tif (!existingItem.element)\n\t\t\t\t{\n\t\t\t\t\tstore.commit('add', {\n\t\t\t\t\t\tdata: addItem,\n\t\t\t\t\t});\n\n\t\t\t\t\tstore.commit('setTotal', store.state.total + 1);\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tstore.commit('update', {\n\t\t\t\t\t\tindex: existingItem.index,\n\t\t\t\t\t\tfields: Object.assign({}, payload.fields),\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\tupdatePlaceholders: (store, payload) =>\n\t\t\t{\n\t\t\t\tif (payload.items instanceof Array)\n\t\t\t\t{\n\t\t\t\t\tpayload.items = payload.items.map(notification => this.prepareNotification(notification));\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\n\t\t\t\tstore.commit('updatePlaceholders', payload);\n\n\t\t\t\treturn true;\n\t\t\t},\n\t\t\tclearPlaceholders: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('clearPlaceholders', payload);\n\t\t\t},\n\t\t\tupdate: (store, payload) =>\n\t\t\t{\n\t\t\t\tconst existingItem = this.findItemInArr(store.state.collection, payload.id);\n\t\t\t\tif (existingItem.element)\n\t\t\t\t{\n\t\t\t\t\tstore.commit('update', {\n\t\t\t\t\t\tindex: existingItem.index,\n\t\t\t\t\t\tfields: Object.assign({}, payload.fields),\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (payload.searchMode)\n\t\t\t\t{\n\t\t\t\t\tconst existingItemInSearchCollection = this.findItemInArr(store.state.searchCollection, payload.id);\n\t\t\t\t\tif (existingItemInSearchCollection.element)\n\t\t\t\t\t{\n\t\t\t\t\t\tstore.commit('update', {\n\t\t\t\t\t\t\tsearchCollection: true,\n\t\t\t\t\t\t\tindex: existingItemInSearchCollection.index,\n\t\t\t\t\t\t\tfields: Object.assign({}, payload.fields),\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\tread: (store, payload) =>\n\t\t\t{\n\t\t\t\tfor (const notificationId of payload.ids)\n\t\t\t\t{\n\t\t\t\t\tconst existingItem = this.findItemInArr(store.state.collection, notificationId);\n\t\t\t\t\tif (!existingItem.element)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn false;\n\t\t\t\t\t}\n\n\t\t\t\t\tstore.commit('read', {\n\t\t\t\t\t\tindex: existingItem.index,\n\t\t\t\t\t\taction: !payload.action,\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t},\n\t\t\treadAll: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('readAll');\n\t\t\t},\n\t\t\tdelete: (store, payload) =>\n\t\t\t{\n\t\t\t\tconst existingItem = this.findItemInArr(store.state.collection, payload.id);\n\t\t\t\tif (existingItem.element)\n\t\t\t\t{\n\t\t\t\t\tstore.commit('delete', {\n\t\t\t\t\t\tsearchCollection: false,\n\t\t\t\t\t\tindex: existingItem.index,\n\t\t\t\t\t});\n\n\t\t\t\t\tstore.commit('setTotal', store.state.total - 1);\n\t\t\t\t}\n\n\t\t\t\tif (payload.searchMode)\n\t\t\t\t{\n\t\t\t\t\tconst existingItemInSearchCollection = this.findItemInArr(store.state.searchCollection, payload.id);\n\t\t\t\t\tif (existingItemInSearchCollection.element)\n\t\t\t\t\t{\n\t\t\t\t\t\tstore.commit('delete', {\n\t\t\t\t\t\t\tsearchCollection: true,\n\t\t\t\t\t\t\tindex: existingItemInSearchCollection.index,\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\tdeleteAll: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('deleteAll');\n\t\t\t},\n\t\t\tsetSchema: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('setSchema', {\n\t\t\t\t\tdata: payload.data,\n\t\t\t\t});\n\t\t\t},\n\t\t}\n\t}\n\n\tgetMutations()\n\t{\n\t\treturn {\n\t\t\tset: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.total = payload.hasOwnProperty('total') ? payload.total : state.total;\n\n\t\t\t\tif (!payload.hasOwnProperty('notification') || !Type.isArray(payload.notification))\n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tfor (const element of payload.notification)\n\t\t\t\t{\n\t\t\t\t\tconst existingItem = this.findItemInArr(state.collection, element.id);\n\n\t\t\t\t\tif (!existingItem.element)\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.collection.push(element);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\t// we trust unread status of existing item to prevent notifications blinking while init loading.\n\t\t\t\t\t\tif (element.unread !== state.collection[existingItem.index].unread)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\telement.unread = state.collection[existingItem.index].unread;\n\t\t\t\t\t\t\tstate.unreadCounter = (element.unread === true ? state.unreadCounter + 1 : state.unreadCounter - 1);\n\t\t\t\t\t\t}\n\n\t\t\t\t\t\tstate.collection[existingItem.index] = Object.assign(\n\t\t\t\t\t\t\tstate.collection[existingItem.index],\n\t\t\t\t\t\t\telement\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tstate.collection.sort(this.sortByType);\n\t\t\t},\n\t\t\tsetSearchResults: (state, payload) =>\n\t\t\t{\n\t\t\t\tfor (const element of payload.data.notification)\n\t\t\t\t{\n\t\t\t\t\tconst existingItem = this.findItemInArr(state.searchCollection, element.id);\n\n\t\t\t\t\tif (!existingItem.element)\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.searchCollection.push(element);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.searchCollection[existingItem.index] = Object.assign(\n\t\t\t\t\t\t\tstate.searchCollection[existingItem.index],\n\t\t\t\t\t\t\telement\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\tdeleteAll: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.collection = [];\n\t\t\t},\n\t\t\tdeleteSearchResults: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.searchCollection = [];\n\t\t\t},\n\t\t\tadd: (state, payload) =>\n\t\t\t{\n\t\t\t\tlet firstNotificationIndex = null;\n\t\t\t\tif (payload.data.sectionCode === NotificationTypesCodes.confirm)\n\t\t\t\t{\n\t\t\t\t\t//new confirms should always add to the beginning of the collection\n\t\t\t\t\tstate.collection.unshift(payload.data);\n\t\t\t\t}\n\t\t\t\telse //if (payload.data.sectionCode === NotificationTypesCodes.simple)\n\t\t\t\t{\n\t\t\t\t\tfor (let index = 0; state.collection.length > index; index++)\n\t\t\t\t\t{\n\t\t\t\t\t\tif (state.collection[index].sectionCode === NotificationTypesCodes.simple)\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfirstNotificationIndex = index;\n\t\t\t\t\t\t\tbreak;\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\n\t\t\t\t\t//if we didn't find any simple notification and its index, then add new one to the end.\n\t\t\t\t\tif (firstNotificationIndex === null)\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.collection.push(payload.data);\n\t\t\t\t\t}\n\t\t\t\t\telse //otherwise, put it right before first simple notification.\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.collection.splice(firstNotificationIndex, 0, payload.data);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tstate.collection.sort(this.sortByType);\n\t\t\t},\n\t\t\tupdate: (state, payload) =>\n\t\t\t{\n\t\t\t\tconst collectionName = payload.searchCollection ? 'searchCollection' : 'collection';\n\n\t\t\t\tVue.set(state[collectionName], payload.index, Object.assign(\n\t\t\t\t\t{},\n\t\t\t\t\tstate[collectionName][payload.index],\n\t\t\t\t\tpayload.fields\n\t\t\t\t));\n\n\t\t\t},\n\t\t\tdelete: (state, payload) =>\n\t\t\t{\n\t\t\t\tconst collectionName = payload.searchCollection ? 'searchCollection' : 'collection';\n\t\t\t\tstate[collectionName].splice(payload.index, 1);\n\t\t\t},\n\t\t\tread: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.collection[payload.index].unread = payload.action;\n\t\t\t},\n\t\t\treadAll: (state, payload) =>\n\t\t\t{\n\t\t\t\tfor (let index = 0; state.collection.length > index; index++)\n\t\t\t\t{\n\t\t\t\t\tstate.collection[index].unread = false;\n\t\t\t\t}\n\t\t\t},\n\t\t\tupdatePlaceholders: (state, payload) =>\n\t\t\t{\n\t\t\t\tconst collectionName = payload.searchCollection ? 'searchCollection' : 'collection';\n\n\t\t\t\tpayload.items.forEach((element, index) => {\n\t\t\t\t\tconst placeholderId = `placeholder${payload.firstItem + index}`;\n\t\t\t\t\tconst existingPlaceholderIndex = state[collectionName].findIndex(notification => {\n\t\t\t\t\t\treturn notification.id === placeholderId;\n\t\t\t\t\t});\n\n\t\t\t\t\tconst existingMessageIndex = state[collectionName].findIndex(notification => {\n\t\t\t\t\t\treturn notification.id === element.id;\n\t\t\t\t\t});\n\n\t\t\t\t\tif (existingMessageIndex >= 0)\n\t\t\t\t\t{\n\t\t\t\t\t\tstate[collectionName][existingMessageIndex] = Object.assign(\n\t\t\t\t\t\t\tstate[collectionName][existingMessageIndex],\n\t\t\t\t\t\t\telement\n\t\t\t\t\t\t);\n\t\t\t\t\t\tstate[collectionName].splice(existingPlaceholderIndex, 1);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tstate[collectionName].splice(\n\t\t\t\t\t\t\texistingPlaceholderIndex,\n\t\t\t\t\t\t\t1,\n\t\t\t\t\t\t\tObject.assign({}, element)\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tstate[collectionName].sort(this.sortByType);\n\t\t\t},\n\t\t\tclearPlaceholders: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.collection = state.collection.filter(element => {\n\t\t\t\t\treturn !element.id.toString().startsWith('placeholder');\n\t\t\t\t});\n\n\t\t\t\tstate.searchCollection = state.searchCollection.filter(element => {\n\t\t\t\t\treturn !element.id.toString().startsWith('placeholder');\n\t\t\t\t});\n\t\t\t},\n\t\t\tsetCounter: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.unreadCounter = payload;\n\t\t\t},\n\t\t\tsetTotal: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.total = payload;\n\t\t\t},\n\t\t\tsetSchema: (state, payload) =>\n\t\t\t{\n\t\t\t\tstate.schema = payload.data;\n\t\t\t}\n\t\t}\n\t}\n\n\t/* region Validation */\n\tvalidate(fields, options)\n\t{\n\t\tconst result = {};\n\n\t\tif (Type.isString(fields.id) || Type.isNumber(fields.id))\n\t\t{\n\t\t\tresult.id = fields.id;\n\t\t}\n\n\t\tif (!Type.isNil(fields.date))\n\t\t{\n\t\t\tresult.date = Utils.date.cast(fields.date);\n\t\t}\n\n\t\tif (Type.isString(fields.text) || Type.isNumber(fields.text))\n\t\t{\n\t\t\tresult.text = fields.text.toString();\n\t\t\tresult.textConverted = NotificationsModel.decodeText(result.text);\n\t\t}\n\n\t\tif (Type.isNumber(fields.author_id))\n\t\t{\n\t\t\tif (fields.system === true || fields.system === 'Y')\n\t\t\t{\n\t\t\t\tresult.authorId = 0;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tresult.authorId = fields.author_id;\n\t\t\t}\n\t\t}\n\n\t\tif (Type.isNumber(fields.userId))\n\t\t{\n\t\t\tresult.authorId = fields.userId;\n\t\t}\n\n\t\tif (Type.isObjectLike(fields.params))\n\t\t{\n\t\t\tconst params = this.validateParams(fields.params);\n\t\t\tif (params)\n\t\t\t{\n\t\t\t\tresult.params = params;\n\t\t\t}\n\t\t}\n\n\t\tif (!Type.isNil(fields.notify_buttons))\n\t\t{\n\t\t\tresult.notifyButtons = JSON.parse(fields.notify_buttons);\n\t\t}\n\n\t\t//p&p format\n\t\tif (!Type.isNil(fields.buttons))\n\t\t{\n\t\t\tresult.notifyButtons = fields.buttons.map((button) => {\n\t\t\t\treturn {\n\t\t\t\t\tCOMMAND: 'notifyConfirm',\n\t\t\t\t\tCOMMAND_PARAMS: `${result.id}|${button.VALUE}`,\n\t\t\t\t\tTEXT: `${button.TITLE}`,\n\t\t\t\t\tTYPE: 'BUTTON',\n\t\t\t\t\tDISPLAY: 'LINE',\n\t\t\t\t\tBG_COLOR: (button.VALUE === 'Y' ? '#8bc84b' : '#ef4b57'),\n\t\t\t\t\tTEXT_COLOR: '#fff',\n\t\t\t\t};\n\t\t\t});\n\t\t}\n\t\tif (fields.notify_type === NotificationTypesCodes.confirm || fields.type === NotificationTypesCodes.confirm)\n\t\t{\n\t\t\tresult.sectionCode = NotificationTypesCodes.confirm;\n\t\t}\n\t\telse if (fields.type === NotificationTypesCodes.placeholder)\n\t\t{\n\t\t\tresult.sectionCode = NotificationTypesCodes.placeholder;\n\t\t}\n\n\t\tif (!Type.isNil(fields.notify_read))\n\t\t{\n\t\t\tresult.unread = fields.notify_read === 'N';\n\t\t}\n\n\t\t//p&p format\n\t\tif (!Type.isNil(fields.read))\n\t\t{\n\t\t\tresult.unread = fields.read === 'N'; //?\n\t\t}\n\n\t\tif (Type.isString(fields.setting_name))\n\t\t{\n\t\t\tresult.settingName = fields.setting_name;\n\t\t}\n\n\t\t// rest format\n\t\tif (Type.isString(fields.notify_title) && fields.notify_title.length > 0)\n\t\t{\n\t\t\tresult.title = fields.notify_title;\n\t\t}\n\n\t\t// p&p format\n\t\tif (Type.isString(fields.title) && fields.title.length > 0)\n\t\t{\n\t\t\tresult.title = fields.title;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tvalidateParams(params)\n\t{\n\t\tconst result = {};\n\t\ttry\n\t\t{\n\t\t\tfor (let field in params)\n\t\t\t{\n\t\t\t\tif (!params.hasOwnProperty(field))\n\t\t\t\t{\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\n\t\t\t\tif (field === 'COMPONENT_ID')\n\t\t\t\t{\n\t\t\t\t\tif (Type.isString(params[field]) && BX.Vue.isComponent(params[field]))\n\t\t\t\t\t{\n\t\t\t\t\t\tresult[field] = params[field];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (field === 'LIKE')\n\t\t\t\t{\n\t\t\t\t\tif (params[field] instanceof Array)\n\t\t\t\t\t{\n\t\t\t\t\t\tresult['REACTION'] = {like: params[field].map(element => parseInt(element))};\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (field === 'CHAT_LAST_DATE')\n\t\t\t\t{\n\t\t\t\t\tresult[field] = Utils.date.cast(params[field]);\n\t\t\t\t}\n\t\t\t\telse if (field === 'AVATAR')\n\t\t\t\t{\n\t\t\t\t\tif (params[field])\n\t\t\t\t\t{\n\t\t\t\t\t\tresult[field] = params[field].startsWith('http') ? params[field] : options.host + params[field];\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (field === 'NAME')\n\t\t\t\t{\n\t\t\t\t\tif (params[field])\n\t\t\t\t\t{\n\t\t\t\t\t\tresult[field] = params[field];\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\tresult[field] = params[field];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\tcatch (e) {}\n\n\t\tlet hasResultElements = false;\n\t\tfor (let field in result)\n\t\t{\n\t\t\tif (!result.hasOwnProperty(field))\n\t\t\t{\n\t\t\t\tcontinue;\n\t\t\t}\n\n\t\t\thasResultElements = true;\n\t\t\tbreak\n\t\t}\n\n\t\treturn hasResultElements? result: null;\n\t}\n\t/* endregion Validation */\n\n\t/* region Internal helpers */\n\tprepareNotification(notification, options = {})\n\t{\n\t\tlet result = this.validate(Object.assign({}, notification));\n\n\t\treturn Object.assign({}, this.getElementState(), result, options);\n\t}\n\n\tfindItemInArr(arr, value, key = 'id')\n\t{\n\t\tconst result = {};\n\n\t\tconst elementIndex = arr.findIndex((element, index) => {\n\t\t\treturn element[key] === value;\n\t\t});\n\n\t\tif (elementIndex !== -1)\n\t\t{\n\t\t\tresult.index = elementIndex;\n\t\t\tresult.element = arr[elementIndex];\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tsortByType(a, b)\n\t{\n\t\tif (a.sectionCode === NotificationTypesCodes.confirm && b.sectionCode !== NotificationTypesCodes.confirm)\n\t\t{\n\t\t\treturn -1;\n\t\t}\n\t\telse if (a.sectionCode !== NotificationTypesCodes.confirm && b.sectionCode === NotificationTypesCodes.confirm)\n\t\t{\n\t\t\treturn 1;\n\t\t}\n\t\telse\n\t\t{\n\t\t\treturn b.id - a.id;\n\t\t}\n\t}\n\t/* endregion Internal helpers */\n\n\tstatic decodeText(text: string)\n\t{\n\t\ttext = Text.decode(text.toString());\n\t\ttext = Utils.text.decode(text, {skipImages: true});\n\n\t\tconst Parser = Reflection.getClass('BX.Messenger.v2.Lib.Parser');\n\t\tif (Parser)\n\t\t{\n\t\t\ttext = Parser.decodeSmileForLegacyCore(text, {enableBigSmile: false});\n\t\t}\n\n\t\tif (!Utils.platform.isBitrixDesktop())\n\t\t{\n\t\t\ttext = text.replace(/<a(.*?)>(.*?)<\\/a>/gi, (whole, anchor, innerText) => {\n\t\t\t\treturn `<a ${anchor.replace('target=\"_blank\"', 'target=\"_self\"')} class=\"bx-im-notifications-item-link\">${innerText}</a>`;\n\t\t\t});\n\t\t}\n\n\t\treturn text;\n\t}\n}\n\nexport {NotificationsModel};","/**\n * Bitrix Messenger\n * Call Application model (Vuex Builder model)\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2020 Bitrix\n */\n\nimport {Vue} from 'ui.vue';\nimport {VuexBuilderModel} from 'ui.vue.vuex';\nimport {Type} from 'main.core';\nimport {ConferenceUserState} from 'im.const';\n\nexport class CallModel extends VuexBuilderModel\n{\n\tgetName()\n\t{\n\t\treturn 'call';\n\t}\n\n\tgetState()\n\t{\n\t\treturn {\n\t\t\tusers: {}\n\t\t}\n\t}\n\n\tgetElementState(params = {})\n\t{\n\t\treturn {\n\t\t\tid: params.id ? params.id : 0,\n\t\t\tstate: ConferenceUserState.Idle,\n\t\t\ttalking: false,\n\t\t\tpinned: false,\n\t\t\tcameraState: false,\n\t\t\tmicrophoneState: false,\n\t\t\tscreenState: false,\n\t\t\tfloorRequestState: false\n\t\t};\n\t}\n\n\tgetGetters()\n\t{\n\t\treturn {\n\t\t\tgetUser: state => (userId) =>\n\t\t\t{\n\t\t\t\tuserId = parseInt(userId, 10);\n\n\t\t\t\tif (!state.users[userId])\n\t\t\t\t{\n\t\t\t\t\treturn this.getElementState({id: userId});\n\t\t\t\t}\n\n\t\t\t\treturn state.users[userId];\n\t\t\t},\n\t\t\tgetBlankUser: state => (userId) =>\n\t\t\t{\n\t\t\t\tuserId = parseInt(userId, 10);\n\n\t\t\t\treturn this.getElementState({id: userId});\n\t\t\t}\n\t\t}\n\t}\n\n\tgetActions()\n\t{\n\t\treturn {\n\t\t\tupdateUser: (store, payload) =>\n\t\t\t{\n\t\t\t\tpayload.id = parseInt(payload.id, 10);\n\n\t\t\t\tpayload.fields = Object.assign(\n\t\t\t\t\t{},\n\t\t\t\t\tthis.validate(payload.fields),\n\t\t\t\t);\n\n\t\t\t\tstore.commit('updateUser', payload);\n\t\t\t},\n\t\t\tunpinUser: (store, payload) =>\n\t\t\t{\n\t\t\t\tstore.commit('unpinUser');\n\t\t\t},\n\t\t}\n\t}\n\n\tgetMutations()\n\t{\n\t\treturn {\n\t\t\tupdateUser: (state, payload) =>\n\t\t\t{\n\t\t\t\tif (!state.users[payload.id])\n\t\t\t\t{\n\t\t\t\t\tVue.set(state.users, payload.id, Object.assign(this.getElementState(), payload.fields, {id: payload.id}));\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tstate.users[payload.id] = Object.assign(state.users[payload.id], payload.fields);\n\t\t\t\t}\n\t\t\t},\n\t\t\tunpinUser: (state, payload) =>\n\t\t\t{\n\t\t\t\tconst pinnedUser = Object.values(state.users).find(user => user.pinned === true);\n\n\t\t\t\tif (pinnedUser)\n\t\t\t\t{\n\t\t\t\t\tstate.users[pinnedUser.id].pinned = false;\n\t\t\t\t}\n\t\t\t},\n\t\t}\n\t}\n\n\tvalidate(payload)\n\t{\n\t\tconst result = {};\n\n\t\tif (Type.isNumber(payload.id) || Type.isString(payload.id))\n\t\t{\n\t\t\tresult.id = parseInt(payload.id, 10);\n\t\t}\n\n\t\tif (ConferenceUserState[payload.state])\n\t\t{\n\t\t\tresult.state = payload.state;\n\t\t}\n\n\t\tif (Type.isBoolean(payload.talking))\n\t\t{\n\t\t\tresult.talking = payload.talking;\n\t\t}\n\n\t\tif (Type.isBoolean(payload.pinned))\n\t\t{\n\t\t\tresult.pinned = payload.pinned;\n\t\t}\n\n\t\tif (Type.isBoolean(payload.cameraState))\n\t\t{\n\t\t\tresult.cameraState = payload.cameraState;\n\t\t}\n\n\t\tif (Type.isBoolean(payload.microphoneState))\n\t\t{\n\t\t\tresult.microphoneState = payload.microphoneState;\n\t\t}\n\n\t\tif (Type.isBoolean(payload.screenState))\n\t\t{\n\t\t\tresult.screenState = payload.screenState;\n\t\t}\n\n\t\tif (Type.isBoolean(payload.floorRequestState))\n\t\t{\n\t\t\tresult.floorRequestState = payload.floorRequestState;\n\t\t}\n\n\t\treturn result;\n\t}\n\n\tgetStateSaveException()\n\t{\n\t\treturn {\n\t\t\tusers: false\n\t\t}\n\t}\n}"],"names":["ApplicationModel","common","host","getVariable","location","protocol","siteId","userId","languageId","dialog","dialogId","chatId","diskFolderId","messageLimit","enableReadMessages","messageExtraCount","disk","enabled","maxFileSize","call","serverEnabled","maxParticipants","mobile","keyboardShow","device","type","DeviceType","desktop","orientation","DeviceOrientation","portrait","options","quoteEnable","quoteFromRight","autoplayVideo","darkBackground","showSmiles","error","active","code","description","Object","assign","set","store","payload","commit","validate","hideSmiles","state","hasChange","group","hasOwnProperty","field","isSaveNeeded","saveState","increaseDialogExtraCount","count","decreaseDialogExtraCount","newCounter","clearDialogExtraCount","fields","result","toString","startsWith","substr","parseInt","isNaN","VuexBuilderModel","ConferenceModel","inited","passChecked","showChat","userCount","messageCount","userInCallCount","ConferenceStateType","preparation","callEnded","conferenceTitle","alias","permissionsRequested","conferenceStarted","conferenceStartDate","joinWithVideo","userReadyToJoin","isBroadcast","users","usersInCall","presenters","rightPanelMode","RightPanelMode","hidden","hasErrorInCall","user","id","hash","newState","changeRightPanelMode","mode","setPermissionsRequested","status","setPresenters","Array","isArray","setUsers","removeUsers","setUsersInCall","removeUsersInCall","setConferenceTitle","setBroadcastMode","broadcastMode","componentError","startCall","endCall","returnToPreparation","toggleSmiles","setError","errorCode","setAlias","setJoinType","setConferenceStatus","setConferenceHasErrorInCall","setConferenceStartDate","Date","setUserReadyToJoin","replace","forEach","presenter","includes","push","filter","IntersectionType","empty","equal","none","found","foundReverse","MessagesModel","created","collection","mutationType","saveMessageList","saveFileList","saveUserList","templateId","templateType","placeholderType","authorId","date","text","textConverted","params","TYPE","COMPONENT_ID","unread","sending","retry","blink","getMutationType","initialType","MutationType","appliedType","getLastId","length","lastId","i","element","getMessage","messageId","index","get","getBlank","getElementState","getSaveFileList","getSaveUserList","add","countMessages","message","getTime","dispatch","actionStart","test","Vue","nextTick","actionError","actionFinish","map","prepareMessage","insertType","data","addPlaceholders","placeholders","requestMode","setBefore","setAfter","reverse","clearPlaceholders","updatePlaceholders","update","findIndex","el","setTimeout","elements","clear","keepPlaceholders","applyMutationType","readMessages","readId","unreadMessages","unreadId","initCollection","sort","a","b","Logger","warn","firstPlaceholderId","firstMessage","firstPlaceholderIndex","splice","amount","chats","chatsSave","isPush","getPayloadWithTempMessages","StorageLimit","messages","intersection","manageCacheBeforeSet","foundElements","removeIntersectionCacheElements","localMessage","isTemporaryMessage","unshift","getters","Set","every","EventEmitter","emit","EventType","messagesSet","readVisibleMessages","isSaveState","clearMessages","applied","scrollStickToTop","scrollMessageId","saveNeeded","updateSubordinateStates","concat","cache","recursive","noneElements","reverseResult","isSaveAvailable","readCounter","slice","FILE_ID","updateSaveLists","storedState","Utils","types","isUuidV4","uuid","chat_id","cast","textLegacy","convertToHtml","isConverted","text_converted","senderId","author_id","system","validateParams","BX","isComponent","like","e","hasResultElements","quote","image","enableBigSmile","trim","quoteSign","indexOf","textPrepare","split","join","decodeBbCode","whole","p1","p2","p3","p4","offset","changed","aInner","match","doubleSmileSize","start","width","middle","height","end","textOnly","item","arrayElement","decodeAttach","prop","htmlspecialcharsback","putReplacement","sendReplacement","codeReplacement","link","tag","document","createElement","href","target","allowList","outerHTML","open","inner","close","openlines","number","htmlspecialchars","historyId","textElementSize","url","attrs","size","title","attributes","name","value","command","html","parentNode","innerHTML","src","payloadData","platform","isBitrixMobile","payloadChatId","existsInPayload","doesTaskExist","find","payloadMessage","foundUploadTasks","fileId","window","imDialogUploadTasks","task","taskId","foundMessageTask","imDialogMessagesTasks","DialoguesModel","saveDialogList","saveChatList","writingList","quoteId","counter","userCounter","lastMessageId","managerList","readedList","muteList","textareaMessage","editId","init","owner","extranet","avatar","color","entityType","entityId","entityData1","entityData2","entityData3","dateCreate","restrictions","extend","leave","leaveOwner","rename","send","userList","mute","getByChatId","getQuoteId","getEditId","canSaveChat","canSaveDialog","isPrivateDialog","updateWriting","action","userName","actionName","updateReaded","increaseCounter","increasedCounter","rootState","application","dialogMuted","previousCounter","decreaseCounter","decreasedCounter","increaseMessageCounter","currentCounter","saveDialog","dialogues","cloneState","getElementStateSaveException","getState","dialog_id","user_counter","message_count","unread_id","last_message_id","readed_list","record","user_id","user_name","message_id","writing_list","manager_list","mute_list","entries","entry","ownerId","endsWith","encodeURI","entity_type","entity_id","entity_data_1","entity_data_2","entity_data_3","date_create","dateLastOpen","leave_owner","user_list","UsersModel","startOnlineCheckInterval","onlineList","mobileOnlineList","absentList","firstName","lastName","workPosition","gender","birthday","isBirthday","network","bot","connector","externalAuthId","idle","lastActivityDate","mobileLastDate","isOnline","isMobileOnline","absent","isAbsent","departments","phones","workPhone","personalMobile","personalPhone","innerPhone","getTemporary","getList","getOnlineStatus","addToOnlineList","mobileStatus","isMobileActive","addToMobileOnlineList","today","format","timeToNextMidnight","getTimeToNextMidnight","addToAbsentList","timeToNextDay","setInterval","startAbsentCheckInterval","newActivityDate","db","list","exceptionList","first_name","last_name","work_position","external_auth_id","last_activity_date","mobile_last_date","departmentId","work_phone","personal_mobile","personal_phone","inner_phone","nextMidnight","setHours","currentTime","absentEnd","intervalTime","FilesModel","extension","icon","FileStatus","done","progress","authorName","urlPreview","urlShow","urlDownload","viewerAttrs","file","getIconType","maxDiskFileSize","toLowerCase","FileType","video","audio","RecentModel","template","TemplateTypes","chatType","ChatTypes","chat","sectionCode","Section","general","lines","MessageStatus","received","pinned","Type","isNumber","currentItem","findItem","recentItem","prepareItem","existingItem","sortListByMessageDate","items","placeholderId","existingPlaceholder","pin","addPlaceholder","isStringFilled","isString","notification","isPlainObject","withAttach","WITH_ATTACH","withFile","WITH_FILE","purify","isDate","isBoolean","timestampA","timestampB","key","elementIndex","recent","NotificationsModel","searchCollection","total","unreadCounter","schema","NotificationTypesCodes","simple","display","settingName","getById","notificationId","findItemInArr","getSearchItemById","prepareNotification","setSearchResults","deleteSearchResults","setCounter","unreadTotal","setTotal","addItem","searchMode","existingItemInSearchCollection","read","ids","readAll","deleteAll","setSchema","sortByType","firstNotificationIndex","confirm","collectionName","firstItem","existingPlaceholderIndex","existingMessageIndex","isNil","decodeText","isObjectLike","notify_buttons","notifyButtons","JSON","parse","buttons","button","COMMAND","COMMAND_PARAMS","VALUE","TEXT","TITLE","DISPLAY","BG_COLOR","TEXT_COLOR","notify_type","placeholder","notify_read","setting_name","notify_title","arr","Text","decode","skipImages","Parser","Reflection","getClass","decodeSmileForLegacyCore","isBitrixDesktop","anchor","innerText","CallModel","ConferenceUserState","Idle","talking","cameraState","microphoneState","screenState","floorRequestState","getUser","getBlankUser","updateUser","unpinUser","pinnedUser","values"],"mappings":"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"}