403Webshell
Server IP : 80.87.202.40  /  Your IP : 216.73.216.169
Web Server : Apache
System : Linux rospirotorg.ru 5.14.0-539.el9.x86_64 #1 SMP PREEMPT_DYNAMIC Thu Dec 5 22:26:13 UTC 2024 x86_64
User : bitrix ( 600)
PHP Version : 8.2.27
Disable Function : NONE
MySQL : OFF |  cURL : ON |  WGET : ON |  Perl : ON |  Python : OFF |  Sudo : ON |  Pkexec : ON
Directory :  /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/im/lib/utils/dist/

Upload File :
current_dir [ Writeable] document_root [ Writeable]

 

Command :


[ Back ]     

Current File : /home/bitrix/ext_www/rospirotorg.ru/bitrix/js/im/lib/utils/dist/utils.bundle.js.map
{"version":3,"file":"utils.bundle.js","sources":["../src/utils.js"],"sourcesContent":["/**\n * Bitrix Messenger\n * Utils\n *\n * @package bitrix\n * @subpackage im\n * @copyright 2001-2019 Bitrix\n */\n\nimport {Text, Type, Dom} from 'main.core';\n\nimport {DateFormat} from 'im.const';\n\nimport 'main.date';\n\nimport './css/utils.css';\n\nlet Utils =\n{\n\tbrowser:\n\t{\n\t\tisSafari()\n\t\t{\n\t\t\tif (this.isChrome())\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (!navigator.userAgent.toLowerCase().includes('safari'))\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn !this.isSafariBased();\n\t\t},\n\t\tisSafariBased()\n\t\t{\n\t\t\tif (!navigator.userAgent.toLowerCase().includes('applewebkit'))\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\tnavigator.userAgent.toLowerCase().includes('yabrowser')\n\t\t\t\t|| navigator.userAgent.toLowerCase().includes('yaapp_ios_browser')\n\t\t\t\t|| navigator.userAgent.toLowerCase().includes('crios')\n\t\t\t)\n\t\t},\n\t\tisChrome()\n\t\t{\n\t\t\treturn navigator.userAgent.toLowerCase().includes('chrome');\n\t\t},\n\t\tisFirefox()\n\t\t{\n\t\t\treturn navigator.userAgent.toLowerCase().includes('firefox');\n\t\t},\n\t\tisIe()\n\t\t{\n\t\t\treturn navigator.userAgent.match(/(Trident\\/|MSIE\\/)/) !== null;\n\t\t},\n\n\t\tfindParent(item, findTag)\n\t\t{\n\t\t\tlet isHtmlElement = findTag instanceof HTMLElement;\n\n\t\t\tif (\n\t\t\t\t!findTag\n\t\t\t\t|| typeof findTag !== 'string' && !isHtmlElement\n\t\t\t)\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tfor (; item && item !== document; item = item.parentNode)\n\t\t\t{\n\t\t\t\tif (typeof findTag === 'string')\n\t\t\t\t{\n\t\t\t\t\tif (item.classList.contains(findTag))\n\t\t\t\t\t{\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (isHtmlElement)\n\t\t\t\t{\n\t\t\t\t\tif (item === findTag)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn item;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn null;\n\t\t}\n\t},\n\n\tplatform:\n\t{\n\t\tisMac()\n\t\t{\n\t\t\treturn navigator.userAgent.toLowerCase().includes('macintosh');\n\t\t},\n\t\tisLinux()\n\t\t{\n\t\t\treturn navigator.userAgent.toLowerCase().includes('linux');\n\t\t},\n\t\tisWindows()\n\t\t{\n\t\t\treturn navigator.userAgent.toLowerCase().includes('windows') || (!this.isMac() && !this.isLinux());\n\t\t},\n\t\tisBitrixMobile()\n\t\t{\n\t\t\treturn navigator.userAgent.toLowerCase().includes('bitrixmobile');\n\t\t},\n\t\tisBitrixDesktop()\n\t\t{\n\t\t\treturn navigator.userAgent.toLowerCase().includes('bitrixdesktop');\n\t\t},\n\t\tgetDesktopVersion()\n\t\t{\n\t\t\tif (typeof this.getDesktopVersionStatic !== 'undefined')\n\t\t\t{\n\t\t\t\treturn this.getDesktopVersionStatic;\n\t\t\t}\n\n\t\t\tif (typeof BXDesktopSystem === 'undefined')\n\t\t\t{\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\tconst version = BXDesktopSystem.GetProperty('versionParts');\n\t\t\tthis.getDesktopVersionStatic = version[3];\n\n\t\t\treturn this.getDesktopVersionStatic;\n\t\t},\n\t\tisDesktopFeatureEnabled(code)\n\t\t{\n\t\t\tif (typeof BXDesktopSystem === 'undefined')\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (typeof BXDesktopSystem.FeatureEnabled !== 'function')\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\treturn !!BXDesktopSystem.FeatureEnabled(code);\n\t\t},\n\t\tisMobile()\n\t\t{\n\t\t\treturn this.isAndroid() || this.isIos() || this.isBitrixMobile();\n\t\t},\n\t\tisIos(): boolean\n\t\t{\n\t\t\treturn navigator.userAgent.toLowerCase().includes('iphone') || navigator.userAgent.toLowerCase().includes('ipad');\n\t\t},\n\t\tgetIosVersion()\n\t\t{\n\t\t\tif (!this.isIos())\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\tlet matches = navigator.userAgent.toLowerCase().match(/(iphone|ipad)(.+)(OS\\s([0-9]+)([_.]([0-9]+))?)/i);\n\t\t\tif (!matches || !matches[4])\n\t\t\t{\n\t\t\t\treturn null;\n\t\t\t}\n\n\t\t\treturn parseFloat(matches[4]+'.'+(matches[6]? matches[6]: 0));\n\t\t},\n\t\tisAndroid()\n\t\t{\n\t\t\treturn navigator.userAgent.toLowerCase().includes('android');\n\t\t},\n\t\topenNewPage(url)\n\t\t{\n\t\t\tif (!url)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (this.isBitrixMobile())\n\t\t\t{\n\t\t\t\tif (typeof BX.MobileTools !== 'undefined')\n\t\t\t\t{\n\t\t\t\t\tlet openWidget = BX.MobileTools.resolveOpenFunction(url);\n\t\t\t\t\tif (openWidget)\n\t\t\t\t\t{\n\t\t\t\t\t\topenWidget();\n\t\t\t\t\t\treturn true;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tapp.openNewPage(url);\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\twindow.open(url, '_blank');\n\t\t\t}\n\n\t\t\treturn true;\n\t\t}\n\t},\n\n\tdevice:\n\t{\n\t\tisDesktop()\n\t\t{\n\t\t\treturn !this.isMobile();\n\t\t},\n\n\t\tisMobile()\n\t\t{\n\t\t\tif (typeof this.isMobileStatic !== 'undefined')\n\t\t\t{\n\t\t\t\treturn this.isMobileStatic;\n\t\t\t}\n\n\t\t\tthis.isMobileStatic = (\n\t\t\t\tnavigator.userAgent.toLowerCase().includes('android')\n\t\t\t\t|| navigator.userAgent.toLowerCase().includes('webos')\n\t\t\t\t|| navigator.userAgent.toLowerCase().includes('iphone')\n\t\t\t\t|| navigator.userAgent.toLowerCase().includes('ipad')\n\t\t\t\t|| navigator.userAgent.toLowerCase().includes('ipod')\n\t\t\t\t|| navigator.userAgent.toLowerCase().includes('blackberry')\n\t\t\t\t|| navigator.userAgent.toLowerCase().includes('windows phone')\n\t\t\t);\n\n\t\t\treturn this.isMobileStatic;\n\t\t},\n\n\t\torientationHorizontal: 'horizontal',\n\t\torientationPortrait: 'portrait',\n\n\t\tgetOrientation()\n\t\t{\n\t\t\tif (!this.isMobile())\n\t\t\t{\n\t\t\t\treturn this.orientationHorizontal;\n\t\t\t}\n\n\t\t\treturn Math.abs(window.orientation) === 0? this.orientationPortrait: this.orientationHorizontal;\n\t\t},\n\t},\n\n\ttypes:\n\t{\n\t\tisString(item)\n\t\t{\n\t\t\treturn item === '' ? true : (item ? (typeof (item) == \"string\" || item instanceof String) : false);\n\t\t},\n\n\t\tisArray(item)\n\t\t{\n\t\t\treturn item && Object.prototype.toString.call(item) == \"[object Array]\";\n\t\t},\n\n\t\tisFunction(item)\n\t\t{\n\t\t\treturn item === null ? false : (typeof (item) == \"function\" || item instanceof Function);\n\t\t},\n\n\t\tisDomNode(item)\n\t\t{\n\t\t\treturn item && typeof (item) == \"object\" && \"nodeType\" in item;\n\t\t},\n\n\t\tisDate(item)\n\t\t{\n\t\t\treturn item && Object.prototype.toString.call(item) == \"[object Date]\";\n\t\t},\n\n\t\tisPlainObject(item)\n\t\t{\n\t\t\tif (!item || typeof item !== \"object\" || item.nodeType)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst hasProp = Object.prototype.hasOwnProperty;\n\t\t\ttry\n\t\t\t{\n\t\t\t\tif (\n\t\t\t\t\titem.constructor\n\t\t\t\t\t&& !hasProp.call(item, \"constructor\")\n\t\t\t\t\t&& !hasProp.call(item.constructor.prototype, \"isPrototypeOf\")\n\t\t\t\t)\n\t\t\t\t{\n\t\t\t\t\treturn false;\n\t\t\t\t}\n\t\t\t}\n\t\t\tcatch (e)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tlet key;\n\t\t\tfor (let key in item)\n\t\t\t{\n\t\t\t}\n\n\t\t\treturn typeof(key) === \"undefined\" || hasProp.call(item, key);\n\t\t},\n\n\t\tisUuidV4(uuid)\n\t\t{\n\t\t\tif (!this.isString(uuid))\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst uuidV4pattern = new RegExp(/^[0-9A-F]{8}-[0-9A-F]{4}-4[0-9A-F]{3}-[89AB][0-9A-F]{3}-[0-9A-F]{12}$/i);\n\n\t\t\treturn uuid.search(uuidV4pattern) === 0;\n\t\t},\n\t},\n\n\tdialog:\n\t{\n\t\tgetChatIdByDialogId(dialogId)\n\t\t{\n\t\t\tif (!this.isChatId(dialogId))\n\t\t\t{\n\t\t\t\treturn 0;\n\t\t\t}\n\n\t\t\treturn parseInt(dialogId.toString().substr(4));\n\t\t},\n\n\t\tisChatId(dialogId)\n\t\t{\n\t\t\treturn dialogId.toString().startsWith('chat')\n\t\t},\n\n\t\tisEmptyDialogId(dialogId)\n\t\t{\n\t\t\tif (!dialogId)\n\t\t\t{\n\t\t\t\treturn true;\n\t\t\t}\n\n\t\t\tif (typeof dialogId === \"string\")\n\t\t\t{\n\t\t\t\tif (dialogId === 'chat0' || dialogId === \"0\")\n\t\t\t\t{\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn false;\n\t\t},\n\t},\n\n\ttext:\n\t{\n\t\tquote(text, params, files = {}, localize = null)\n\t\t{\n\t\t\tif (typeof text !== 'string')\n\t\t\t{\n\t\t\t\treturn text.toString();\n\t\t\t}\n\n\t\t\tif (!localize)\n\t\t\t{\n\t\t\t\tlocalize = BX.message;\n\t\t\t}\n\n\t\t\ttext = text.replace(/\\[USER=([0-9]{1,})](.*?)\\[\\/USER]/gi, (whole, userId, text) => text);\n\t\t\ttext = text.replace(/\\[CHAT=(imol\\|)?([0-9]{1,})](.*?)[\\/CHAT]/gi, (whole, imol, chatId, text) => text);\n\t\t\ttext = text.replace(/\\[CALL(?:=(.+?))?](.+?)?\\[\\/CALL]/gi, (whole, command, text) => text? text: command);\n\t\t\ttext = text.replace(/\\[ATTACH=([0-9]{1,})]/gi, (whole, command, text) => command === 10000? '': '['+localize['IM_UTILS_TEXT_ATTACH']+'] ');\n\t\t\ttext = text.replace(/\\[RATING=([1-5]{1})]/gi, (whole, rating) => '['+localize.IM_F_RATING+'] ');\n\t\t\ttext = text.replace(/&nbsp;/gi, \" \");\n\n\t\t\ttext = text.replace(/------------------------------------------------------(.*?)------------------------------------------------------/gmis, \"[\"+localize[\"IM_UTILS_TEXT_QUOTE\"]+\"]\");\n\t\t\ttext = text.replace(/^(>>(.*)\\n)/gi, \"[\"+localize[\"IM_UTILS_TEXT_QUOTE\"]+\"]\\n\");\n\n\t\t\tif (params && params.FILE_ID && params.FILE_ID.length > 0)\n\t\t\t{\n\t\t\t\tlet filesText = [];\n\t\t\t\tparams.FILE_ID.forEach(fileId =>\n\t\t\t\t{\n\t\t\t\t\tif (files[fileId].type === 'image')\n\t\t\t\t\t{\n\t\t\t\t\t\tfilesText.push(localize['IM_UTILS_TEXT_IMAGE']);\n\t\t\t\t\t}\n\t\t\t\t\telse if (files[fileId].type === 'audio')\n\t\t\t\t\t{\n\t\t\t\t\t\tfilesText.push(localize['IM_UTILS_TEXT_AUDIO']);\n\t\t\t\t\t}\n\t\t\t\t\telse if (files[fileId].type === 'video')\n\t\t\t\t\t{\n\t\t\t\t\t\tfilesText.push(localize['IM_UTILS_TEXT_VIDEO']);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tfilesText.push(files[fileId].name);\n\t\t\t\t\t}\n\t\t\t\t});\n\n\t\t\t\tif (filesText.length <= 0)\n\t\t\t\t{\n\t\t\t\t\tfilesText.push(localize['IM_UTILS_TEXT_FILE']);\n\t\t\t\t}\n\n\t\t\t\ttext = filesText.join('\\n')+text;\n\t\t\t}\n\t\t\telse if (params && params.ATTACH && params.ATTACH.length > 0)\n\t\t\t{\n\t\t\t\ttext = '['+localize['IM_UTILS_TEXT_ATTACH']+']\\n'+text;\n\t\t\t}\n\t\t\tif (text.length <= 0)\n\t\t\t{\n\t\t\t\ttext = localize['IM_UTILS_TEXT_DELETED'];\n\t\t\t}\n\n\t\t\treturn text.trim();\n\t\t},\n\n\t\tpurify(text, params, files = {}, localize = null)\n\t\t{\n\t\t\tif (typeof text !== 'string')\n\t\t\t{\n\t\t\t\treturn text.toString();\n\t\t\t}\n\n\t\t\tif (!localize)\n\t\t\t{\n\t\t\t\tlocalize = BX.message;\n\t\t\t}\n\n\t\t\ttext = text.trim();\n\n\t\t\tif (text.startsWith('/me'))\n\t\t\t{\n\t\t\t\ttext = text.substr(4);\n\t\t\t}\n\t\t\telse if (text.startsWith('/loud'))\n\t\t\t{\n\t\t\t\ttext = text.substr(6);\n\t\t\t}\n\n\t\t\ttext = text.replace(/<br><br \\/>/gi, '<br />');\n\t\t\ttext = text.replace(/<br \\/><br>/gi, '<br />');\n\n\t\t\tconst codeReplacement = [];\n\t\t\ttext = text.replace(/\\[CODE](<br \\/>)?(.*?)\\[\\/CODE]/sig, (whole, br, text) =>\n\t\t\t{\n\t\t\t\tconst id = codeReplacement.length;\n\t\t\t\tcodeReplacement.push(text);\n\t\t\t\treturn '####REPLACEMENT_CODE_'+id+'####';\n\t\t\t});\n\n\t\t\ttext = text.replace(/\\[PUT(?:=(?:.+?))?\\](?:.+?)?\\[\\/PUT]/gi, function(match)\n\t\t\t{\n\t\t\t\treturn match.replace(/\\[PUT(?:=(.+))?\\](.+?)?\\[\\/PUT]/gi, function(whole, command, text) {\n\t\t\t\t\treturn  text? text: command;\n\t\t\t\t});\n\t\t\t});\n\n\t\t\ttext = text.replace(/\\[SEND(?:=(?:.+?))?\\](?:.+?)?\\[\\/SEND]/gi, function(match)\n\t\t\t{\n\t\t\t\treturn match.replace(/\\[SEND(?:=(.+))?\\](.+?)?\\[\\/SEND]/gi, function(whole, command, text) {\n\t\t\t\t\treturn  text? text: command;\n\t\t\t\t});\n\t\t\t});\n\n\t\t\ttext = text.replace(/\\[b]([^[]*(?:\\[(?!b]|\\/b])[^[]*)*)\\[\\/b]/gi, (whole, text) => text);\n\t\t\ttext = text.replace(/\\[u]([^[]*(?:\\[(?!u]|\\/u])[^[]*)*)\\[\\/u]/gi, (whole, text) => text);\n\t\t\ttext = text.replace(/\\[i]([^[]*(?:\\[(?!i]|\\/i])[^[]*)*)\\[\\/i]/gi, (whole, text) => text);\n\n\t\t\ttext = text.replace(/\\[url](.*?)\\[\\/url]/gis, '$1');\n\t\t\ttext = text.replace(/\\[RATING=([1-5]{1})]/gi, () => '['+localize['IM_UTILS_TEXT_RATING']+'] ');\n\t\t\ttext = text.replace(/\\[ATTACH=([0-9]{1,})]/gi, () => '['+localize['IM_UTILS_TEXT_ATTACH']+'] ');\n\t\t\ttext = text.replace(/\\[USER=([0-9]+)( REPLACE)?](.*?)\\[\\/USER]/gi, '$3');\n\t\t\ttext = text.replace(/\\[CHAT=([0-9]{1,})](.*?)\\[\\/CHAT]/gi, '$2');\n\t\t\ttext = text.replace(/\\[context=(chat\\d+|\\d+:\\d+)\\/(\\d+)](.*?)\\[\\/context]/gis, (whole, dialogId, messageId, message) => message);\n\t\t\ttext = text.replace(/\\[SEND(?:=(?:.+?))?\\](.+?)?\\[\\/SEND]/gi, '$1');\n\t\t\ttext = text.replace(/\\[PUT(?:=(?:.+?))?\\](.+?)?\\[\\/PUT]/gi, '$1');\n\t\t\ttext = text.replace(/\\[CALL=(.*?)](.*?)\\[\\/CALL\\]/gi, '$2');\n\t\t\ttext = text.replace(/\\[PCH=([0-9]{1,})](.*?)\\[\\/PCH]/gi, '$2');\n\t\t\ttext = text.replace(/\\[size=(\\d+)](.*?)\\[\\/size]/gis, '$2');\n\t\t\ttext = text.replace(/\\[color=#([0-9a-f]{3}|[0-9a-f]{6})](.*?)\\[\\/color]/gis, '$2');\n\t\t\ttext = text.replace(/<img.*?data-code=\"([^\"]*)\".*?>/gi, '$1');\n\t\t\ttext = text.replace(/<span.*?title=\"([^\"]*)\".*?>.*?<\\/span>/gi, '($1)');\n\t\t\ttext = text.replace(/<img.*?title=\"([^\"]*)\".*?>/gi, '($1)');\n\t\t\ttext = text.replace(/\\[ATTACH=([0-9]{1,})]/gi, (whole, command, text) => command === 10000? '': '['+localize['IM_UTILS_TEXT_ATTACH']+'] ');\n\t\t\ttext = text.replace(/<s>([^\"]*)<\\/s>/gi, ' ');\n\t\t\ttext = text.replace(/\\[s]([^\"]*)\\[\\/s]/gi, ' ');\n\t\t\ttext = text.replace(/\\[icon=([^\\]]*)]/gi, (whole) =>\n\t\t\t{\n\t\t\t\tlet title = whole.match(/title=(.*[^\\s\\]])/i);\n\t\t\t\tif (title && title[1])\n\t\t\t\t{\n\t\t\t\t\ttitle = title[1];\n\t\t\t\t\tif (title.indexOf('width=') > -1)\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle = title.substr(0, title.indexOf('width='))\n\t\t\t\t\t}\n\t\t\t\t\tif (title.indexOf('height=') > -1)\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle = title.substr(0, title.indexOf('height='))\n\t\t\t\t\t}\n\t\t\t\t\tif (title.indexOf('size=') > -1)\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle = title.substr(0, title.indexOf('size='))\n\t\t\t\t\t}\n\t\t\t\t\tif (title)\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle = '('+title.trim()+')';\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\ttitle = '('+localize['IM_UTILS_TEXT_ICON']+')';\n\t\t\t\t}\n\t\t\t\treturn title;\n\t\t\t});\n\n\t\t\tcodeReplacement.forEach((element, index) => {\n\t\t\t\ttext = text.replace('####REPLACEMENT_CODE_'+index+'####', element);\n\t\t\t});\n\n\t\t\ttext = text.replace(/------------------------------------------------------(.*?)------------------------------------------------------/gmis, \"[\"+localize[\"IM_UTILS_TEXT_QUOTE\"]+\"] \");\n\t\t\ttext = text.replace(/^(>>(.*)(\\n)?)/gmi, \"[\"+localize[\"IM_UTILS_TEXT_QUOTE\"]+\"] \");\n\n\t\t\ttext = text.replace(/<\\/?[^>]+>/gi, '');\n\n\t\t\tif (params && params.FILE_ID && params.FILE_ID.length > 0)\n\t\t\t{\n\t\t\t\tlet filesText = [];\n\n\t\t\t\tif (typeof files === 'object')\n\t\t\t\t{\n\t\t\t\t\tparams.FILE_ID.forEach(fileId =>\n\t\t\t\t\t{\n\t\t\t\t\t\tif (typeof files[fileId] === 'undefined')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (files[fileId].type === 'image')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfilesText.push(localize['IM_UTILS_TEXT_IMAGE']);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (files[fileId].type === 'audio')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfilesText.push(localize['IM_UTILS_TEXT_AUDIO']);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse if (files[fileId].type === 'video')\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfilesText.push(localize['IM_UTILS_TEXT_VIDEO']);\n\t\t\t\t\t\t}\n\t\t\t\t\t\telse\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\tfilesText.push(files[fileId].name);\n\t\t\t\t\t\t}\n\t\t\t\t\t});\n\t\t\t\t}\n\n\t\t\t\tif (filesText.length <= 0)\n\t\t\t\t{\n\t\t\t\t\tfilesText.push(localize['IM_UTILS_TEXT_FILE']);\n\t\t\t\t}\n\n\t\t\t\ttext = filesText.join(' ')+text;\n\t\t\t}\n\t\t\telse if (params && (params.WITH_ATTACH || params.ATTACH && params.ATTACH.length > 0))\n\t\t\t{\n\t\t\t\ttext = '['+localize['IM_UTILS_TEXT_ATTACH']+'] '+text;\n\t\t\t}\n\t\t\telse if (params && params.WITH_FILE)\n\t\t\t{\n\t\t\t\ttext = '['+localize['IM_UTILS_TEXT_FILE']+'] '+text;\n\t\t\t}\n\t\t\tif (text.length <= 0)\n\t\t\t{\n\t\t\t\ttext = localize['IM_UTILS_TEXT_DELETED'];\n\t\t\t}\n\n\t\t\treturn text.replace('\\n', ' ').trim();\n\t\t},\n\n\t\tdecode(text = '', options = {})\n\t\t{\n\t\t\tif (!text)\n\t\t\t{\n\t\t\t\treturn text;\n\t\t\t}\n\n\t\t\tconst enableBigSmile = true;\n\n\t\t\ttext = text.toString().trim();\n\t\t\ttext = Utils.text.htmlspecialchars(text);\n\n\t\t\tif (text.startsWith('/me'))\n\t\t\t{\n\t\t\t\ttext = `<i>${text.substr(4)}</i>`;\n\t\t\t}\n\t\t\telse if (text.startsWith('/loud'))\n\t\t\t{\n\t\t\t\ttext = `<b>${text.substr(6)}</b>`;\n\t\t\t}\n\n\t\t\tconst quoteSign = \"&gt;&gt;\";\n\t\t\tif (text.indexOf(quoteSign) >= 0)\n\t\t\t{\n\t\t\t\tlet textPrepareFlag = false;\n\t\t\t\tconst textPrepare = text.split(\"\\n\");\n\t\t\t\tfor (let i = 0; i < textPrepare.length; i++)\n\t\t\t\t{\n\t\t\t\t\tif (textPrepare[i].startsWith(quoteSign))\n\t\t\t\t\t{\n\t\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\t\twhile (++i < textPrepare.length && textPrepare[i].startsWith(quoteSign))\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\ttextPrepare[i] = textPrepare[i].replace(quoteSign, '');\n\t\t\t\t\t\t}\n\t\t\t\t\t\ttextPrepare[i - 1] += '</div></div><br>';\n\t\t\t\t\t\ttextPrepareFlag = true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\ttext = textPrepare.join(\"<br />\");\n\t\t\t}\n\n\t\t\ttext = text.replace(/\\n/gi, '<br />');\n\n\t\t\ttext = text.replace(/\\t/gi, '&nbsp;&nbsp;&nbsp;&nbsp;');\n\n\t\t\ttext = this.decodeBbCode(text, enableBigSmile);\n\n\t\t\ttext = text.replace(/------------------------------------------------------<br \\/>(.*?)\\[(.*?)\\](?: #(?:(?:chat)?\\d+|\\d+:\\d+)\\/\\d+)?<br \\/>(.*?)------------------------------------------------------(<br \\/>)?/g, function (whole, p1, p2, p3, p4, offset) {\n\t\t\t\treturn (offset > 0? '<br>': '') + \"<div class=\\\"bx-im-message-content-quote\\\"><div class=\\\"bx-im-message-content-quote-wrap\\\"><div class=\\\"bx-im-message-content-quote-name\\\"><span class=\\\"bx-im-message-content-quote-name-text\\\">\" + p1 + \"</span><span class=\\\"bx-im-message-content-quote-name-time\\\">\" + p2 + \"</span></div>\" + p3 + \"</div></div><br />\";\n\t\t\t});\n\t\t\ttext = text.replace(/------------------------------------------------------<br \\/>(.*?)------------------------------------------------------(<br \\/>)?/g, function (whole, p1, p2, p3, offset) {\n\t\t\t\treturn (offset > 0? '<br>': '') + \"<div class=\\\"bx-im-message-content-quote\\\"><div class=\\\"bx-im-message-content-quote-wrap\\\">\" + p1 + \"</div></div><br />\";\n\t\t\t});\n\n\t\t\tif (options.skipImages !== true)\n\t\t\t{\n\n\t\t\t\tlet changed = false;\n\t\t\t\ttext = text.replace(/(.)?((https|http):\\/\\/([\\S]+)\\.(jpg|jpeg|png|gif|webp)(\\?[\\S]+)?)/gi, function(whole, letter, url, offset)\n\t\t\t\t{\n\t\t\t\t\tif(\n\t\t\t\t\t\tletter && !(['>', ']'].includes(letter))\n\t\t\t\t\t\t|| !url.match(/(\\.(jpg|jpeg|png|gif|webp)\\?|\\.(jpg|jpeg|png|gif|webp)$)/i)\n\t\t\t\t\t\t|| url.toLowerCase().indexOf(\"/docs/pub/\") > 0\n\t\t\t\t\t\t|| url.toLowerCase().indexOf(\"logout=yes\") > 0\n\t\t\t\t\t)\n\t\t\t\t\t{\n\t\t\t\t\t\treturn whole;\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tchanged = true;\n\t\t\t\t\t\treturn (letter? letter: '')+'<span class=\"bx-im-element-file-image\"><img src=\"'+url+'\" class=\"bx-im-element-file-image-source-text\" onerror=\"Utils.hideErrorImage(this)\"></span>';\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tif (changed)\n\t\t\t\t{\n\t\t\t\t\ttext = text\n\t\t\t\t\t\t.replace(/<\\/span>(\\n?)<\\/a>(\\n?)<br(\\s\\/?)>/gi, '</span></a>')\n\t\t\t\t\t\t.replace(/<\\/span>(\\n?)(\\n?)<br(\\s\\/?)>/gi, '</span>')\n\t\t\t\t\t;\n\t\t\t\t}\n\n\t\t\t\tif (enableBigSmile)\n\t\t\t\t{\n\t\t\t\t\ttext = text.replace(\n\t\t\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\t\t\tfunction doubleSmileSize(match, start, width, middle, height, end) {\n\t\t\t\t\t\t\treturn start + (parseInt(width, 10) * 1.7) + middle + (parseInt(height, 10) * 1.7) + end;\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\tif (text.substr(-6) == '<br />')\n\t\t\t{\n\t\t\t\ttext = text.substr(0, text.length - 6);\n\t\t\t}\n\t\t\ttext = text.replace(/<br><br \\/>/gi, '<br />');\n\t\t\ttext = text.replace(/<br \\/><br>/gi, '<br />');\n\n\t\t\treturn text;\n\t\t},\n\n\t\tdecodeBbCode(text, enableBigSmile = true)\n\t\t{\n\t\t\tconst textOnly = false;\n\n\t\t\tlet putReplacement = [];\n\t\t\ttext = text.replace(/\\[PUT(?:=(.+?))?\\](.+?)?\\[\\/PUT\\]/gi, function(whole)\n\t\t\t{\n\t\t\t\tvar id = putReplacement.length;\n\t\t\t\tputReplacement.push(whole);\n\t\t\t\treturn '####REPLACEMENT_PUT_'+id+'####';\n\t\t\t});\n\n\t\t\tlet sendReplacement = [];\n\t\t\ttext = text.replace(/\\[SEND(?:=(.+?))?\\](.+?)?\\[\\/SEND\\]/gi, function(whole)\n\t\t\t{\n\t\t\t\tvar id = sendReplacement.length;\n\t\t\t\tsendReplacement.push(whole);\n\t\t\t\treturn '####REPLACEMENT_SEND_'+id+'####';\n\t\t\t});\n\n\t\t\tlet codeReplacement = [];\n\t\t\ttext = text.replace(/\\[CODE\\]\\n?(.*?)\\[\\/CODE\\]/gis, function(whole, text) {\n\t\t\t\tlet id = codeReplacement.length;\n\t\t\t\tcodeReplacement.push(text);\n\t\t\t\treturn '####REPLACEMENT_CODE_'+id+'####';\n\t\t\t});\n\n\t\t\t// base pattern for urls\n\t\t\ttext = text.replace(/\\[url(?:=([^[\\]]+))?](.*?)\\[\\/url]/gis, (whole, link, text) =>\n\t\t\t{\n\t\t\t\tconst url = Text.decode(link || text);\n\t\t\t\tif (!Utils.text.checkUrl(url))\n\t\t\t\t{\n\t\t\t\t\treturn text;\n\t\t\t\t}\n\n\t\t\t\treturn Dom.create({\n\t\t\t\t\ttag: 'a',\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\thref: url,\n\t\t\t\t\t\ttarget: \"_blank\"\n\t\t\t\t\t},\n\t\t\t\t\thtml: text\n\t\t\t\t}).outerHTML;\n\t\t\t});\n\n\t\t\t// url like https://bitrix24.com/?params[1]=\"test\"\n\t\t\ttext = text.replace(/\\[url(?:=(.+?[^[\\]]))?](.*?)\\[\\/url]/gis, (whole, link, text) =>\n\t\t\t{\n\t\t\t\tlet url = Text.decode(link || text);\n\t\t\t\tif (!Utils.text.checkUrl(url))\n\t\t\t\t{\n\t\t\t\t\treturn text;\n\t\t\t\t}\n\n\t\t\t\tif (!url.slice(url.lastIndexOf('[')).includes(']'))\n\t\t\t\t{\n\t\t\t\t\tif (text.startsWith(']'))\n\t\t\t\t\t{\n\t\t\t\t\t\turl = `${url}]`;\n\t\t\t\t\t\ttext = text.slice(1);\n\t\t\t\t\t}\n\t\t\t\t\telse if (text.startsWith('='))\n\t\t\t\t\t{\n\t\t\t\t\t\tconst urlPart = Text.decode(text.slice(1, text.lastIndexOf(']')));\n\t\t\t\t\t\turl = `${url}]=${urlPart}`;\n\t\t\t\t\t\ttext = text.slice(text.lastIndexOf(']')+1);\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn Dom.create({\n\t\t\t\t\ttag: 'a',\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\thref: url,\n\t\t\t\t\t\ttarget: \"_blank\"\n\t\t\t\t\t},\n\t\t\t\t\thtml: text\n\t\t\t\t}).outerHTML;\n\t\t\t});\n\n\t\t\ttext = text.replace(/\\[LIKE\\]/gi, '<span class=\"bx-smile bx-im-smile-like\"></span>');\n\t\t\ttext = text.replace(/\\[DISLIKE\\]/gi, '<span class=\"bx-smile bx-im-smile-dislike\"></span>');\n\n\t\t\ttext = text.replace(/\\[BR\\]/gi, '<br/>');\n\n\t\t\ttext = text.replace(/\\[b]([^[]*(?:\\[(?!b]|\\/b])[^[]*)*)\\[\\/b]/gi, (whole, text) => '<b>'+text+'</b>');\n\t\t\ttext = text.replace(/\\[u]([^[]*(?:\\[(?!u]|\\/u])[^[]*)*)\\[\\/u]/gi, (whole, text) => '<u>'+text+'</u>');\n\t\t\ttext = text.replace(/\\[i]([^[]*(?:\\[(?!i]|\\/i])[^[]*)*)\\[\\/i]/gi, (whole, text) => '<i>'+text+'</i>');\n\t\t\ttext = text.replace(/\\[s]([^[]*(?:\\[(?!s]|\\/s])[^[]*)*)\\[\\/s]/gi, (whole, text) => '<s>'+text+'</s>');\n\n\t\t\ttext = text.replace(/\\[size=(\\d+)(?:pt|px)?](.*?)\\[\\/size]/gis, (whole, number, text) => {\n\t\t\t\treturn Dom.create({\n\t\t\t\t\ttag: 'span',\n\t\t\t\t\tstyle: { fontSize: number + 'px' },\n\t\t\t\t\thtml: text\n\t\t\t\t}).outerHTML;\n\t\t\t});\n\n\t\t\ttext = text.replace(/\\[color=#([0-9a-f]{3}|[0-9a-f]{6})](.*?)\\[\\/color]/gis, (whole, hex, text) => {\n\t\t\t\treturn Dom.create({\n\t\t\t\t\ttag: 'span',\n\t\t\t\t\tstyle: { color: '#'+ hex },\n\t\t\t\t\thtml: text\n\t\t\t\t}).outerHTML;\n\t\t\t});\n\n\t\t\ttext = text.replace(/\\[USER=([0-9]+)( REPLACE)?](.*?)\\[\\/USER]/gi, (whole, userId, replace, userName) => {\n\t\t\t\tuserId = Number.parseInt(userId, 10);\n\n\t\t\t\tif (!Type.isNumber(userId) || userId === 0)\n\t\t\t\t{\n\t\t\t\t\treturn userName;\n\t\t\t\t}\n\n\t\t\t\tif (replace || !userName)\n\t\t\t\t{\n\t\t\t\t\tconst user = BX.Messenger.Application.Core.controller.store.getters['users/get'](userId);\n\t\t\t\t\tif (user)\n\t\t\t\t\t{\n\t\t\t\t\t\tuserName = Utils.text.htmlspecialchars(user.name);\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\tuserName = Text.decode(userName);\n\t\t\t\t}\n\n\t\t\t\tif (!userName)\n\t\t\t\t{\n\t\t\t\t\tuserName = `User ${userId}`;\n\t\t\t\t}\n\n\t\t\t\treturn BX.Dom.create({\n\t\t\t\t\ttag: 'span',\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclassName: 'bx-im-mention',\n\t\t\t\t\t\t'data-type': 'USER',\n\t\t\t\t\t\t'data-value': userId,\n\t\t\t\t\t},\n\t\t\t\t\ttext: userName\n\t\t\t\t}).outerHTML;\n\t\t\t});\n\n\t\t\ttext = text.replace(/\\[RATING\\=([1-5]{1})\\]/gi, (whole, rating) => {\n\t\t\t\t// todo: refactor legacy call\n\t\t\t\treturn BX.MessengerCommon.linesVoteHeadNodes(0, rating, false).outerHTML;\n\t\t\t});\n\n\t\t\ttext = text.replace(/\\[CHAT=(imol\\|)?([0-9]{1,})\\](.*?)\\[\\/CHAT\\]/gi, (whole, openlines, chatId, inner) => {\n\t\t\t\tchatId = parseInt(chatId);\n\n\t\t\t\tif (chatId <= 0)\n\t\t\t\t{\n\t\t\t\t\treturn inner;\n\t\t\t\t}\n\n\t\t\t\tif (openlines)\n\t\t\t\t{\n\t\t\t\t\treturn Dom.create({\n\t\t\t\t\t\ttag: 'span',\n\t\t\t\t\t\tattrs: {\n\t\t\t\t\t\t\tclassName: 'bx-im-mention',\n\t\t\t\t\t\t\t'data-type': 'OPENLINES',\n\t\t\t\t\t\t\t'data-value': chatId,\n\t\t\t\t\t\t},\n\t\t\t\t\t\ttext: inner\n\t\t\t\t\t}).outerHTML;\n\t\t\t\t}\n\n\t\t\t\treturn Dom.create({\n\t\t\t\t\ttag: 'span',\n\t\t\t\t\tattrs: {\n\t\t\t\t\t\tclassName: 'bx-im-mention',\n\t\t\t\t\t\t'data-type': 'CHAT',\n\t\t\t\t\t\t'data-value': chatId,\n\t\t\t\t\t},\n\t\t\t\t\ttext: inner\n\t\t\t\t}).outerHTML;\n\t\t\t});\n\n\t\t\ttext = text.replace(/\\[context=(chat\\d+|\\d+:\\d+)\\/(\\d+)](.*?)\\[\\/context]/gis, (whole, dialogId, messageId, message) => {\n\t\t\t\treturn message;\n\t\t\t});\n\n\t\t\tif (false && Utils.device.isMobile())\n\t\t\t{\n\t\t\t\tlet replacements = [];\n\t\t\t\ttext = text.replace(/\\[CALL(?:=(.+?))?\\](.+?)?\\[\\/CALL\\]/gi, (whole, number, text) => {\n\t\t\t\t\tlet index = replacements.length;\n\t\t\t\t\treplacements.push({number, text});\n\t\t\t\t\treturn `####REPLACEMENT_MARK_${index}####`;\n\t\t\t\t});\n\n\t\t\t\ttext = text.replace(/[+]{0,1}(?:[-\\/. ()\\[\\]~;#,]*[0-9]){10,}[^\\n\\r<][-\\/. ()\\[\\]~;#,0-9^]*/g, (number) => {\n\t\t\t\t\tlet pureNumber = number.replace(/\\D/g, '');\n\t\t\t\t\treturn `[CALL=${pureNumber}]${number}[/CALL]`;\n\t\t\t\t});\n\n\t\t\t\treplacements.forEach((item, index) => {\n\t\t\t\t\ttext = text.replace(`####REPLACEMENT_MARK_${index}####`, `[CALL=${item.number}]${item.text}[/CALL]`)\n\t\t\t\t});\n\t\t\t}\n\n\t\t\ttext = text.replace(/\\[CALL(?:=(.+?))?\\](.+?)?\\[\\/CALL\\]/gi, (whole, number, text) => '<span class=\"bx-im-mention\" data-type=\"CALL\" data-value=\"'+Utils.text.htmlspecialchars(number)+'\">'+text+'</span>'); // TODO tag CHAT\n\n\t\t\ttext = text.replace(/\\[PCH=([0-9]{1,})\\](.*?)\\[\\/PCH\\]/gi, (whole, historyId, text) => text); // TODO tag PCH\n\n\t\t\tlet textElementSize = 0;\n\t\t\tif (enableBigSmile)\n\t\t\t{\n\t\t\t\ttextElementSize = text.replace(/\\[icon\\=([^\\]]*)\\]/gi, '').trim().length;\n\t\t\t}\n\n\t\t\ttext = text.replace(/\\[icon\\=([^\\]]*)\\]/gi, (whole) =>\n\t\t\t{\n\t\t\t\tlet url = whole.match(/icon\\=(\\S+[^\\s.,> )\\];\\'\\\"!?])/i);\n\t\t\t\tif (url && url[1])\n\t\t\t\t{\n\t\t\t\t\turl = url[1];\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\treturn '';\n\t\t\t\t}\n\n\t\t\t\tlet attrs = {'src': url, 'border': 0};\n\n\t\t\t\tlet size = whole.match(/size\\=(\\d+)/i);\n\t\t\t\tif (size && size[1])\n\t\t\t\t{\n\t\t\t\t\tattrs['width'] = size[1];\n\t\t\t\t\tattrs['height'] = size[1];\n\t\t\t\t}\n\t\t\t\telse\n\t\t\t\t{\n\t\t\t\t\tlet width = whole.match(/width\\=(\\d+)/i);\n\t\t\t\t\tif (width && width[1])\n\t\t\t\t\t{\n\t\t\t\t\t\tattrs['width'] = width[1];\n\t\t\t\t\t}\n\n\t\t\t\t\tlet height = whole.match(/height\\=(\\d+)/i);\n\t\t\t\t\tif (height && height[1])\n\t\t\t\t\t{\n\t\t\t\t\t\tattrs['height'] = height[1];\n\t\t\t\t\t}\n\n\t\t\t\t\tif (attrs['width'] && !attrs['height'])\n\t\t\t\t\t{\n\t\t\t\t\t\tattrs['height'] = attrs['width'];\n\t\t\t\t\t}\n\t\t\t\t\telse if (attrs['height'] && !attrs['width'])\n\t\t\t\t\t{\n\t\t\t\t\t\tattrs['width'] = attrs['height'];\n\t\t\t\t\t}\n\t\t\t\t\telse if (attrs['height'] && attrs['width'])\n\t\t\t\t\t{}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\tattrs['width'] = 20;\n\t\t\t\t\t\tattrs['height'] = 20;\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tattrs['width'] = attrs['width']>100? 100: attrs['width'];\n\t\t\t\tattrs['height'] = attrs['height']>100? 100: attrs['height'];\n\n\t\t\t\tif (enableBigSmile && textElementSize === 0 && attrs['width'] === attrs['height'] && attrs['width'] === 20)\n\t\t\t\t{\n\t\t\t\t\tattrs['width'] = 40;\n\t\t\t\t\tattrs['height'] = 40;\n\t\t\t\t}\n\n\t\t\t\tlet title = whole.match(/title\\=(.*[^\\s\\]])/i);\n\t\t\t\tif (title && title[1])\n\t\t\t\t{\n\t\t\t\t\ttitle = title[1];\n\t\t\t\t\tif (title.indexOf('width=') > -1)\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle = title.substr(0, title.indexOf('width='))\n\t\t\t\t\t}\n\t\t\t\t\tif (title.indexOf('height=') > -1)\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle = title.substr(0, title.indexOf('height='))\n\t\t\t\t\t}\n\t\t\t\t\tif (title.indexOf('size=') > -1)\n\t\t\t\t\t{\n\t\t\t\t\t\ttitle = title.substr(0, title.indexOf('size='))\n\t\t\t\t\t}\n\t\t\t\t\tif (title)\n\t\t\t\t\t{\n\t\t\t\t\t\tattrs['title'] = Utils.text.htmlspecialchars(title).trim();\n\t\t\t\t\t\tattrs['alt'] = attrs['title'];\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\tlet attributes = '';\n\t\t\t\tfor (let name in attrs)\n\t\t\t\t{\n\t\t\t\t\tif (attrs.hasOwnProperty(name))\n\t\t\t\t\t{\n\t\t\t\t\t\tattributes += name+'=\"'+attrs[name]+'\" ';\n\t\t\t\t\t}\n\t\t\t\t}\n\n\t\t\t\treturn '<img class=\"bx-smile bx-icon\" '+attributes+'>';\n\t\t\t});\n\n\t\t\tsendReplacement.forEach((value, index) => {\n\t\t\t\ttext = text.replace('####REPLACEMENT_SEND_'+index+'####', value);\n\t\t\t});\n\n\t\t\ttext = text.replace(/\\[SEND(?:=(?:.+?))?\\](?:.+?)?\\[\\/SEND]/gi, (match) =>\n\t\t\t{\n\t\t\t\treturn match.replace(/\\[SEND(?:=(.+))?\\](.+?)?\\[\\/SEND]/gi, (whole, command, text) =>\n\t\t\t\t{\n\t\t\t\t\tlet html = '';\n\n\t\t\t\t\ttext = text? text: command;\n\t\t\t\t\tcommand = (command? command: text).replace('<br />', '\\n');\n\n\t\t\t\t\tif (!textOnly && text)\n\t\t\t\t\t{\n\t\t\t\t\t\ttext = text.replace(/<([\\w]+)[^>]*>(.*?)<\\\\1>/i, \"$2\", text);\n\t\t\t\t\t\ttext = text.replace(/\\[([\\w]+)[^\\]]*\\](.*?)\\[\\/\\1\\]/i, \"$2\", text);\n\n\t\t\t\t\t\tcommand = command.split('####REPLACEMENT_PUT_').join('####REPLACEMENT_SP_');\n\n\t\t\t\t\t\thtml = '<!--IM_COMMAND_START-->' +\n\t\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\t'</span>'+\n\t\t\t\t\t\t\t'<!--IM_COMMAND_END-->';\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\thtml = text;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn html;\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tputReplacement.forEach((value, index) => {\n\t\t\t\ttext = text.replace('####REPLACEMENT_PUT_'+index+'####', value);\n\t\t\t});\n\n\t\t\ttext = text.replace(/\\[PUT(?:=(?:.+?))?\\](?:.+?)?\\[\\/PUT]/gi, (match) =>\n\t\t\t{\n\t\t\t\treturn match.replace(/\\[PUT(?:=(.+))?\\](.+?)?\\[\\/PUT]/gi, (whole, command, text) =>\n\t\t\t\t{\n\t\t\t\t\tlet html = '';\n\n\t\t\t\t\ttext = text? text: command;\n\t\t\t\t\tcommand = (command? command: text).replace('<br />', '\\n');\n\n\t\t\t\t\tif (!textOnly && text)\n\t\t\t\t\t{\n\t\t\t\t\t\ttext = text.replace(/<([\\w]+)[^>]*>(.*?)<\\/\\1>/i, \"$2\", text);\n\t\t\t\t\t\ttext = text.replace(/\\[([\\w]+)[^\\]]*\\](.*?)\\[\\/\\1\\]/i, \"$2\", text);\n\n\t\t\t\t\t\thtml = '<!--IM_COMMAND_START-->' +\n\t\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\t'</span>'+\n\t\t\t\t\t\t\t'<!--IM_COMMAND_END-->';\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\thtml = text;\n\t\t\t\t\t}\n\n\t\t\t\t\treturn html;\n\t\t\t\t});\n\t\t\t});\n\n\t\t\tcodeReplacement.forEach((code, index) => {\n\t\t\t\ttext = text.replace('####REPLACEMENT_CODE_'+index+'####',\n\t\t\t\t\t!textOnly? '<div class=\"bx-im-message-content-code\">'+code+'</div>': code\n\t\t\t\t)\n\t\t\t});\n\n\t\t\tif (sendReplacement.length > 0)\n\t\t\t{\n\t\t\t\tdo\n\t\t\t\t{\n\t\t\t\t\tsendReplacement.forEach((value, index) => {\n\t\t\t\t\t\ttext = text.replace('####REPLACEMENT_SEND_'+index+'####', value);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\twhile (text.includes('####REPLACEMENT_SEND_'));\n\t\t\t}\n\n\t\t\ttext = text.split('####REPLACEMENT_SP_').join('####REPLACEMENT_PUT_');\n\n\t\t\tif (putReplacement.length > 0)\n\t\t\t{\n\t\t\t\tdo\n\t\t\t\t{\n\t\t\t\t\tputReplacement.forEach((value, index) => {\n\t\t\t\t\t\ttext = text.replace('####REPLACEMENT_PUT_'+index+'####', value);\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\twhile (text.includes('####REPLACEMENT_PUT_'));\n\t\t\t}\n\n\t\t\treturn text;\n\t\t},\n\n\t\tcheckUrl(url): boolean\n\t\t{\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\n\t\t\tconst checkCorrectStartLink = ['/', ...allowList].find(protocol => {\n\t\t\t\treturn url.startsWith(protocol);\n\t\t\t});\n\t\t\tif (!checkCorrectStartLink)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tconst element = Dom.create({ tag: 'a', attrs: { href: url }});\n\n\t\t\treturn allowList.indexOf(element.protocol) > -1;\n\t\t},\n\n\t\thtmlspecialchars(text)\n\t\t{\n\t\t\tif (typeof text !== 'string')\n\t\t\t{\n\t\t\t\treturn text;\n\t\t\t}\n\n\t\t\treturn text.replace(/&/g, '&amp;')\n\t\t\t\t.replace(/\"/g, '&quot;')\n\t\t\t\t.replace(/</g, '&lt;')\n\t\t\t\t.replace(/>/g, '&gt;');\n\t\t},\n\n\t\thtmlspecialcharsback(text)\n\t\t{\n\t\t\tif (typeof text !== 'string')\n\t\t\t{\n\t\t\t\treturn text;\n\t\t\t}\n\n\t\t\treturn text.replace(/\\&quot;/g, '\"')\n\t\t\t\t.replace(/&#039;/g, \"'\")\n\t\t\t\t.replace(/\\&lt;/g, '<')\n\t\t\t\t.replace(/\\&gt;/g, '>')\n\t\t\t\t.replace(/\\&amp;/g, '&')\n\t\t\t\t.replace(/\\&nbsp;/g, ' ');\n\t\t},\n\n\t\tgetLocalizeForNumber(phrase, number, language = 'en', localize = null)\n\t\t{\n\t\t\tif (!localize)\n\t\t\t{\n\t\t\t\tlocalize = BX.message;\n\t\t\t}\n\n\t\t\tlet pluralFormType = 1;\n\n\t\t\tnumber = parseInt(number);\n\n\t\t\tif (number < 0)\n\t\t\t{\n\t\t\t\tnumber = number * -1;\n\t\t\t}\n\n\t\t\tif (language)\n\t\t\t{\n\t\t\t\tswitch (language)\n\t\t\t\t{\n\t\t\t\t\tcase 'de':\n\t\t\t\t\tcase 'en':\n\t\t\t\t\t\tpluralFormType = ((number !== 1) ? 1 : 0);\n\t\t\t\t\tbreak;\n\n\t\t\t\t\tcase 'ru':\n\t\t\t\t\tcase 'ua':\n\t\t\t\t\t\tpluralFormType = (((number%10 === 1) && (number%100 !== 11)) ? 0 : (((number%10 >= 2) && (number%10 <= 4) && ((number%100 < 10) || (number%100 >= 20))) ? 1 : 2));\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn localize[phrase + '_PLURAL_' + pluralFormType];\n\t\t}\n\t},\n\n\tdate:\n\t{\n\t\tgetFormatType(type = DateFormat.default, localize = null)\n\t\t{\n\t\t\tif (!localize)\n\t\t\t{\n\t\t\t\tlocalize = BX.message;\n\t\t\t}\n\n\t\t\tlet format = [];\n\t\t\tif (type === DateFormat.groupTitle)\n\t\t\t{\n\t\t\t\tformat = [\n\t\t\t\t\t[\"tommorow\", \"tommorow\"],\n\t\t\t\t\t[\"today\", \"today\"],\n\t\t\t\t\t[\"yesterday\", \"yesterday\"],\n\t\t\t\t\t[\"\", localize[\"IM_UTILS_FORMAT_DATE\"]]\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (type === DateFormat.message)\n\t\t\t{\n\t\t\t\tformat = [\n\t\t\t\t\t[\"\", localize[\"IM_UTILS_FORMAT_TIME\"]]\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (type === DateFormat.recentTitle)\n\t\t\t{\n\t\t\t\tformat = [\n\t\t\t\t\t[\"tommorow\", \"today\"],\n\t\t\t\t\t[\"today\", \"today\"],\n\t\t\t\t\t[\"yesterday\", \"yesterday\"],\n\t\t\t\t\t[\"\", localize[\"IM_UTILS_FORMAT_DATE_RECENT\"]]\n\t\t\t\t]\n\t\t\t}\n\t\t\telse if (type === DateFormat.recentLinesTitle)\n\t\t\t{\n\t\t\t\tformat = [\n\t\t\t\t\t[\"tommorow\", \"tommorow\"],\n\t\t\t\t\t[\"today\", \"today\"],\n\t\t\t\t\t[\"yesterday\", \"yesterday\"],\n\t\t\t\t\t[\"\", localize[\"IM_UTILS_FORMAT_DATE_RECENT\"]]\n\t\t\t\t]\n\t\t\t}\n\t\t\telse if (type === DateFormat.readedTitle)\n\t\t\t{\n\t\t\t\tformat = [\n\t\t\t\t\t[\"tommorow\", \"tommorow, \"+localize[\"IM_UTILS_FORMAT_TIME\"]],\n\t\t\t\t\t[\"today\", \"today, \"+localize[\"IM_UTILS_FORMAT_TIME\"]],\n\t\t\t\t\t[\"yesterday\", \"yesterday, \"+localize[\"IM_UTILS_FORMAT_TIME\"]],\n\t\t\t\t\t[\"\", localize[\"IM_UTILS_FORMAT_READED\"]]\n\t\t\t\t];\n\t\t\t}\n\t\t\telse if (type === DateFormat.vacationTitle)\n\t\t\t{\n\t\t\t\tformat = [\n\t\t\t\t\t[\"\", localize[\"IM_UTILS_FORMAT_DATE_SHORT\"]]\n\t\t\t\t];\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\tformat = [\n\t\t\t\t\t[\"tommorow\", \"tommorow, \"+localize[\"IM_UTILS_FORMAT_TIME\"]],\n\t\t\t\t\t[\"today\", \"today, \"+localize[\"IM_UTILS_FORMAT_TIME\"]],\n\t\t\t\t\t[\"yesterday\", \"yesterday, \"+localize[\"IM_UTILS_FORMAT_TIME\"]],\n\t\t\t\t\t[\"\", localize[\"IM_UTILS_FORMAT_DATE_TIME\"]]\n\t\t\t\t];\n\t\t\t}\n\n\t\t\treturn format;\n\t\t},\n\n\t\tgetDateFunction(localize = null)\n\t\t{\n\t\t\tif (this.dateFormatFunction)\n\t\t\t{\n\t\t\t\treturn this.dateFormatFunction;\n\t\t\t}\n\n\t\t\tthis.dateFormatFunction = Object.create(BX.Main.Date);\n\t\t\tif (localize)\n\t\t\t{\n\t\t\t\tthis.dateFormatFunction._getMessage = (phrase) => localize[phrase];\n\t\t\t}\n\n\t\t\treturn this.dateFormatFunction;\n\t\t},\n\n\t\tformat(timestamp, format = null, localize = null)\n\t\t{\n\t\t\tif (!format)\n\t\t\t{\n\t\t\t\tformat = this.getFormatType(DateFormat.default, localize);\n\t\t\t}\n\n\t\t\treturn this.getDateFunction(localize).format(format, timestamp);\n\t\t},\n\n\t\tcast(date, def = new Date())\n\t\t{\n\t\t\tlet result = def;\n\n\t\t\tif (date instanceof Date)\n\t\t\t{\n\t\t\t\tresult = date;\n\t\t\t}\n\t\t\telse if (typeof date === \"string\")\n\t\t\t{\n\t\t\t\tresult = new Date(date);\n\t\t\t}\n\t\t\telse if (typeof date === \"number\")\n\t\t\t{\n\t\t\t\tresult = new Date(date*1000);\n\t\t\t}\n\n\t\t\tif (\n\t\t\t\tresult instanceof Date\n\t\t\t\t&& Number.isNaN(result.getTime())\n\t\t\t)\n\t\t\t{\n\t\t\t\tresult = def;\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\t},\n\n\tobject:\n\t{\n\t\tcountKeys(obj)\n\t\t{\n\t\t\tlet result = 0;\n\n\t\t\tfor (let i in obj)\n\t\t\t{\n\t\t\t\tif (obj.hasOwnProperty(i))\n\t\t\t\t{\n\t\t\t\t\tresult++;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\t},\n\n\tuser:\n\t{\n\t\tgetLastDateText(params, localize = null)\n\t\t{\n\t\t\tif (!params)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tlet dateFunction = Utils.date.getDateFunction(localize);\n\n\t\t\tif (!localize)\n\t\t\t{\n\t\t\t\tlocalize = BX.message || {};\n\t\t\t}\n\n\t\t\tlet text = '';\n\t\t\tlet online = {};\n\t\t\tif (params.bot || params.network)\n\t\t\t{\n\t\t\t\ttext = '';\n\t\t\t}\n\t\t\telse if (params.absent && !this.isMobileActive(params, localize))\n\t\t\t{\n\t\t\t\tonline = this.getOnlineStatus(params, localize);\n\t\t\t\ttext = localize['IM_STATUS_VACATION_TITLE'].replace('#DATE#',\n\t\t\t\t\tdateFunction.format(Utils.date.getFormatType(DateFormat.vacationTitle, localize), params.absent.getTime()/1000)\n\t\t\t\t);\n\n\t\t\t\tif (online.isOnline && params.idle)\n\t\t\t\t{\n\t\t\t\t\t text = localize['IM_STATUS_AWAY_TITLE'].replace('#TIME#', this.getIdleText(params, localize))+'. '+text;\n\t\t\t\t}\n\t\t\t\telse if (online.isOnline && !online.lastSeenText)\n\t\t\t\t{\n\t\t\t\t\ttext = online.statusText+'. '+text;\n\t\t\t\t}\n\t\t\t\telse if (online.lastSeenText)\n\t\t\t\t{\n\t\t\t\t\tif (!Utils.platform.isMobile())\n\t\t\t\t\t{\n\t\t\t\t\t\ttext = text+'. '+localize['IM_LAST_SEEN_'+(params.gender === 'F'? 'F': 'M')].replace('#POSITION#', text).replace('#LAST_SEEN#', online.lastSeenText);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\telse if (params.lastActivityDate)\n\t\t\t{\n\t\t\t\tonline = this.getOnlineStatus(params, localize);\n\t\t\t\tif (online.isOnline && params.idle && !this.isMobileActive(params, localize))\n\t\t\t\t{\n\t\t\t\t\t text = localize['IM_STATUS_AWAY_TITLE'].replace('#TIME#', this.getIdleText(params, localize));\n\t\t\t\t}\n\t\t\t\telse if (online.isOnline && !online.lastSeenText)\n\t\t\t\t{\n\t\t\t\t\tif (Utils.platform.isMobile() && this.isMobileActive(params, localize))\n\t\t\t\t\t{\n\t\t\t\t\t\ttext = localize['IM_STATUS_MOBILE'];\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\ttext = online.statusText;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t\telse if (online.lastSeenText)\n\t\t\t\t{\n\t\t\t\t\tif (Utils.platform.isMobile())\n\t\t\t\t\t{\n\t\t\t\t\t\ttext = localize['IM_LAST_SEEN_SHORT_'+(params.gender === 'F'? 'F': 'M')].replace('#LAST_SEEN#', online.lastSeenText);\n\t\t\t\t\t}\n\t\t\t\t\telse\n\t\t\t\t\t{\n\t\t\t\t\t\ttext = localize['IM_LAST_SEEN_'+(params.gender === 'F'? 'F': 'M')].replace('#POSITION#', text).replace('#LAST_SEEN#', online.lastSeenText);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn text;\n\t\t},\n\n\t\tgetIdleText(params, localize = null)\n\t\t{\n\t\t\tif (!params)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\tif (!params.idle)\n\t\t\t{\n\t\t\t\treturn '';\n\t\t\t}\n\n\t\t\treturn Utils.date.getDateFunction(localize).format([\n\t\t\t   [\"s60\", \"sdiff\"],\n\t\t\t   [\"i60\", \"idiff\"],\n\t\t\t   [\"H24\", \"Hdiff\"],\n\t\t\t   [\"\", \"ddiff\"]\n\t\t\t], params.idle);\n\t\t},\n\n\t\tgetOnlineStatus(params, localize = null)\n\t\t{\n\t\t\tlet result = {\n\t\t\t\t'isOnline': false,\n\t\t\t\t'status': 'offline',\n\t\t\t\t'statusText': localize? localize.IM_STATUS_OFFLINE: 'offline',\n\t\t\t\t'lastSeen': params.lastActivityDate,\n\t\t\t\t'lastSeenText': '',\n\t\t\t};\n\n\t\t\tif (!params.lastActivityDate || params.lastActivityDate.getTime() === 0)\n\t\t\t{\n\t\t\t\treturn result;\n\t\t\t}\n\n\t\t\tlet date = new Date();\n\n\t\t\tresult.isOnline = date.getTime() - params.lastActivityDate.getTime() <= this.getOnlineLimit(localize)*1000;\n\t\t\tresult.status = result.isOnline? params.status: 'offline';\n\t\t\tresult.statusText = localize && localize['IM_STATUS_'+result.status.toUpperCase()]? localize['IM_STATUS_'+result.status.toUpperCase()]: result.status;\n\n\t\t\tif (localize && params.lastActivityDate.getTime() > 0 && date.getTime() - params.lastActivityDate.getTime() > 300*1000)\n\t\t\t{\n\t\t\t\tresult.lastSeenText = Utils.date.getDateFunction(localize).formatLastActivityDate(params.lastActivityDate);\n\t\t\t}\n\n\t\t\treturn result;\n\t\t},\n\n\t\tisMobileActive(params, localize = null)\n\t\t{\n\t\t\tif (!params)\n\t\t\t{\n\t\t\t\treturn false;\n\t\t\t}\n\n\t\t\tif (!localize)\n\t\t\t{\n\t\t\t\tlocalize = BX.message || {};\n\t\t\t}\n\n\t\t\treturn (\n\t\t\t\tparams.mobileLastDate\n\t\t\t\t&& new Date() - params.mobileLastDate < this.getOnlineLimit(localize)*1000\n\t\t\t\t&& params.lastActivityDate-params.mobileLastDate < 300*1000\n\t\t\t);\n\t\t},\n\n\t\tgetOnlineLimit(localize = null)\n\t\t{\n\t\t\tif (!localize)\n\t\t\t{\n\t\t\t\tlocalize = BX.message || {};\n\t\t\t}\n\n\t\t\treturn localize.LIMIT_ONLINE? parseInt(localize.LIMIT_ONLINE): 15*60;\n\t\t},\n\t},\n\n\tisDarkColor(hex)\n\t{\n\t\tif (!hex || !hex.match(/^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/))\n\t\t{\n\t\t\treturn false;\n\t\t}\n\n\t\tif (hex.length === 4)\n\t\t{\n\t\t\thex = hex.replace(/#([A-Fa-f0-9])/gi, \"$1$1\");\n\t\t}\n\t\telse\n\t\t{\n\t\t\thex = hex.replace(/#([A-Fa-f0-9])/gi, \"$1\");\n\t\t}\n\n\t\thex = hex.toLowerCase();\n\n\t\tlet darkColor = [\n\t\t\t\"#17a3ea\",\n\t\t\t\"#00aeef\",\n\t\t\t\"#00c4fb\",\n\t\t\t\"#47d1e2\",\n\t\t\t\"#75d900\",\n\t\t\t\"#ffab00\",\n\t\t\t\"#ff5752\",\n\t\t\t\"#468ee5\",\n\t\t\t\"#1eae43\"\n\t\t];\n\n\t\tif (darkColor.includes('#'+hex))\n\t\t{\n\t\t\treturn true;\n\t\t}\n\n\t\tlet bigint = parseInt(hex, 16);\n\n\t\tlet red = (bigint >> 16) & 255;\n\t\tlet green = (bigint >> 8) & 255;\n\t\tlet blue = bigint & 255;\n\n\t\tlet brightness = (red * 299 + green * 587 + blue * 114) / 1000;\n\n\t\treturn brightness < 128;\n\t},\n\n\thashCode(string = '')\n\t{\n\t\tlet hash = 0;\n\n\t\tif (typeof string === 'object' && string)\n\t\t{\n\t\t\tstring = JSON.stringify(string);\n\t\t}\n\t\telse if (typeof string !== 'string')\n\t\t{\n\t\t\tstring = string.toString();\n\t\t}\n\n\t\tif (typeof string !== 'string')\n\t\t{\n\t\t\treturn hash;\n\t\t}\n\n\t\tfor (let i = 0; i < string.length; i++)\n\t\t{\n\t\t\tlet char = string.charCodeAt(i);\n\t\t\thash = ((hash<<5)-hash)+char;\n\t\t\thash = hash & hash;\n\t\t}\n\t\treturn hash;\n\t},\n\n\thideErrorImage(element)\n\t{\n\t\tif (element.parentNode)\n\t\t{\n\t\t\telement.parentNode.innerHTML = '<a href=\"'+encodeURI(element.src)+'\" target=\"_blank\">'+element.src+'</a>';\n\t\t}\n\t\treturn true;\n\t},\n\n\t/**\n\t * The method compares versions, and returns - 0 if they are the same, 1 if version1 is greater, -1 if version1 is less\n\t *\n\t * @param version1\n\t * @param version2\n\t * @returns {number|NaN}\n\t */\n\tversionCompare(version1, version2)\n\t{\n\t\tlet isNumberRegExp = /^([\\d+\\.]+)$/;\n\n\t\tif (\n\t\t\t!isNumberRegExp.test(version1)\n\t\t\t|| !isNumberRegExp.test(version2)\n\t\t)\n\t\t{\n\t\t\treturn NaN;\n\t\t}\n\n\t\tversion1 = version1.toString().split('.');\n\t\tversion2 = version2.toString().split('.');\n\n\t\tif (version1.length < version2.length)\n\t\t{\n\t\t\twhile (version1.length < version2.length)\n\t\t\t{\n\t\t\t\tversion1.push(0);\n\t\t\t}\n\t\t}\n\t\telse if (version2.length < version1.length)\n\t\t{\n\t\t\twhile (version2.length < version1.length)\n\t\t\t{\n\t\t\t\tversion2.push(0);\n\t\t\t}\n\t\t}\n\n\t\tfor (var i = 0; i < version1.length; i++)\n\t\t{\n\t\t\tif (version1[i] > version2[i])\n\t\t\t{\n\t\t\t\treturn 1;\n\t\t\t}\n\t\t\telse if (version1[i] < version2[i])\n\t\t\t{\n\t\t\t\treturn -1;\n\t\t\t}\n\t\t}\n\n\t\treturn 0;\n\t},\n\n\t/**\n\t * Throttle function. Callback will be executed no more than 'wait' period (in ms).\n\t *\n\t * @param callback\n\t * @param wait\n\t * @param context\n\t * @returns {Function}\n\t */\n\tthrottle(callback, wait, context = this)\n\t{\n\t\tlet timeout = null;\n\t\tlet callbackArgs = null;\n\n\t\tconst nextCallback = () => {\n\t\t\tcallback.apply(context, callbackArgs);\n\t\t\ttimeout = null;\n\t\t};\n\n\t\treturn function()\n\t\t{\n\t\t\tif (!timeout)\n\t\t\t{\n\t\t\t\tcallbackArgs = arguments;\n\t\t\t\ttimeout = setTimeout(nextCallback, wait);\n\t\t\t}\n\t\t}\n\t},\n\n\t/**\n\t * Debounce function. Callback will be executed if it hast been called for longer than 'wait' period (in ms).\n\t *\n\t * @param callback\n\t * @param wait\n\t * @param context\n\t * @returns {Function}\n\t */\n\tdebounce(callback, wait, context = this)\n\t{\n\t\tlet timeout = null;\n\t\tlet callbackArgs = null;\n\n\t\tconst nextCallback = () => {\n\t\t\tcallback.apply(context, callbackArgs);\n\t\t};\n\n\t\treturn function()\n\t\t{\n\t\t\tcallbackArgs = arguments;\n\n\t\t\tclearTimeout(timeout);\n\t\t\ttimeout = setTimeout(nextCallback, wait);\n\t\t}\n\t},\n\n\tgetLogTrackingParams(params = {}): string\n\t{\n\t\tlet result = [];\n\n\t\tlet {\n\t\t\tname = 'tracking',\n\t\t\tdata = [],\n\t\t\tdialog = null,\n\t\t\tmessage = null,\n\t\t\tfiles = null,\n\t\t} = params;\n\n\t\tname = encodeURIComponent(name);\n\n\t\tif (\n\t\t\tdata\n\t\t\t&& !(data instanceof Array)\n\t\t\t&& typeof data === 'object'\n\t\t)\n\t\t{\n\t\t\tlet dataArray = [];\n\t\t\tfor (let name in data)\n\t\t\t{\n\t\t\t\tif (data.hasOwnProperty(name))\n\t\t\t\t{\n\t\t\t\t\tdataArray.push(encodeURIComponent(name)+\"=\"+encodeURIComponent(data[name]));\n\t\t\t\t}\n\t\t\t}\n\t\t\tdata = dataArray;\n\t\t}\n\t\telse if (!data instanceof Array)\n\t\t{\n\t\t\tdata = [];\n\t\t}\n\n\t\tif (dialog)\n\t\t{\n\t\t\tresult.push('timType='+dialog.type);\n\n\t\t\tif (dialog.type === 'lines')\n\t\t\t{\n\t\t\t\tresult.push('timLinesType='+dialog.entityId.split('|')[0]);\n\t\t\t}\n\t\t}\n\n\t\tif (files)\n\t\t{\n\t\t\tlet type = 'file';\n\t\t\tif (files instanceof Array && files[0])\n\t\t\t{\n\t\t\t\ttype = files[0].type;\n\t\t\t}\n\t\t\telse\n\t\t\t{\n\t\t\t\ttype = files.type;\n\t\t\t}\n\t\t\tresult.push('timMessageType='+type);\n\t\t}\n\t\telse if (message)\n\t\t{\n\t\t\tresult.push('timMessageType=text');\n\t\t}\n\n\t\tif (this.platform.isBitrixMobile())\n\t\t{\n\t\t\tresult.push('timDevice=bitrixMobile');\n\t\t}\n\t\telse if (this.platform.isBitrixDesktop())\n\t\t{\n\t\t\tresult.push('timDevice=bitrixDesktop');\n\t\t}\n\t\telse if (this.platform.isIos() || this.platform.isAndroid())\n\t\t{\n\t\t\tresult.push('timDevice=mobile');\n\t\t}\n\t\telse\n\t\t{\n\t\t\tresult.push('timDevice=web');\n\t\t}\n\n\t\treturn name + (data.length? '&'+data.join('&'): '') + (result.length? '&'+result.join('&'): '');\n\t}\n};\n\nexport {Utils};"],"names":["Utils","browser","isSafari","isChrome","navigator","userAgent","toLowerCase","includes","isSafariBased","isFirefox","isIe","match","findParent","item","findTag","isHtmlElement","HTMLElement","document","parentNode","classList","contains","platform","isMac","isLinux","isWindows","isBitrixMobile","isBitrixDesktop","getDesktopVersion","getDesktopVersionStatic","BXDesktopSystem","version","GetProperty","isDesktopFeatureEnabled","code","FeatureEnabled","isMobile","isAndroid","isIos","getIosVersion","matches","parseFloat","openNewPage","url","BX","MobileTools","openWidget","resolveOpenFunction","app","window","open","device","isDesktop","isMobileStatic","orientationHorizontal","orientationPortrait","getOrientation","Math","abs","orientation","types","isString","String","isArray","Object","prototype","toString","call","isFunction","Function","isDomNode","isDate","isPlainObject","nodeType","hasProp","hasOwnProperty","constructor","e","key","isUuidV4","uuid","uuidV4pattern","RegExp","search","dialog","getChatIdByDialogId","dialogId","isChatId","parseInt","substr","startsWith","isEmptyDialogId","text","quote","params","files","localize","message","replace","whole","userId","imol","chatId","command","rating","IM_F_RATING","FILE_ID","length","filesText","forEach","fileId","type","push","name","join","ATTACH","trim","purify","codeReplacement","br","id","messageId","title","indexOf","element","index","WITH_ATTACH","WITH_FILE","decode","options","enableBigSmile","htmlspecialchars","quoteSign","textPrepare","split","i","decodeBbCode","p1","p2","p3","p4","offset","skipImages","changed","letter","doubleSmileSize","start","width","middle","height","end","putReplacement","sendReplacement","link","Text","checkUrl","Dom","create","tag","attrs","href","target","html","outerHTML","slice","lastIndexOf","urlPart","number","style","fontSize","hex","color","userName","Number","Type","isNumber","user","Messenger","Application","Core","controller","store","getters","className","MessengerCommon","linesVoteHeadNodes","openlines","inner","historyId","textElementSize","size","attributes","value","allowList","checkCorrectStartLink","find","protocol","htmlspecialcharsback","getLocalizeForNumber","phrase","language","pluralFormType","date","getFormatType","DateFormat","format","groupTitle","recentTitle","recentLinesTitle","readedTitle","vacationTitle","getDateFunction","dateFormatFunction","Main","Date","_getMessage","timestamp","cast","def","result","isNaN","getTime","object","countKeys","obj","getLastDateText","dateFunction","online","bot","network","absent","isMobileActive","getOnlineStatus","isOnline","idle","getIdleText","lastSeenText","statusText","gender","lastActivityDate","IM_STATUS_OFFLINE","getOnlineLimit","status","toUpperCase","formatLastActivityDate","mobileLastDate","LIMIT_ONLINE","isDarkColor","darkColor","bigint","red","green","blue","brightness","hashCode","string","hash","JSON","stringify","char","charCodeAt","hideErrorImage","innerHTML","encodeURI","src","versionCompare","version1","version2","isNumberRegExp","test","NaN","throttle","callback","wait","context","timeout","callbackArgs","nextCallback","apply","arguments","setTimeout","debounce","clearTimeout","getLogTrackingParams","data","encodeURIComponent","Array","dataArray","entityId"],"mappings":"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"}

Youez - 2016 - github.com/yon3zu
LinuXploit