{"version":3,"file":"5519_039db8702c478185e662.bundle.js","mappings":"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","sources":["webpack://tumarket/./js/chat.js","webpack://tumarket/./js/global/recaptcha.js"],"sourcesContent":["/* global tumarket */\n\nimport * as $ from \"jquery\";\n\nimport \"bootstrap/js/dist/collapse\";\nimport \"bootstrap/js/dist/popover\";\nimport \"bootstrap/js/dist/modal\";\nimport notifications from \"./notifications.js\";\nimport tumGlobal from \"./global.js\";\nimport { showDialog } from \"./global/dialog\";\nimport { ajaxSend } from \"./global/fetch\";\nimport { getUrlParameter } from \"./global/url\";\nimport { getCookie, setCookie } from \"./global/cookie\";\nimport { getPrecompiledTemplate, loadPrecompiledTemplates, loadTemplates } from \"./global/templates\";\nimport { addEventDelegate } from \"./global/dom\";\n\nimport \"../css/modules/chat/chat.css\";\nimport { initRecaptcha, renderRecaptcha } from \"./global/recaptcha.js\";\n\nvar chat = {\n\toptions: {\n\t\tcontainer: \"\",\n\t\tstartChatButton: \"\",\n\t\thubName: \"signalRHub\",\n\t\tusername: \"\",\n\t\tisAuthenticated: false,\n\t\trole: \"client\", //client, agent, buyer, seller, employee\n\t\tfirmID: 0,\n\t\tproductID: 0,\n\t\torderID: 0,\n\t\turl: {\n\t\t\tGetRoom: \"/chat/getroom\",\n\t\t\tGetRooms: \"/chat/getrooms\",\n\t\t\tSendMessage: \"/chat/sendmessage\",\n\t\t\tDeleteMessage: \"/chat/deletemessage\",\n\t\t\tGetRoomAvailableUsers: \"/chat/getroomavailableusers\",\n\t\t\tAddUserToRoom: \"/chat/addusertoroom\",\n\t\t\tRemoveUserFromRoom: \"/chat/removeuserfromroom\",\n\t\t\tSendVerificationCode: \"/chat/sendverificationcode\",\n\t\t\tVerifyUser: \"/chat/verifyuser\",\n\t\t\tCheckUnauthData: \"/chat/checkunauthdata\",\n\t\t\tMarkAsRead: \"/chat/markasread\",\n\t\t},\n\t\tcanAccessChat: true,\n\t\tchatDisabledMessage: \"\",\n\t\tisCabinet: false,\n\t\tpageSize: 20,\n\t\tpage: 1,\n\t\tmessagesPageSize: 15,\n\t\tmessagesPage: 1,\n\t\tmessagesPaginationLastID: 0,\n\t\tscrollDownOnLoad: false,\n callback: null,\n\t\tpageTypeCode: \"\",\n\n\t\t//для заказов\n\t\tisSellerChat: false,\n\t\tisAdminChat: false\n },\n currentText: {},\n\tanonName: \"\",\n\tanonEmail: \"\",\n\tanonPhone: \"\",\n\tuserFilter: 0,\n\tproductFilter: 0,\n\tfirmFilter: 0,\n\tpageSizeFilter: 0,\n\torderFilter: \"\",\n\tdateFilter: \"\",\n\tunreadFilter: false,\n\tcanEditUsers: false,\n\ttimer: 0,\n\tinterval: null,\n\trecaptchaKey: \"\",\n\tusers: [],\n\tnewMessageAttachments: [],\n\ttotal: 0,\n\ttotalMessages: 0,\n\tmessagesLoaded: 0,\n\tregistrationSuccess: false,\n\tinit: function (options) {\n\t\tthis.options = $.extend(this.options, options);\n\n\t\tif (!this.options.canAccessChat) {\n\t\t\t$(this.options.container).html(this.options.chatDisabledMessage);\n\t\t\treturn;\n\t\t}\n\n\t\tthis.initCallbacks();\n\n\t\t$(document).on('change', '.tum-result-container select', () => {\n\t\t\tthis.pageSizeFilter = $('.tum-result-container select').val() || 10;\n\t\t\tthis.options.page = 1;\n\n\t\t\tthis.getRooms();\n\t\t});\n\n\t\tnotifications.registerCallback('incrementMessageCount', data => this.incrementMessageCount(data));\n\t\tnotifications.registerCallback('messageReceived', data => this.messageReceived(data));\n\t\tnotifications.registerCallback('updateReadBy', data => this.updateReadBy(data));\n\n\t\tthis.hub = notifications.hub;\n\t\twindow.addEventListener('signalRReady', () => this.hub = notifications.hub);\n\t},\n\t_loadChat: function(callback){\n\t\tlet self = this;\n\n\t\tif (!this.options.isAuthenticated) {\n\t\t\t$(this.options.container).html(this.renderUnauthForm());\n\t\t}\n\n\t\tif ($(this.options.container).hasClass(\"tum-chat-running\") || $(this.options.container).find(\".tum-chat-unauthBlock\").length) {\n\t\t\tif (callback) callback();\n\t\t\treturn;\n\t\t}\n\n\t\tif ('hub' in chat){\n\t\t\tthis.initChat(callback);\n\t\t}\n\t\telse {\n\t\t\t$(document).on(\"tumChatIsReady\", function() {\n\t\t\t\tself.initChat(callback);\n\t\t\t});\n\t\t}\n\t\t\n\t\t//инициализация хаба и функций signalr делается в notifications.js\n\t\t//this.initHub();\n\t},\n\tloadChat: function(callback){\n\t\tif (!this.options.isAuthenticated) {\n\t\t\tinitRecaptcha(tumarket.recaptchaSiteKey);\n\t\t\trenderRecaptcha('chat-recaptcha-container').then(data => {\n\t\t\t\tchat.recaptchaKey = data.token;\n\t\t\t}).catch(data => {\n\t\t\t\tif (data.noContainer) throw new Error(\"recaptcha container missing\");\n\t\t\t});\n\t\t}\n\n\t\tloadTemplates(['/template/chat-unauthorized-modal']).then(() => {\n\t\t\treturn loadPrecompiledTemplates([\n\t\t\t\t'chat',\n\t\t\t\t'chat-room-list',\n\t\t\t\t'chat-message',\n\t\t\t\t'chat-unauthorized',\n\t\t\t\t'chat-read-by-user',\n\t\t\t\t'chat-read-by-users-all',\n\t\t\t\t'chat-add-user',\n\t\t\t\t'chat-message-attachments'\n\t\t\t]);\n\t\t}).then(() => {\n\t\t\tthis._loadChat(callback)\n\t\t});\n\t},\n\tinitCallbacks: function () {\n\t\tlet self = this;\n\t\tif (this.options.startChatButton) {\n\t\t\t$(document).on(\"click\", this.options.startChatButton, () => this.loadChat());\n\n\t\t\tvar isUrlShowChat = getUrlParameter(\"showChat\") == \"1\";\n\n\t\t\tif (getCookie(\"tum-chat-openChatOnLoad\") || isUrlShowChat) {\n\t\t\t\tthis.focusChat();\n\t\t\t\tsetCookie(\"tum-chat-openChatOnLoad\", \"0\", -1);\n\t\t\t}\n\t\t} else {\n\t\t\tthis.loadChat();\n\t\t}\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-roomListItem\", element => {\n\t\t\tvar id = $(element).attr(\"data-id\");\n\t\t\tthis.getRoom({ roomID: id });\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-sendMessage\", element => {\n\t\t\tvar text = $(\".tum-chat-newMessageText\").val();\n\t\t\tvar roomID = $(element).attr(\"data-roomid\");\n\n\t\t\t//если roomID == -1, то сейчас юзер видит просто заглушку и надо создать реальную комнату перед отправкой\n\t\t\tif (Number(roomID) == -1) {\n\t\t\t\tthis.getRoom({\n\t\t\t\t\tcallback: (newRoomID) => this.sendMessage(text, newRoomID)\n\t\t\t\t});\n\t\t\t} else {\n\t\t\t\tthis.sendMessage(text, roomID);\n\t\t\t}\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-showAddUserDialog\", element => {\n\t\t\tvar roomID = $(element).attr(\"data-roomid\");\n\t\t\tthis.showAddUserDialog(roomID);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-addUser\", element => {\n\t\t\tvar roomID = $(element).attr(\"data-roomid\");\n\t\t\tvar username = $(\".tum-chat-addUserSelect\").val();\n\n var userType = $(\".tum-chat-addUserSelect option[value='\" + username + \"']\").attr(\"data-type\");\n\n\t\t\tthis.addUserToRoom(username, roomID, userType);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-removeUser\", element => {\n\t\t\tvar roomID = $(element).attr(\"data-roomid\");\n\t\t\tvar username = $(element).closest(\"li\").attr(\"data-username\");\n\n\t\t\tthis.removeUserFromRoom(username, roomID);\n\t\t});\n\n\t\t$(document).on(\"tempUploadComplete-asUploadHTML5\", function () {\n\t\t\timport(\"./as/as.sys\").then(m => {\n\t\t\t\tlet as = m.default;\n\t\t\t\timport(\"./as/controls/as.uploadHTML5\").then(() => {\n\t\t\t\t\tas.uploadHTML5.options.filesLeft.forEach(function (e) {\n\t\t\t\t\t\tif (self.newMessageAttachments.indexOf(e.path) == -1) {\n\t\t\t\t\t\t\tself.newMessageAttachments.push(e.path);\n\t\t\t\t\t\t}\n\t\t\t\t\t\tself.updateNewMessageAttachments();\n\t\t\t\t\t});\n\t\t\t\t})\n\t\t\t});\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-removeNewMessageAttachment\", element => {\n\t\t\tvar link = $(element).closest(\"div\").find(\".tum-chat-newMessageAttachment\");\n\t\t\tvar url = link.attr(\"href\");\n\t\t\tthis.newMessageAttachments = this.newMessageAttachments.filter(e => e != url);\n\t\t\t$(element).closest(\"div\").remove();\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-unauthJoinChat\", () => {\n\t\t\t$(\".tum-chat-unauthError\").html(\"\");\n\t\t\tvar name = $(\".tum-chat-unauthName\").val();\n\t\t\tvar emailPhone = $(\".tum-chat-unauthEmailPhone\").val();\n\t\t\tif (!name || !emailPhone || (!self.recaptchaKey && !tumarket.isAuthenticated)) {\n\t\t\t\t$(\".tum-chat-unauthError\").html(\"Заполните все поля и пройдите капчу\");\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tthis.getRoomAnonymous(name, emailPhone);\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-verify\", () => {\n\t\t\tthis.verifyUser();\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-sendCode\", () => {\n\t\t\tthis.sendVerificationCode();\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-showRooms\", () => {\n\t\t\tthis.getRooms();\n\t\t});\n\n\t\taddEventDelegate(document, \"keypress\", \".tum-chat-newMessageText\", (element, e) => {\n\t\t\tvar keyCode = e.keyCode || e.which;\n\t\t\tif (keyCode == 13 && !e.shiftKey) {\n\t\t\t\te.preventDefault();\n\t\t\t\t$(\".tum-chat-sendMessage\")[0]?.click();\n\t\t\t\treturn false;\n\t\t\t}\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-yesItsMe\", () => {\n\t\t\t$(\".tum-chat-passRestore\").attr(\"href\", \"/signup?passRestore=\" + (this.anonEmail || this.anonPhone))\n\t\t\tthis.unauthModalGoTo(\"login\");\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-noItsNotMe\", () => {\n\t\t\tthis.unauthModalGoTo(\"enterRealData\");\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-login\", () => {\n\t\t\tvar params = {\n\t\t\t\tlogin: $(\".tum-chat-unauthEmailPhone\").val(), passwordIn: $(\".tum-chat-userPassword\").val(), redirectUrl: location.href, rememberMe: true, jsonOnly: true\n\t\t\t}\n\n\t\t\tajaxSend({\n\t\t\t\turl: \"/SignUp/authorizationpassword\",\n\t\t\t\tdata: params\n\t\t\t}).then(data => {\n\t\t\t\tif (data.result) {\n\t\t\t\t\tsetCookie(\"tum-chat-openChatOnLoad\", \"1\");\n\t\t\t\t\tlocation.reload();\n\t\t\t\t} else {\n\t\t\t\t\t$(\".tum-chat-unauthModal-error\").html(data.msg || \"Неверный пароль\");\n\t\t\t\t}\n\t\t\t});\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-toUserExists\", () => {\n\t\t\tthis.unauthModalGoTo(\"userExists\");\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-unauthModalJoinChat\", () => {\n\t\t\tthis.checkUnauthData();\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-backFromVerification\", element => {\n\t\t\tvar toEnterRealData = $(element).attr(\"data-fromEnterRealData\") == \"1\";\n\n\t\t\tclearInterval(this.interval);\n\t\t\tthis.timer = 0;\n\n\t\t\tif (toEnterRealData) {\n\t\t\t\tthis.unauthModalGoTo(\"enterRealData\");\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$(\"#ChatUnauthModal\").modal(\"hide\");\n\t\t\t}\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-filter\", () => {\n\t\t\tthis.firmFilter = $(\".tum-chat-firmFilter\").val() || 0;\n\t\t\tthis.productFilter = $(\".tum-chat-productFilter\").val() || 0;\n\t\t\tthis.orderFilter = $(\".tum-chat-orderFilter\").val() || \"\";\n\t\t\tthis.userFilter = $(\".tum-chat-userFilter\").val() || 0;\n\t\t\tthis.dateFilter = $(\".tum-chat-dateRange\").val() || \"\";\n\t\t\tthis.unreadFilter = $(\".tum-chat-unreadFilter\").prop(\"checked\") || false;\n\t\t\tthis.getRooms();\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-resetFilter\", () => {\n\t\t\t$(\".tum-chat-firmFilter\").val(\"0\");\n\t\t\t$(\".tum-chat-productFilter\").val(\"0\");\n\t\t\t$(\".tum-chat-userFilter\").val(\"0\");\n\t\t\t$(\".tum-chat-orderFilter\").val(\"\");\n\t\t\t$(\".tum-chat-dateRange\").val(\"\");\n\t\t\t$(\".tum-chat-unreadFilter\").prop(\"checked\", false);\n\t\t\t$(\".tum-chat-filter\")[0]?.click();\n\t\t});\n\n\t\t$(document).on('mouseover', '.daterange', function() {\n\t\t\timport(\"./global/daterange\").then(({ dateRange }) => {\n\t\t\t\tdateRange(this);\n\t\t\t})\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-pagination a\", element => {\n\t\t\tif ($(element).hasClass(\"prev\")) {\n\t\t\t\tthis.options.page -= 1;\n\t\t\t}\n\t\t\telse if ($(element).hasClass(\"next\")) {\n\t\t\t\tthis.options.page += 1;\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.options.page = Number($(this).text());\n\t\t\t}\n\n\t\t\tthis.getRooms();\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-loadOldMessages\", () => {\n\t\t\tthis.loadOldMessages();\n\t\t});\n\n\t\t$(document).on('hidden.bs.modal', \"#ChatUnauthModal\", () => {\n\t\t\tif (this.registrationSuccess) {\n\n\t\t\t\tvar params = {\n\t\t\t\t\tlogin: this.anonEmail || this.anonPhone, passwordIn: this.newPassword, redirectUrl: location.href, rememberMe: true, jsonOnly: true\n\t\t\t\t}\n\n\t\t\t\tajaxSend({ url: \"/SignUp/authorizationpassword\", data: params }).then(data => {\n\t\t\t\t\tif (data.result) {\n\t\t\t\t\t\tsetCookie(\"tum-chat-openChatOnLoad\", \"1\");\n\t\t\t\t\t\tlocation.reload();\n\t\t\t\t\t} else {\n\t\t\t\t\t\tshowDialog({\n\t\t\t\t\t\t\ttitle: \"Ошибка\",\n\t\t\t\t\t\t\tcontent: \"Ошибка авторизации нового пользователя\"\n\t\t\t\t\t\t});\n\t\t\t\t\t\t$(\"#asModal .btn-primary\").addClass(\"d-none\");\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t}\n });\n\n addEventDelegate(document, 'input', \".tum-chat-newMessageText\", element => {\n this.currentText[Number($(\".tum-chat-room\").attr(\"data-id\"))] = $(element).val();\n });\n\n\t\taddEventDelegate(document, \"click\", \".tum-chat-pageLink\", (element, e) => {\n\t\t\te.stopPropagation();\n\t\t});\n\n\t\taddEventDelegate(document, 'click', \".tum-chat-readByShowAll\", () => {\n\t\t\tthis.readByShowAll();\n\t\t});\n\n\t\taddEventDelegate(document, 'click', '.tum-chat-showPassword', () => {\n\t\t\tvar $password = $('.tum-chat-userPassword');\n\t\t\tvar type = $password.attr('type');\n\n\t\t\t$password.attr('type', type == 'password' ? 'text' : 'password');\n\t\t});\n\t},\n\tinitChat: function (callback) {\n\t\tvar role = this.options.role;\n\n\t\tif (role == \"client\") {\n\t\t\tif (this.options.isCabinet) {\n\t\t\t\tthis.getRooms(callback);\n\t\t\t}\n\t\t\telse {\n\t\t\t\tthis.getRoom({ createRoom: false, callback: callback });\n\t\t\t}\n\t\t}\n\t\telse if (role == \"agent\") {\n\t\t\tthis.getRooms(callback);\n\t\t}\n\n\t\tif (this.options.callback) {\n\t\t\tthis.options.callback();\n\t\t}\n\t},\n\tfocusChat: function () {\n\t\tif ($(this.options.container).hasClass(\"collapse\")) {\n\t\t\t$(this.options.container).collapse(\"show\");\n\t\t}\n\n\t\t$(this.options.container).css(\"transition\", \"0.5s\");\n\n\t\tthis.loadChat(() => this.highlightChat());\n\t},\n\thighlightChat: function(){\n\t\tvar offset = $(this.options.container).offset();\n\t\toffset.top -= 100;\n\t\t$('html, body').animate({\n\t\t\tscrollTop: offset.top\n\t\t});\n\n\t\ttumGlobal.highlight($(this.options.container), 2500);\n\t},\n\tmessageReceived: function (data) {\n data = JSON.parse(data);\n data.item.user = data.user;\n\t\t$(\".tum-chat-messages\").append(this.renderMessage(data.item));\n\t\tthis.scrollToBottom($(\".tum-chat-messages\"));\n\n if (this.options.username != data.user.username) {\n this.markAsRead($(\".tum-chat-room\").attr(\"data-id\"));\n }\n },\n\tupdateReadBy: function(userIDs) {\n\t\tlet self = this;\n\t\tvar $cont = $(\".tum-chat-isReadBy\");\n\t\tif (!userIDs) userIDs = $cont.attr(\"data-userids\");\n\t\telse {\n\t\t\t$cont.attr(\"data-userids\", userIDs);\n\t\t}\n\n\t\tvar newUserIDs = userIDs ? userIDs.split(',').filter(e => e) : [];\n\t\tvar oldUserIDs = $(\".tum-chat-readByUser\").toArray().map(e => $(e).attr(\"data-userid\"));\n\n\t\tvar toAdd = newUserIDs.filter(e => oldUserIDs.indexOf(e) == -1);\n\t\tvar toRemove = oldUserIDs.filter(e => newUserIDs.indexOf(e) == -1);\n\n\t\ttoRemove.forEach(id => $(\".tum-chat-readByUser[data-userid='\" + id + \"']\").remove());\n\t\ttoAdd.forEach(function(id){\n\t\t\tif ($(\".tum-chat-readByUser\").length >= 3) return;\n\t\t\tvar user = self.users.filter(e => e.userID == id);\n\t\t\tif (!user.length) return;\n\t\t\tuser = user[0];\n\n\t\t\tvar html = getPrecompiledTemplate('chat-read-by-user')(user);\n\t\t\t$cont.append(html);\n\t\t});\n\n\t\tif (newUserIDs.length > 3 && !$(\".tum-chat-readByShowAll\").length) {\n\t\t\t$cont.append($('
'));\n\t\t}\n\t\telse {\n\t\t\t$(\".tum-chat-readByShowAll\").remove();\n\t\t}\n\t},\n\treadByShowAll: function(){\n\t\tvar $cont = $(\".tum-chat-isReadBy\");\n\t\tvar userIDs = ($cont.attr(\"data-userids\") || \"\").split(',').filter(e => e);\n\t\tif (!userIDs.length) return;\n\n\t\tvar users = this.users.filter(e => userIDs.indexOf(e.userID.toString()) > -1);\n\t\tvar html = getPrecompiledTemplate('chat-read-by-users-all')({ users: users });\n\t\tshowDialog({ title: \"Прочитано пользователями\", content: html });\n\t\t$(\"#asModal .btn-primary\").addClass(\"d-none\");\n\t},\n\tjoinRoom: function (roomID) {\n\t\treturn this.hub?.invoke('JoinChatRoom', Number(roomID));\n\t},\n\tleaveRoom: function (roomID) {\n\t\treturn this.hub.invoke('LeaveChatRoom', Number(roomID));\n\t},\n\tstartVerification: function () {\n\t\tthis.sendVerificationCode();\n\t\tthis.unauthModalGoTo(\"verification\");\n\t\t$(\"#ChatUnauthModal\").modal({\n\t\t\tshow: true,\n\t\t\tbackdrop: 'static'\n\t\t});\n\t},\n\tgetRoom: function (options) { //roomID, createRoom\n\t\tlet self = this;\n\t\toptions = options || {};\n\t\tif (!this.options.canAccessChat) {\n\t\t\t$(this.options.container).html(this.options.chatDisabledMessage);\n\t\t\treturn;\n\t\t}\n\n\t\tif (options.createRoom === undefined) options.createRoom = true;\n\n\t\t$(this.options.container).addClass(\"tum-chat-running\");\n\n\t\tthis.messagesLoaded = 0;\n\t\tthis.options.messagesPage = 1;\n\t\tthis.options.messagesPaginationLastID = 0;\n\n\t\tvar parameters = {\n\t\t\tfirmID: this.options.firmID,\n\t\t\tproductID: this.options.productID,\n\t\t\torderID: this.options.orderID,\n\t\t\tpageTypeCode: this.options.role,\n\t\t\tisSellerChat: this.options.isSellerChat,\n\t\t\tisAdminChat: this.options.isAdminChat,\n\t\t\troomID: options.roomID || 0,\n\t\t\tpage: this.options.messagesPage,\n\t\t\tpageSize: this.options.messagesPageSize,\n\t\t\tpaginationLastMessageID: this.options.messagesPaginationLastID,\n\t\t\tcreateRoom: options.createRoom\n\t\t};\n\n\t\tajaxSend({ url: this.options.url.GetRoom, data: parameters }).then(data => {\n\t\t\tif (data.result) {\n\t\t\t\tself.joinRoom(data.id);\n\t\t\t\tself.users = data.users;\n\t\t\t\tself.totalMessages = data.totalMessages;\n\t\t\t\tif (data.messages.length) {\n\t\t\t\t\tself.options.messagesPaginationLastID = data.messages[data.messages.length - 1].id;\n\t\t\t\t\tself.messagesLoaded += data.messages.length;\n\t\t\t\t}\n\t\t\t\t$(self.options.container).html(self.renderRoom(data));\n\t\t\t\tself.canEditUsers = data.canEditUsers;\n\t\t\t\tself.scrollToBottom($(\".tum-chat-messages\"));\n\t\t\t\tif (data.totalMessages > data.messages.length) {\n\t\t\t\t\t$(\".tum-chat-loadOldMessages\").removeClass(\"d-none\");\n\t\t\t\t}\n\n\t\t\t\tif (self.options.scrollDownOnLoad) {\n\t\t\t\t\t$(\"html, body\").animate({ scrollTop: $(document).height() }, 1000);\n }\n\n $(\".tum-chat-newMessageText\").val(self.currentText[Number(data.id)]);\n\n //вставляем разделитель перед первым непрочитанным сообщением, если оно не первое в списке\n\t\t\t\t$('

Непрочитанные сообщения
').insertBefore($(\".tum-chat-message[data-isread=0]:first:not(:first-child)\"));\n\t\t\t\t$('.chat-user-hint').popover({\n\t\t\t\t\tsanitize: false\n\t\t\t\t});\n\n\t\t\t\tself.updateReadBy();\n\n\t\t\t\tif (options.callback) options.callback(data.id);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$(self.options.container).html(data.msg || \"Не удалось подключиться к чату\");\n\t\t\t}\n\t\t});\n\t},\n\tloadOldMessages: function () {\n\t\tlet self = this;\n this.options.messagesPage += 1;\n \n var params = {\n roomID: $(\".tum-chat-room\").attr(\"data-id\"),\n firmID: 0,\n productID: 0,\n orderID: 0,\n page: this.options.messagesPage,\n pageSize: this.options.messagesPageSize,\n\t\t\tpaginationLastMessageID: this.options.messagesPaginationLastID,\n\t\t\tpageTypeCode: this.options.role\n };\n \n\t\tajaxSend({ url: this.options.url.GetRoom, data: params }).then(data => {\n\t\t\tconsole.log(data);\n if (data.result) {\n if (data.messages.length) {\n \n for (var i = 0; i < data.messages.length; i++) {\n data.messages[i].user = data.users.filter(e => e.userID == data.messages[i].from); //.find\n if (data.messages[i].user.length) data.messages[i].user = data.messages[i].user[0];\n\t\t\t\t\t}\n\t\t\t\t\t\n $(data.messages.map(e => self.renderMessage(e)).join(\"\")).insertAfter($(\".tum-chat-loadOldMessagesCont\"));\n self.messagesLoaded += data.messages.length;\n }\n if (self.messagesLoaded == self.totalMessages) {\n $(\".tum-chat-loadOldMessages\").addClass(\"d-none\");\n }\n }\n else {\n $(\".tum-chat-messages\").append(\"
Ошибка при загрузке старых сообщений
\");\n self.scrollToBottom($(\".tum-chat-messages\"));\n }\n });\n },\n\tgetRooms: function (callback) {\n\t\t$(this.options.container).addClass(\"tum-chat-running\");\n\n\t\tvar dateFrom = \"\";\n\t\tvar dateTo = \"\";\n\t\tvar daterange = this.dateFilter || $(\".tum-chat-dateRange\").val() || \"\";\n\t\tvar split = daterange.split(\" - \");\n\t\tif (split.length == 2) {\n\t\t\tdateFrom = split[0];\n\t\t\tdateTo = split[1];\n\t\t}\n\n\t\tvar params = {\n\t\t\tfirmID: this.options.firmID || this.firmFilter || $(\".tum-chat-firmFilter\").val() || 0,\n\t\t\tproductID: this.options.productID || this.productFilter || $(\".tum-chat-productFilter\").val() || 0,\n\t\t\torderID: this.options.orderID || this.orderFilter || $(\".tum-chat-orderFilter\").val() || 0,\n\t\t\tisCabinet: this.options.isCabinet,\n\t\t\tuserFilter: this.userFilter || $(\".tum-chat-userFilter\").val() || 0,\n\t\t\tdateFrom: dateFrom,\n\t\t\tdateTo: dateTo,\n\t\t\tpage: this.options.page,\n\t\t\tpageSize: $('.tum-result-container select').val() || this.options.pageSize,\n\t\t\tunread: this.unreadFilter\n\t\t}\n\n\t\tajaxSend({ url: this.options.url.GetRooms, data: params }).then(data => {\n\t\t\tthis.total = data.total;\n\t\t\tdata.pagination = {\n\t\t\t\ttotal: this.total,\n\t\t\t\ttotalPages: Math.ceil(this.total / (+this.pageSizeFilter || this.options.pageSize)),\n\t\t\t\tpage: this.options.page,\n\t\t\t\tpages: this.getPaginationPages(this.options.page, (+this.pageSizeFilter || this.options.pageSize), this.total)\n\t\t\t}\n\n\t\t\t$(this.options.container).html(this.renderRooms(data));\n\n\t\t\t$(\".tum-chat-firmFilter\").val(this.firmFilter);\n\t\t\t$(\".tum-chat-productFilter\").val(this.productFilter);\n\t\t\t$(\".tum-chat-orderFilter\").val(this.orderFilter);\n\t\t\t$(\".tum-chat-userFilter\").val(this.userFilter);\n\t\t\t$(\".tum-chat-dateRange\").val(this.dateFilter);\n\t\t\t$(\".tum-chat-unreadFilter\").prop(\"checked\", this.unreadFilter);\n\t\t\t$('.tum-result-container select').val(this.pageSizeFilter || this.options.pageSize);\n\n\t\t\tif (this.options.isCabinet) {\n\t\t\t\timport(\"select2\").then(() => {\n\t\t\t\t\treturn import(\"select2/dist/js/i18n/ru.js\")\n\t\t\t\t}).then(() => {\n\t\t\t\t\t$('.tum-chat-firmFilter').select2({\n\t\t\t\t\t\t'minimumInputLength': 0,\n\t\t\t\t\t\t'language': \"ru\",\n\t\t\t\t\t\tdropdownAutoWidth: true\n\t\t\t\t\t});\n\t\n\t\t\t\t\t$('.tum-chat-productFilter').select2({\n\t\t\t\t\t\t'minimumInputLength': 0,\n\t\t\t\t\t\t'language': \"ru\",\n\t\t\t\t\t\tdropdownAutoWidth: true\n\t\t\t\t\t});\n\t\n\t\t\t\t\t$('.tum-chat-userFilter').select2({\n\t\t\t\t\t\t'minimumInputLength': 0,\n\t\t\t\t\t\t'language': \"ru\",\n\t\t\t\t\t\tdropdownAutoWidth: true\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t}\n\n\t\t\tif (callback) callback();\n\t\t});\n\t},\n\tgetRoomAnonymous: function (name, emailPhone) {\n\t\tvar parseResult = this.parseEmailPhone(emailPhone);\n\n\t\tif (!parseResult.correct) {\n\t\t\t$(\".tum-chat-unauthError\").html(\"Некорректные email или телефон\");\n\t\t\treturn;\n\t\t}\n\n\t\tthis.anonName = name;\n\t\tthis.anonEmail = parseResult.email;\n\t\tthis.anonPhone = parseResult.phone;\n\n\t\tthis.showUnauthModal();\n\t},\n\tparseEmailPhone: function (emailPhone) {\n\t\tvar emailregex = /^(([^<>()[\\]\\\\.,;:\\s@\"]+(\\.[^<>()[\\]\\\\.,;:\\s@\"]+)*)|(\".+\"))@((\\[[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}\\.[0-9]{1,3}])|(([a-zA-Z\\-0-9]+\\.)+[a-zA-Z]{2,}))$/;\n\n\t\tvar phoneRegex = /[0-9+]+/;\n\n\t\tvar email = \"\";\n\t\tvar phone = \"\";\n\n\t\tvar correct = true;\n\n\t\tif (emailregex.test(emailPhone)) {\n\t\t\temail = emailPhone;\n\t\t}\n\t\telse {\n\t\t\tphone = emailPhone;\n\t\t\tif (!phoneRegex.test(phone) || !((phone.startsWith(\"+\") && phone.length == 12) || (!phone.startsWith(\"+\") && phone.length == 11))) {\n\t\t\t\tcorrect = false;\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\temail: email,\n\t\t\tphone: phone,\n\t\t\tcorrect: correct\n\t\t}\n\t},\n\tsendMessage: function (text, roomID) {\n\t\tlet self = this;\n\t\tif (!text && !this.newMessageAttachments.length) {\n\t\t\treturn;\n\t\t}\n\t\t$(\".tum-chat-sendMessage\").prop(\"disabled\", true);\n\n ajaxSend({ url: this.options.url.SendMessage, data: { text: text, roomID: roomID, attachments: this.newMessageAttachments.join(\";\"), username: this.anonEmail || this.anonPhone || \"\", isPhone: this.anonPhone } }).then(data => {\n\t\t\tif (data.result) {\n $(\".tum-chat-newMessageText\").val(\"\");\n self.currentText[Number(roomID)] = \"\";\n\t\t\t\tself.newMessageAttachments = [];\n\t\t\t\tself.updateNewMessageAttachments();\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$(\".tum-chat-messages\").append(\"
Ошибка отправки сообщения
\");\n\t\t\t\tself.scrollToBottom($(\".tum-chat-messages\"));\n\t\t\t}\n\t\t\t$(\".tum-chat-sendMessage\").prop(\"disabled\", false);\n\t\t});\n\t},\n\tshowAddUserDialog: function (roomID) {\n\t\tlet self = this;\n\t\tajaxSend({ url: this.options.url.GetRoomAvailableUsers, data: { roomID: roomID, pageTypeCode: this.options.role } }).then(data => {\n\t\t\tif (data.result) {\n\t\t\t\tshowDialog({ title: \"Добавить сотрудника к чату\", content: self.renderAddUserDialog(data, roomID) });\n\t\t\t\t$(\"#asModal .modal-footer .btn-primary\").addClass(\"d-none\");\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$(\".tum-chat-messages\").append(\"
Ошибка при получении списка доступных пользователей
\");\n\t\t\t\tself.scrollToBottom($(\".tum-chat-messages\"));\n\t\t\t}\n\t\t});\n\t},\n addUserToRoom: function (username, roomID, userType) {\n\t\tlet self = this;\n ajaxSend({ url: this.options.url.AddUserToRoom, data: { targetUsername: username, roomID: roomID, targetUserType: userType } }).then(data => {\n if (data.result) {\n self.users.push(data.user)\n\t\t\t\t$(\".tum-chat-userList\").append(`
  • ${data.user.name} (${data.user.userID}) Удалить
  • `);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$(\".tum-chat-messages\").append(\"
    Ошибка добавления пользователя
    \");\n\t\t\t\tself.scrollToBottom($(\".tum-chat-messages\"));\n\t\t\t}\n\t\t});\n\t},\n\tremoveUserFromRoom: function (username, roomID) {\n\t\tlet self = this;\n\t\tif (!confirm(\"Вы уверены, что хотите удалить пользователя из чата?\")) {\n\t\t\treturn;\n\t\t}\n\t\tajaxSend({ url: self.options.url.RemoveUserFromRoom, data: { targetUsername: username, roomID: roomID } }).then(data => {\n\t\t\tif (data.result) {\n $(\".tum-chat-userListItem[data-username='\" + username + \"']\").remove();\n self.users = self.users.filter(e => e.username != username);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$(\".tum-chat-messages\").append(\"
    Ошибка удаления пользователя
    \");\n\t\t\t\tself.scrollToBottom($(\".tum-chat-messages\"));\n\t\t\t}\n\t\t});\n\t},\n\tsendVerificationCode: function () {\n\t\tlet self = this;\n\t\tajaxSend({ url: self.options.url.SendVerificationCode, data: { email: self.anonEmail, phone: self.anonPhone } }).then(data => {\n\t\t\tif (data.result) {\n\t\t\t\t$(\".tum-chat-verificationMsg\").html(data.msg || `На ваш ${self.anonEmail ? \"email\" : \"телефон\"} ${self.anonEmail || self.anonPhone} отправлено сообщение с 6-значным кодом, пожалуйста укажите его, чтобы продолжить общение`);\n\t\t\t\tself.timer = 30;\n\t\t\t\t$(\".tum-chat-sendCode\").prop(\"disabled\", true);\n\t\t\t\tself.interval = setInterval(function () {\n\t\t\t\t\tif (self.timer == 0) {\n\t\t\t\t\t\tclearTimeout(self.interval);\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\t\t\t\t\tself.timer = self.timer - 1;\n\t\t\t\t\tself.updateCodeButtonTimer();\n\t\t\t\t}, 1000);\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$(\".tum-chat-verificationMsg\").html(data.msg);\n\t\t\t}\n\t\t});\n\t},\n\tupdateCodeButtonTimer: function () {\n\t\tif (this.timer) {\n\t\t\t$(\".tum-chat-sendCodeTimer\").removeClass(\"d-none\");\n\t\t\t$(\".tum-chat-sendCodeTimer\").html(`Доступно через ${this.timer} сек.`);\n\t\t}\n\t\telse {\n\t\t\t$(\".tum-chat-sendCodeTimer\").html(\"\");\n\t\t\t$(\".tum-chat-sendCodeTimer\").addClass(\"d-none\");\n\t\t\t$(\".tum-chat-sendCode\").prop(\"disabled\", false);\n\t\t}\n\t},\n\tverifyUser: function () {\n\t\tlet self = this;\n\t\tajaxSend({ url: self.options.url.VerifyUser, data: { email: self.anonEmail, phone: self.anonPhone, name: self.anonName, code: $(\".tum-chat-verificationCode\").val() } }).then(data => {\n\t\t\tif (data.result) {\n\t\t\t\tself.registrationSuccess = true;\n\t\t\t\tself.newPassword = data.password;\n\t\t\t\t$(\".tum-chat-unauthModal-loginType\").html(self.anonEmail ? \"email\" : \"телефон\");\n\t\t\t\t$(\".tum-chat-unauthModal-login\").html(self.anonEmail || self.anonPhone);\n\t\t\t\t$(\".tum-chat-unauthModal-newPassword\").html(data.password);\n\n\t\t\t\tself.unauthModalGoTo(\"registration\");\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$(\".tum-chat-verificationMsg\").html(data.msg || \"Неверный код подтверждения\");\n\t\t\t}\n\t\t});\n\t},\n\tshowUnauthModal: function () {\n\t\tlet self = this;\n\t\tajaxSend({ url: self.options.url.CheckUnauthData, data: { email: self.anonEmail, phone: self.anonPhone } }).then(data => {\n\t\t\tif (data.result) {\n\t\t\t\tif (data.username) {\n\t\t\t\t\t$(\".tum-chat-unauthModalUsername\").html(self.anonPhone || self.anonEmail);\n\t\t\t\t\tself.unauthModalGoTo(\"userExists\");\n\t\t\t\t\t$(\"#ChatUnauthModal\").modal({\n\t\t\t\t\t\tshow: true,\n\t\t\t\t\t\tbackdrop: 'static'\n\t\t\t\t\t});\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\tself.startVerification();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$(\".tum-chat-unauthError\").html(\"Ошибка при проверке контактов. Попробуйте еще раз после обновления страницы.\");\n\t\t\t}\n\t\t});\n\t},\n\tcheckUnauthData: function () {\n\t\tlet self = this;\n\t\tvar parseResult = self.parseEmailPhone($(\".tum-chat-unauthModalEmailPhone\").val());\n\n\t\tif (!parseResult.correct) {\n\t\t\t$(\".tum-chat-unauthModal-error\").html(\"Некорректные email или телефон\");\n\t\t\treturn;\n\t\t}\n\n\t\tself.anonEmail = parseResult.email;\n\t\tself.anonPhone = parseResult.phone;\n\t\tself.anonName = $(\".tum-chat-unauthModalName\").val() || \"\";\n\n\t\tajaxSend({ url: self.options.url.CheckUnauthData, data: { email: self.anonEmail, phone: self.anonPhone } }).then(data => {\n\t\t\tif (data.result) {\n\t\t\t\tif (data.username) {\n\t\t\t\t\t$(\".tum-chat-unauthModal-error\").html(\"Укажите свои реальные данные\");\n\t\t\t\t}\n\t\t\t\telse {\n\t\t\t\t\t$(\".tum-chat-backFromVerification\").attr(\"data-fromEnterRealData\", \"1\");\n\t\t\t\t\tself.startVerification();\n\t\t\t\t}\n\t\t\t}\n\t\t\telse {\n\t\t\t\t$(\".tum-chat-unauthModal-error\").html(\"Ошибка при проверке контактов\");\n\t\t\t}\n\t\t});\n\t},\n\tunauthModalGoTo: function (code) {\n\t\t$(\".tum-chat-unauthModalBody > div\").addClass(\"d-none\");\n\t\t$(\".tum-chat-unauthModalFooter > div\").addClass(\"d-none\");\n\t\t$(\".tum-chat-unauthModal-error\").html(\"\");\n\n\t\tif (code == \"userExists\") { $(\".tum-chat-unauthModalUserExists\").removeClass(\"d-none\"); }\n\t\telse if (code == \"enterRealData\") { $(\".tum-chat-unauthModalEnterRealData\").removeClass(\"d-none\"); }\n\t\telse if (code == \"login\") { $(\".tum-chat-unauthModalLogin\").removeClass(\"d-none\"); }\n\t\telse if (code == \"verification\") { $(\".tum-chat-unauthModalVerification\").removeClass(\"d-none\"); }\n\t\telse if (code == \"registration\") { $(\".tum-chat-unauthModalRegistration\").removeClass(\"d-none\"); }\n\t},\n\tupdateNewMessageAttachments: function () {\n\t\t$(\".tum-chat-newMessageAttachments\").html(this.renderNewMessageAttachments());\n\t},\n\tscrollToBottom: function (cont) {\n\t\tif (cont.length)\n\t\t\tcont.scrollTop(cont.prop(\"scrollHeight\"));\n\t},\n\tisUserOnline: function (users, name) {\n\t\treturn $.inArray(name, users) !== -1;\n\t},\n renderRoom: function (data) {\n var urlRegex = /https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/g;\n\n\t\tfor (var i = 0; i < data.messages.length; i++) {\n data.messages[i].currentUsername = this.options.username || this.anonName;\n data.messages[i].text = data.messages[i].text?.replace(urlRegex, '$&');\n data.messages[i].role = this.options.role;\n data.messages[i].user = data.users.filter(e => e.userID == data.messages[i].from); //.find\n\t\t\tif (data.messages[i].user.length) data.messages[i].user = data.messages[i].user[0]; \n\t\t}\n\n\t\tdata.role = this.options.role;\n\n\t\treturn getPrecompiledTemplate('chat')(data);\n\t},\n\trenderRooms: function (data) {\n\n\t\tdata.isCabinet = this.options.isCabinet;\n\t\tdata.pageSize = this.options.pageSize;\n\t\tfor (var i = 0; i < data.items.length; i++) {\n\t\t\tdata.items[i].isCabinet = this.options.isCabinet;\n\t\t}\n\n\t\treturn getPrecompiledTemplate('chat-room-list')(data);\n\t},\n renderMessage: function (data) {\n var urlRegex = /https?:\\/\\/(www\\.)?[-a-zA-Z0-9@:%._+~#=]{1,256}\\.[a-zA-Z0-9()]{1,6}\\b([-a-zA-Z0-9()@:%_+.~#?&//=]*)/g;\n\n\t\tdata.text = data.text.replace(urlRegex, '$&')\n\n data.currentUsername = this.options.username || this.anonName;\n data.role = this.options.role;\n\t\treturn getPrecompiledTemplate('chat-message')(data);\n\t},\n\trenderAddUserDialog: function (data, roomID) {\n\t\tdata.roomID = roomID;\n\t\tdata.currentUsers = this.users;\n\t\treturn getPrecompiledTemplate('chat-add-user')(data);\n\t},\n\trenderNewMessageAttachments: function () {\n\t\tvar data = { items: [] };\n\t\tif (this.newMessageAttachments.length) {\n\t\t\tdata.items = this.newMessageAttachments.map(e => ({ url: e, filename: e.split(\"___\")[e.split(\"___\").length - 1] }));\n\t\t}\n\t\treturn getPrecompiledTemplate('chat-message-attachments')(data);\n\t},\n\trenderUnauthForm: function () {\n\t\treturn getPrecompiledTemplate('chat-unauthorized')({});\n\t},\n\tgetPaginationPages: function (page, pageSize, total) {\n\t\tvar res = [];\n\t\tvar totalPages = Math.ceil(total / pageSize);\n\t\tif (page < 5) {\n\t\t\tres = [1, 2, 3, 4, 5];\n\t\t}\n\t\telse if (page > totalPages - 4) {\n\t\t\tres = [totalPages - 4, totalPages - 3, totalPages - 2, totalPages - 1, totalPages];\n\t\t}\n\t\telse {\n\t\t\tres = [page - 2, page - 1, page, page + 1, page + 2];\n\t\t}\n\n\t\treturn res.filter(e => e > 0 && e <= totalPages);\n\t},\n\tdestroy: function () {\n\t\tvar roomID = $(\".tum-chat-room\").attr(\"data-id\");\n\n\t\tif (!roomID) return Promise.resolve();\n\n\t\tvar $activeCount = $(\".chatMessageCount.active\");\n\t\t$activeCount.attr(\"data-unread\", 0);\n\n\t\t$(this.options.container).html(\"\");\n\t\t$(\".tum-chat-running\").removeClass(\"tum-chat-running\");\n\t\t$(\".chatMessageCount\").removeClass(\"active\");\n\n\t\treturn this.leaveRoom(roomID);\n\t},\n\tupdateMessageCount: function (roomID, total, unread) {\n\t\tif (total < 1) {\n\t\t\treturn;\n\t\t}\n\n\t\tvar $count = $(\".chatMessageCount[data-roomid='\" + roomID + \"']\");\n\n\t\t$count.attr(\"data-total\", total);\n\t\t$count.attr(\"data-unread\", unread);\n\n\t\tif ($count.hasClass(\"active\") || unread == 0) {\n\t\t\t$count.html(total);\n\t\t}\n\t\telse {\n\t\t\t$count.html(total + \"/\" + unread + \"\");\n\t\t}\n\t},\n\tincrementMessageCount: function (roomID) {\n\t\tvar $count = $(\".chatMessageCount[data-roomid='\" + roomID + \"']\");\n\n\t\tvar total = Number($count.attr(\"data-total\")) + 1;\n\t\tvar unread = Number($count.attr(\"data-unread\")) + 1;\n\n\t\tthis.updateMessageCount(roomID, total, unread);\n\t},\n\tmarkAsRead: function (roomID) {\n\t\tif (!roomID) return;\n\t\tajaxSend({ url: this.options.url.MarkAsRead, data: { roomID: roomID, pageTypeCode: this.options.role }});\n }\n};\n\nexport default chat;","/* global grecaptcha */\n\nimport { ajaxSend } from \"./fetch\";\nimport { loadLib } from \"./loadlib\";\n\nvar _recaptchaRendered = false;\nvar _recaptchaReady = false;\nvar _publicKey = null;\n\n/**\n * подключает рекапчу, но не отображает ее\n * @param {string} publicKey \n */\nfunction initRecaptcha(publicKey) {\n _publicKey = publicKey;\n\n window.recaptchaCallback = function() {\n _recaptchaReady = true;\n document.dispatchEvent(new Event('tu.recaptcha.ready'));\n };\n\n return loadLib({\n jsLink: \"https://www.google.com/recaptcha/api.js?onload=recaptchaCallback&render=explicit&hl=ru\",\n conditionObject: window.grecaptcha\n });\n}\n\nfunction recaptchaReady(){\n if (_recaptchaReady) return Promise.resolve();\n\n return new Promise(resolve => {\n document.addEventListener('tu.recaptcha.ready', resolve);\n });\n}\n\n/**\n * дожидается загрузки рекапчи и отображает ее в указанном контейнере\n * \n * если капча уже показана, то сразу вернется promise с { result: false, alreadyRendered: true }\n * \n * иначе возвращается promise с объектом { result: boolean, token: string }, \n * в котором then отрабатывает не после загрузки капчи, а после прохождения\n * \n * запускать только после initRecaptcha\n * @param {HTMLElement | string} container\n * @returns {Promise}\n */\nfunction renderRecaptcha(container){\n if (_recaptchaRendered) return Promise.resolve({ result: false, alreadyRendered: true });\n if (!container && !document.getElementById(container)) return Promise.reject({ result: false, noContainer: true });\n\n return recaptchaReady().then(() => {\n return new Promise((resolve, reject) => {\n grecaptcha.render(container, {\n sitekey: _publicKey,\n callback: token => {\n ajaxSend({ url: \"/signup/verifyCaptcha\", data: { token: token } }).then(data => {\n if (data.result) {\n _recaptchaRendered = true;\n data.token = token;\n resolve(data);\n }\n else {\n reject(data);\n }\n });\n }\n });\n\n _recaptchaRendered = true;\n });\n });\n}\n\nexport { initRecaptcha, renderRecaptcha };"],"names":["chat","options","container","startChatButton","hubName","username","isAuthenticated","role","firmID","productID","orderID","url","GetRoom","GetRooms","SendMessage","DeleteMessage","GetRoomAvailableUsers","AddUserToRoom","RemoveUserFromRoom","SendVerificationCode","VerifyUser","CheckUnauthData","MarkAsRead","canAccessChat","chatDisabledMessage","isCabinet","pageSize","page","messagesPageSize","messagesPage","messagesPaginationLastID","scrollDownOnLoad","callback","pageTypeCode","isSellerChat","isAdminChat","currentText","anonName","anonEmail","anonPhone","userFilter","productFilter","firmFilter","pageSizeFilter","orderFilter","dateFilter","unreadFilter","canEditUsers","timer","interval","recaptchaKey","users","newMessageAttachments","total","totalMessages","messagesLoaded","registrationSuccess","init","this","initCallbacks","document","on","val","getRooms","registerCallback","data","incrementMessageCount","messageReceived","updateReadBy","hub","window","addEventListener","html","_loadChat","self","renderUnauthForm","hasClass","find","length","initChat","loadChat","tumarket","recaptchaSiteKey","then","token","catch","noContainer","Error","isUrlShowChat","focusChat","element","id","attr","getRoom","roomID","text","Number","newRoomID","sendMessage","showAddUserDialog","userType","addUserToRoom","closest","removeUserFromRoom","m","as","default","uploadHTML5","filesLeft","forEach","e","indexOf","path","push","updateNewMessageAttachments","filter","remove","name","emailPhone","getRoomAnonymous","verifyUser","sendVerificationCode","keyCode","which","shiftKey","preventDefault","click","unauthModalGoTo","params","login","passwordIn","redirectUrl","location","href","rememberMe","jsonOnly","result","reload","msg","checkUnauthData","toEnterRealData","clearInterval","modal","prop","dateRange","loadOldMessages","newPassword","title","content","addClass","stopPropagation","readByShowAll","$password","type","createRoom","collapse","css","highlightChat","offset","top","animate","scrollTop","highlight","JSON","parse","item","user","append","renderMessage","scrollToBottom","markAsRead","userIDs","$cont","newUserIDs","split","oldUserIDs","toArray","map","toAdd","userID","toString","joinRoom","invoke","leaveRoom","startVerification","show","backdrop","undefined","parameters","paginationLastMessageID","messages","renderRoom","removeClass","height","insertBefore","popover","sanitize","console","log","i","from","join","insertAfter","dateFrom","dateTo","unread","pagination","totalPages","Math","ceil","pages","getPaginationPages","renderRooms","select2","dropdownAutoWidth","parseResult","parseEmailPhone","correct","email","phone","showUnauthModal","test","startsWith","attachments","isPhone","renderAddUserDialog","targetUsername","targetUserType","confirm","setInterval","updateCodeButtonTimer","clearTimeout","code","password","renderNewMessageAttachments","cont","isUserOnline","urlRegex","currentUsername","replace","items","currentUsers","filename","destroy","Promise","resolve","updateMessageCount","$count","_recaptchaRendered","_recaptchaReady","_publicKey","initRecaptcha","publicKey","recaptchaCallback","dispatchEvent","Event","jsLink","conditionObject","grecaptcha","renderRecaptcha","alreadyRendered","getElementById","reject","render","sitekey"],"sourceRoot":""}