File manager - Edit - /home/c14075/dragmet-ural.ru/www/bitrix/js/im/model/dist/registry.bundle.js.map
Back
{"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},\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},\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\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},\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 if (typeof fields.textOriginal === \"string\" || typeof fields.textOriginal === \"number\")\n\t\t{\n\t\t\tresult.text = fields.textOriginal.toString();\n\n\t\t\tif (typeof fields.text === \"string\" || typeof fields.text === \"number\")\n\t\t\t{\n\t\t\t\tresult.textConverted = this.convertToHtml({\n\t\t\t\t\ttext: fields.text.toString(),\n\t\t\t\t\tisConverted: true\n\t\t\t\t});\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] = this.decodeAttach(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\ttext = this.decodeBbCode(text, false, enableBigSmile);\n\n\t\tif (quote)\n\t\t{\n\t\t\ttext = text.replace(/------------------------------------------------------<br \\/>(.*?)\\[(.*?)\\]<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}xx\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>/ig, 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\\/?)>/ig, '</span>').replace(/<br(\\s\\/?)>(\\n?)<br(\\s\\/?)>(\\n?)<span/ig, '<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 \\/>/ig, '<br />');\n\t\ttext = text.replace(/<br \\/><br>/ig, '<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\\]/ig, 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\\]/ig, 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\\]/ig, 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\\]/ig, 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\\]/ig, '<span class=\"bx-smile bx-im-smile-like\"></span>');\n\t\ttext = text.replace(/\\[DISLIKE\\]/ig, '<span class=\"bx-smile bx-im-smile-dislike\"></span>');\n\n\t\ttext = text.replace(/\\[BR\\]/ig, '<br/>');\n\t\ttext = text.replace(/\\[([buis])\\](.*?)\\[(\\/[buis])\\]/ig, (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\\]/ig, (whole, openlines, chatId, inner) => openlines? inner: '<span class=\"bx-im-mention\" data-type=\"CHAT\" data-value=\"chat'+chatId+'\">'+inner+'</span>'); // TODO tag CHAT\n\t\ttext = text.replace(/\\[dialog=(chat\\d+|\\d+)(?: message=(\\d+))?](.*?)\\[\\/dialog]/gi, (whole, dialogId, messageId, message) => message);\n\n\t\tif (false && Utils.device.isMobile())\n\t\t{\n\t\t\tlet replacements = [];\n\t\t\ttext = text.replace(/\\[CALL(?:=(.+?))?\\](.+?)?\\[\\/CALL\\]/ig, (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\\]/ig, (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\\]/ig, (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\\=([^\\]]*)\\]/ig, '').trim().length;\n\t\t}\n\n\t\ttext = text.replace(/\\[icon\\=([^\\]]*)\\]/ig, (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]/ig, (match) =>\n\t\t{\n\t\t\treturn match.replace(/\\[SEND(?:=(.+))?\\](.+?)?\\[\\/SEND]/ig, (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]/ig, (match) =>\n\t\t{\n\t\t\treturn match.replace(/\\[PUT(?:=(.+))?\\](.+?)?\\[\\/PUT]/ig, (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 { Type } 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\tif (state.collection[index].sectionCode === NotificationTypesCodes.simple)\n\t\t\t\t\t{\n\t\t\t\t\t\tstate.collection[index].unread = false;\n\t\t\t\t\t}\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\t// previous P&P format\n\t\tif (Type.isString(fields.textOriginal) || Type.isNumber(fields.textOriginal))\n\t\t{\n\t\t\tresult.text = fields.textOriginal.toString();\n\n\t\t\tif (Type.isString(fields.text) || Type.isNumber(fields.text))\n\t\t\t{\n\t\t\t\tresult.textConverted = this.convertToHtml({\n\t\t\t\t\ttext: fields.text.toString(),\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\t\telse // modern format\n\t\t{\n\t\t\tif (!Type.isNil(fields.text_converted))\n\t\t\t{\n\t\t\t\tfields.textConverted = fields.text_converted;\n\t\t\t}\n\t\t\tif (Type.isString(fields.textConverted) || Type.isNumber(fields.textConverted))\n\t\t\t{\n\t\t\t\tresult.textConverted = fields.textConverted.toString();\n\t\t\t}\n\t\t\tif (Type.isString(fields.text) || Type.isNumber(fields.text))\n\t\t\t{\n\t\t\t\tresult.text = fields.text.toString();\n\n\t\t\t\tlet isConverted = !Type.isNil(result.textConverted);\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});\n\t\t\t}\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\t/* region Text utils */\n\tconvertToHtml(params = {})\n\t{\n\t\tlet { text = '' } = params;\n\n\t\ttext = text.trim();\n\t\ttext = text.replace(/\\n/gi, '<br />');\n\t\ttext = text.replace(/\\t/gi, ' ');\n\n\t\ttext = NotificationsModel.decodeBbCode({ text });\n\n\t\tif (Utils.platform.isBitrixDesktop())\n\t\t{\n\t\t\ttext = text.replace(/<a(.*?)>(.*?)<\\/a>/ig, function(whole, anchor, text) {\n\t\t\t\treturn '<a'+anchor.replace('target=\"_self\"', 'target=\"_blank\"')+' class=\"bx-im-notifications-item-link\">'+text+'</a>';\n\t\t\t});\n\t\t}\n\n\t\treturn text;\n\t};\n\n\tstatic decodeBbCode(params = {})\n\t{\n\t\tlet { text } = params;\n\n\t\ttext = text.replace(/\\[url=([^\\]]+)\\](.*?)\\[\\/url\\]/ig, 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\tconst 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\\]/ig, '<span class=\"bx-smile bx-im-smile-like\"></span>');\n\t\ttext = text.replace(/\\[DISLIKE\\]/ig, '<span class=\"bx-smile bx-im-smile-dislike\"></span>');\n\n\t\ttext = text.replace(/\\[RATING\\=([1-5]{1})\\]/ig, (whole, rating) => {\n\t\t\t// todo: refactor legacy call\n\t\t\treturn BX.MessengerCommon.linesVoteHeadNodes(0, rating, false).outerHTML;\n\t\t});\n\n\t\ttext = text.replace(/\\[BR\\]/ig, '<br/>');\n\t\ttext = text.replace(/\\[([buis])\\](.*?)\\[(\\/[buis])\\]/ig, (whole, open, inner, close) => {\n\t\t\treturn '<' + open + '>' + inner + '<' + close + '>';\n\t\t});\n\n\t\ttext = text.replace(/\\[CHAT=(imol\\|)?([0-9]{1,})\\](.*?)\\[\\/CHAT\\]/ig, (whole, openlines, chatId, inner) => {\n\t\t\tchatId = parseInt(chatId);\n\n\t\t\tif (chatId <= 0)\n\t\t\t{\n\t\t\t\treturn inner;\n\t\t\t}\n\n\t\t\tif (openlines)\n\t\t\t{\n\t\t\t\treturn '<span class=\"bx-im-mention\" data-type=\"OPENLINES\" data-value=\"'+chatId+'\">'+inner+'</span>';\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\treturn '<span class=\"bx-im-mention\" data-type=\"CHAT\" data-value=\"'+chatId+'\">'+inner+'</span>';\n\t\t\t}\n\t\t});\n\t\ttext = text.replace(/\\[USER=([0-9]{1,})\\](.*?)\\[\\/USER\\]/ig, (whole, userId, text) =>\n\t\t{\n\t\t\tlet html = '';\n\n\t\t\tuserId = parseInt(userId);\n\t\t\tif (userId > 0 && typeof(BXIM) != 'undefined')\n\t\t\t{\n\t\t\t\thtml = `<span class=\"bx-im-mention ${userId === +BXIM.userId ? 'bx-messenger-ajax-self' : ''}\" data-type=\"USER\" data-value=\"${userId}\">${text}</span>`;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\thtml = text;\n\t\t\t}\n\n\t\t\treturn html;\n\t\t});\n\n\t\ttext = text.replace(/\\[dialog=(chat\\d+|\\d+)(?: message=(\\d+))?](.*?)\\[\\/dialog]/gi, (whole, dialogId, messageId, message) => message);\n\n\t\ttext = text.replace(/\\[PCH=([0-9]{1,})\\](.*?)\\[\\/PCH\\]/ig, (whole, historyId, text) => text);\n\n\t\treturn text;\n\t}\n\t/* endregion Text utils */\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","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","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","textOriginal","text_converted","senderId","author_id","system","validateParams","BX","isComponent","like","decodeAttach","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","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","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","isBitrixDesktop","anchor","rating","MessengerCommon","linesVoteHeadNodes","BXIM","CallModel","ConferenceUserState","Idle","talking","cameraState","microphoneState","screenState","floorRequestState","getUser","getBlankUser","updateUser","unpinUser","pinnedUser","values"],"mappings":"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"}
| ver. 1.4 |
Github
|
.
| PHP 7.4.33 | Generation time: 0.28 |
proxy
|
phpinfo
|
Settings