Files
doneit-web/.angular/cache/14.2.12/babel-webpack/e1ff8caac704547fa01297c5303f9d77.json
T
Eudes Inácio 53b71ea16f its working
2023-06-30 09:54:21 +01:00

1 line
64 KiB
JSON

{"ast":null,"code":"import _asyncToGenerator from \"C:/Users/eudes.inacio/GabineteDigital/gabinete-digital-fo/node_modules/@babel/runtime/helpers/esm/asyncToGenerator.js\";\nimport { __decorate } from \"tslib\";\nimport __NG_CLI_RESOURCE__0 from \"./chat.page.html?ngResource\";\nimport __NG_CLI_RESOURCE__1 from \"./chat.page.scss?ngResource\";\nimport { HttpHeaders, HttpParams } from '@angular/common/http';\nimport { Component, ViewChild, ViewContainerRef, Output } from '@angular/core';\nimport { ModalController, Platform } from '@ionic/angular';\nimport { AuthService } from 'src/app/services/auth.service';\nimport { ChatService } from 'src/app/services/chat.service';\nimport { ChatSystemService } from 'src/app/services/chat/chat-system.service';\nimport { GroupMessagesPage } from './group-messages/group-messages.page';\nimport { ContactsPage } from './messages/contacts/contacts.page';\nimport { MessagesPage } from './messages/messages.page';\nimport { NewGroupPage } from './new-group/new-group.page';\nimport { EditGroupPage } from 'src/app/shared/chat/edit-group/edit-group.page';\nimport { Router, NavigationEnd, ActivatedRoute } from '@angular/router';\nimport { removeDuplicate } from 'src/plugin/removeDuplicate.js';\nimport { environment } from 'src/environments/environment';\nimport { TimeService } from 'src/app/services/functions/time.service';\nimport { ThemeService } from 'src/app/services/theme.service';\nimport { DataService } from 'src/app/services/data.service';\nimport { SqliteService } from 'src/app/services/sqlite.service';\nimport { StorageService } from 'src/app/services/storage.service';\nimport { SessionStore } from 'src/app/store/session.service';\nimport { ChatDebuggingPage } from 'src/app/shared/popover/chat-debugging/chat-debugging.page';\nimport { EventTrigger } from 'src/app/services/eventTrigger.service';\nlet ChatPage = class ChatPage {\n constructor(chatService, modalController, authService, route, timeService, ThemeService, dataService, router, sqlservice, platform, storageservice, ChatSystemService, activatedRoute, eventTriger) {\n this.chatService = chatService;\n this.modalController = modalController;\n this.authService = authService;\n this.route = route;\n this.timeService = timeService;\n this.ThemeService = ThemeService;\n this.dataService = dataService;\n this.router = router;\n this.sqlservice = sqlservice;\n this.platform = platform;\n this.storageservice = storageservice;\n this.ChatSystemService = ChatSystemService;\n this.activatedRoute = activatedRoute;\n this.eventTriger = eventTriger;\n this.dmUsers = [];\n this.desktopComponent = {\n showMessages: false,\n showGroupMessages: false\n };\n this.showEmptyComponent = true;\n this.showMessages = false;\n this.showContacts = false;\n this.showNewGroup = false;\n this.showEditGroup = false;\n this.showGroupMessages = false;\n this.showGroupContacts = false;\n this.showNewEvent = false;\n this.showAttendees = false;\n this.emptyTextDescription = 'Sem conversa selecionada';\n this.message = {\n \"msg\": \"connect\",\n \"version\": \"1\",\n \"support\": [\"1\"]\n };\n this.hideRefreshBtn = true;\n this.taskParticipants = [];\n this.taskParticipantsCc = [];\n this.adding = \"intervenient\";\n this.eventSelectedDate = new Date();\n this.showEventEditOrOpen = \"\";\n this.headers = new HttpHeaders();\n window.onresize = event => {\n if (window.innerWidth > 701) {\n this.modalController.dismiss();\n }\n };\n this.showLoader = true;\n this.segment = 'Contactos';\n this.eventTriger.getObservable().subscribe(event => {\n if (event.notification == \"recive\") {\n this.onSegmentChange();\n }\n // console.log(event)\n });\n }\n\n ngOnInit() {\n this.segment = \"Contactos\";\n this.authService.userData$.subscribe(res => {\n this.loggedUser = res;\n });\n this.hideRefreshButton();\n this.getChatMembers();\n this.router.events.forEach(event => {\n if (event instanceof NavigationEnd && event.url == '/home/chat' || event instanceof NavigationEnd && event.url == \"/home/chat?gbCreateGroup=true\") {\n this.checkCreateGroup();\n }\n });\n this.router.events.forEach(event => {\n if (event instanceof NavigationEnd && event.url.startsWith('/home/chat')) {\n this.routeCheck();\n }\n });\n this.routeCheck();\n }\n routeCheck() {\n const urlParams = new URLSearchParams(window.location.search);\n const roomId = urlParams.get('roomId');\n if (roomId) {\n const room = this.ChatSystemService.getRoomById(roomId);\n if (room.isGroup) {\n this.segment = 'Grupos';\n this.openGroupMessagesPage(roomId);\n } else {\n this.segment = 'Contactos';\n this.openMessagesPage(roomId);\n }\n }\n }\n checkCreateGroup() {\n if (this.dataService.get(\"newGroup\")) {\n this.openNewGroupPage();\n } else {\n this.closeAllDesktopComponents();\n this.showEmptyComponent = true;\n }\n }\n numSequence(n) {\n return Array(n);\n }\n ngOnDestroy() {\n this.setStatus('offline');\n }\n setStatus(status) {\n let body = {\n message: '',\n status: status\n };\n this.chatService.setUserStatus(body).subscribe(res => {});\n }\n hideRefreshButton() {\n window.onresize = event => {\n if (window.innerWidth < 701) {\n this.idSelected = '';\n this.hideRefreshBtn = false;\n this.closeAllDesktopComponents();\n this.ChatSystemService.getRoomById(this.roomId)?.roomLeave();\n } else {\n this.hideRefreshBtn = true;\n if (this.idSelected == '') {\n this.showEmptyComponent = true;\n }\n }\n };\n if (window.innerWidth < 701) {\n this.idSelected = '';\n this.hideRefreshBtn = false;\n }\n }\n closeAllDesktopComponents() {\n this.showMessages = false;\n this.showContacts = false;\n this.showNewGroup = false;\n this.showEditGroup = false;\n this.showGroupMessages = false;\n this.showEmptyComponent = false;\n this.showGroupContacts = false;\n this.showNewEvent = false;\n this.showAttendees = false;\n }\n showEmptyContainer() {\n this.idSelected = '';\n this.showEmptyComponent = true;\n }\n openGroupContactsPage(data) {\n this.idSelected = '';\n this.groupRoomId = data;\n this.closeAllDesktopComponents();\n if (window.innerWidth < 701) {} else {\n this.showGroupContacts = true;\n }\n }\n openMessagesPage(rid) {\n // this.chatService.refreshtoken();\n this.roomId = rid;\n if (window.innerWidth < 701) {\n this.openMessagesModal(rid);\n } else {\n this.idSelected = rid;\n this.closeAllDesktopComponents();\n this.showEmptyComponent = false;\n this.showMessages = true;\n }\n }\n openContactsPage() {\n this.idSelected = '';\n this.closeAllDesktopComponents();\n if (window.innerWidth < 701) {\n this.selectContact();\n } else {\n this.showContacts = true;\n }\n }\n openNewGroupPage() {\n this.idSelected = '';\n if (window.innerWidth < 701) {\n this.newGroup();\n } else {\n this.closeAllDesktopComponents();\n this.showNewGroup = true;\n }\n }\n openEditGroupPage(rid) {\n if (window.innerWidth < 701) {\n this.editGroup(rid);\n } else {\n this.closeAllDesktopComponents();\n this.showEditGroup = true;\n }\n }\n openGroupMessagesPage(rid) {\n this.roomId = rid;\n if (window.innerWidth < 701) {\n this.openGroupMessagesModal(rid);\n } else {\n this.idSelected = rid;\n this.closeAllDesktopComponents();\n this.showEmptyComponent = false;\n this.showGroupMessages = true;\n }\n }\n openNewEventPage(data) {\n if (data) {\n this.taskParticipants = data.members.map(val => {\n return {\n Name: val.name,\n EmailAddress: val.username + \"@\" + environment.domain,\n IsRequired: \"true\"\n };\n });\n this.groupRoomId = data.roomId;\n }\n this.closeAllDesktopComponents();\n if (window.innerWidth < 701) {} else {\n this.showNewEvent = true;\n }\n }\n openAttendeesComponent(data) {\n var _this = this;\n return _asyncToGenerator(function* () {\n _this.adding = data.type;\n _this.closeAllDesktopComponents();\n _this.showAttendees = true;\n })();\n }\n clearContact() {\n var _this2 = this;\n return _asyncToGenerator(function* () {\n _this2.contacts = [];\n })();\n }\n setContact(data) {\n var _this3 = this;\n return _asyncToGenerator(function* () {\n _this3.contacts = data;\n })();\n }\n setIntervenient(data) {\n var _this4 = this;\n return _asyncToGenerator(function* () {\n _this4.taskParticipants = removeDuplicate(data);\n })();\n }\n setIntervenientCC(data) {\n var _this5 = this;\n return _asyncToGenerator(function* () {\n _this5.taskParticipantsCc = removeDuplicate(data);\n })();\n }\n closeAttendeesComponent() {\n var _this6 = this;\n return _asyncToGenerator(function* () {\n _this6.closeAllDesktopComponents();\n _this6.showNewEvent = true;\n })();\n }\n closeNewEventComponent() {\n var _this7 = this;\n return _asyncToGenerator(function* () {\n _this7.closeAllDesktopComponents();\n _this7.showEmptyComponent = true;\n _this7.idSelected = \"\";\n })();\n }\n closeNewEventComponentAndOpenChat({\n roomId\n }) {\n var _this8 = this;\n return _asyncToGenerator(function* () {\n _this8.closeAllDesktopComponents();\n _this8.ChatSystemService._group.forEach(room => {\n if (room.id == roomId) {\n _this8.openGroupMessagesPage(roomId);\n }\n });\n _this8.ChatSystemService._dm.forEach(room => {\n if (room.id == roomId) {\n _this8.openMessagesPage(roomId);\n }\n });\n })();\n }\n onSegmentChange() {\n this.ChatSystemService.getAllRooms();\n }\n doRefresh(event) {\n setTimeout(() => {\n try {\n event?.target?.complete();\n } catch (error) {}\n }, 1000);\n }\n customRoom() {\n let params = new HttpParams();\n params = params.set(\"types\", \"c\");\n this.chatService.customsRooms(params).subscribe(res => {\n //\n });\n }\n // getDirectMessagesDB() {\n // if (this.platform.is('desktop') || this.platform.is('mobileweb')) {\n // this.storageservice.get(\"rooms\").then((rooms) =>{\n // this.userDirectMessages = rooms.sort((a, b) => {\n // var dateA = new Date(a._updatedAt).getTime();\n // var dateB = new Date(b._updatedAt).getTime();\n // return dateB - dateA;\n // });\n // //\n // //\n // }).catch((error) => {\n // console.error('storage getdirectmessagedb: ',error)\n // })\n // this.storageservice.get('chatusers').then((users) => {\n // this.dmUsers = users.filter(data => data.username != SessionStore.user.UserName);\n // }).catch((error) => {\n // console.error('storage getchatusers: ',error)\n // })\n // } \n // // else {\n // // this.sqlservice.getAllChatRoom().then((rooms: any) => {\n // // //\n // // let roomsArray = [];\n // // rooms.forEach(element => {\n // // let roomListDB = {\n // // _id: element.Id,\n // // uids: this.isJson(element.Uids),\n // // usernames: this.isJson(element.Usernames),\n // // lastMessage: this.isJson(element.LastMessage),\n // // _updatedAt: element.UpdatedAt\n // // }\n // // if(element.customFields == \"undefined\") {\n // // roomsArray.push(roomListDB)\n // // }\n // // });\n // // this.userDirectMessages = roomsArray.sort((a, b) => {\n // // var dateA = new Date(a._updatedAt).getTime();\n // // var dateB = new Date(b._updatedAt).getTime();\n // // return dateB - dateA;\n // // });\n // // //\n // // //\n // // })\n // // this.sqlservice.getAllChatUsers().then((userslist: any) => {\n // // //\n // // let chatusersArray = [];\n // // userslist.forEach(element => {\n // // let userListDB = {\n // // _id: element.Id,\n // // name: element.Name,\n // // username: element.Username\n // // }\n // // chatusersArray.push(userListDB);\n // // });\n // // this.dmUsers = chatusersArray.filter(data => data.username != SessionStore.user.UserName);\n // // })\n // // }\n // }\n // transformDataRoomList(data) {\n // if (this.platform.is('desktop') || this.platform.is('mobileweb')) {\n // let roomsArray = [];\n // data.forEach(element => {\n // let roomList = {\n // _id: element._id,\n // uids: element.uids,\n // usernames: element.usernames,\n // lastMessage: element.lastMessage,\n // _updatedAt: element._updatedAt\n // }\n // //\n // roomsArray.push(roomList)\n // });\n // this.storageservice.remove('rooms');\n // this.storageservice.store('rooms', roomsArray);\n // } else {\n // data.forEach(element => {\n // let roomList = {\n // id: element._id,\n // uids: element.uids,\n // usernames: element.usernames,\n // lastMessage: element.lastMessage,\n // updatedat: element._updatedAt\n // }\n // //\n // // this.sqlservice.addChatListRoom(roomList);\n // });\n // }\n // }\n transformDataUserList(users) {\n var _this9 = this;\n return _asyncToGenerator(function* () {\n if (_this9.platform.is('desktop') || _this9.platform.is('mobileweb')) {\n let usersArray = [];\n users.forEach(element => {\n //\n let chatusers = {\n _id: element._id,\n name: element.name,\n username: element.username\n };\n //\n usersArray.push(chatusers);\n });\n yield _this9.storageservice.remove('chatusers');\n yield _this9.storageservice.store('chatusers', usersArray);\n } else {\n users.forEach(element => {\n //\n let chatusers = {\n id: element._id,\n name: element.name,\n username: element.username\n };\n //\n // this.sqlservice.addChatListUsers(chatusers);\n });\n }\n })();\n }\n\n showDateDuration(start) {\n return this.timeService.showDateDuration(start);\n }\n countDownDate(date, roomId) {\n return this.timeService.countDownDate(date, roomId);\n }\n getChatMembers() {\n var _this10 = this;\n return _asyncToGenerator(function* () {\n _this10.chatService.getAllUsers().subscribe(res => {\n //\n _this10.transformDataUserList(res['users']);\n });\n })();\n }\n getGroupsDB() {\n if (this.platform.is('desktop') || this.platform.is('mobileweb')) {\n this.storageservice.get(\"grouprooms\").then(rooms => {\n let k = rooms.sort((a, b) => {\n var dateA = new Date(a._updatedAt).getTime();\n var dateB = new Date(b._updatedAt).getTime();\n return dateB - dateA;\n });\n this.allGroups = rooms.sort((a, b) => {\n var dateA = new Date(a._updatedAt).getTime();\n var dateB = new Date(b._updatedAt).getTime();\n return dateB - dateA;\n });\n //\n }).catch(error => {\n console.error('storage getGrup Romm db: ', error);\n });\n this.storageservice.get('chatusers').then(users => {\n this.dmUsers = users.filter(data => data.username != SessionStore.user.UserName);\n }).catch(error => {\n console.error('storage getgrupDb: ', error);\n });\n } else {\n // this.sqlservice.getAllChatRoom().then((rooms: any) => {\n // let roomsArray = [];\n // rooms.forEach(element => {\n // let fddf = this.isJson(element.LastMessage);\n // let roomListDB = {\n // _id: element.Id,\n // customFields: this.isJson(element.customFields),\n // name: element.name,\n // lastMessage: this.isJson(element.LastMessage),\n // _updatedAt: element.UpdatedAt\n // }\n // if(element.customFields != \"undefined\") {\n // roomsArray.push(roomListDB)\n // }\n // });\n // this.allGroups = roomsArray.sort((a, b) => {\n // var dateA = new Date(a._updatedAt).getTime();\n // var dateB = new Date(b._updatedAt).getTime();\n // return dateB - dateA;\n // });\n // //\n // })\n }\n }\n roomDataFileType(roomData) {\n return roomData?.lastMessage?.file?.type || null;\n }\n transformGroups(data) {\n var _this11 = this;\n return _asyncToGenerator(function* () {\n if (_this11.platform.is('desktop') || _this11.platform.is('mobileweb')) {\n let groupsArray = [];\n data.forEach(element => {\n let roomList = {\n _id: element._id,\n uids: element.uids,\n usernames: element.usernames,\n name: element.name,\n customFields: element.customFields,\n lastMessage: element.lastMessage,\n _updatedAt: element._updatedAt\n };\n groupsArray.push(roomList);\n });\n yield _this11.storageservice.remove('grouprooms');\n yield _this11.storageservice.store('grouprooms', groupsArray);\n } else {\n data.forEach(element => {\n let roomList = {\n id: element._id,\n uids: element.uids,\n usernames: element.usernames,\n customFields: element.customFields,\n name: element.name,\n lastMessage: element.lastMessage,\n updatedat: element._updatedAt\n };\n // this.sqlservice.addChatListRoom(roomList);\n });\n }\n })();\n }\n\n emptyTextDescriptionOpen() {\n var _this12 = this;\n return _asyncToGenerator(function* () {\n _this12.closeAllDesktopComponents();\n _this12.showEmptyComponent = true;\n })();\n }\n getGroups(event) {\n var _this13 = this;\n return _asyncToGenerator(function* () {\n _this13.result = _this13.chatService.getAllPrivateGroups().subscribe( /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (res) {\n //\n _this13.showLoader = false;\n if (res.groups != 200) {\n _this13.transformGroups(res.groups);\n _this13.getGroupsDB();\n _this13.privateGroups = res.groups;\n if (_this13.route.url != \"/home/chat\") {\n //\n } else {\n //Check if modal is opened\n if (_this13.segment == \"Grupos\" && _this13.showGroupMessages != true) {\n yield new Promise(resolve => setTimeout(resolve, 1000)).catch(error => {\n console.error(error);\n });\n //await this.getGroups();\n }\n }\n } else {\n //await this.getGroups();\n }\n });\n return function (_x) {\n return _ref.apply(this, arguments);\n };\n }());\n })();\n }\n isJson(str) {\n try {\n JSON.parse(str);\n } catch (e) {\n return str;\n }\n return JSON.parse(str);\n }\n selectContact() {\n var _this14 = this;\n return _asyncToGenerator(function* () {\n const modal = yield _this14.modalController.create({\n component: ContactsPage,\n cssClass: 'modal modal-desktop'\n });\n yield modal.present();\n modal.onDidDismiss().then(Data => {\n // console.log(Data,'daatatatat');\n // let data = Data.data\n // let roomId = data.roomId\n // this.openMessagesPage(roomId);\n });\n })();\n }\n newGroup() {\n var _this15 = this;\n return _asyncToGenerator(function* () {\n const modal = yield _this15.modalController.create({\n component: NewGroupPage,\n cssClass: 'modal modal-desktop'\n });\n yield modal.present();\n modal.onDidDismiss();\n })();\n }\n editGroup(roomId) {\n var _this16 = this;\n return _asyncToGenerator(function* () {\n const modal = yield _this16.modalController.create({\n component: EditGroupPage,\n cssClass: 'modal modal-desktop',\n componentProps: {\n roomId: roomId\n }\n });\n yield modal.present();\n modal.onDidDismiss().then(res => {\n _this16.modalController.dismiss(res.data);\n });\n })();\n }\n openMessagesModal(roomId) {\n var _this17 = this;\n return _asyncToGenerator(function* () {\n _this17.closeAllDesktopComponents();\n //\n const modal = yield _this17.modalController.create({\n component: MessagesPage,\n cssClass: 'modal modal-desktop isMessagesChatOpened',\n componentProps: {\n roomId: roomId\n }\n });\n yield modal.present();\n modal.onDidDismiss();\n })();\n }\n backToChat({\n roomId\n }) {\n const room = this.ChatSystemService.getRoomById(roomId);\n if (room.isGroup) {\n this.segment = \"Grupos\";\n this.openGroupMessagesPage(room.id);\n } else {\n this.segment = \"Contactos\";\n this.openMessagesPage(room.id);\n }\n }\n openChatDebuggingPageModal(roomId) {\n var _this18 = this;\n return _asyncToGenerator(function* () {\n const modal = yield _this18.modalController.create({\n component: ChatDebuggingPage,\n cssClass: 'modal modal-desktop isMessagesChatOpened',\n componentProps: {\n // roomId: roomId,\n }\n });\n yield modal.present();\n modal.onDidDismiss();\n })();\n }\n openGroupMessagesModal(roomId) {\n var _this19 = this;\n return _asyncToGenerator(function* () {\n const modal = yield _this19.modalController.create({\n component: GroupMessagesPage,\n cssClass: 'modal modal-desktop isGroupChatOpened',\n componentProps: {\n roomId: roomId\n }\n });\n yield modal.present();\n modal.onDidDismiss().then(() => {\n _this19.ChatSystemService.currentRoom.roomLeave();\n });\n })();\n }\n};\nChatPage.ctorParameters = () => [{\n type: ChatService\n}, {\n type: ModalController\n}, {\n type: AuthService\n}, {\n type: Router\n}, {\n type: TimeService\n}, {\n type: ThemeService\n}, {\n type: DataService\n}, {\n type: Router\n}, {\n type: SqliteService\n}, {\n type: Platform\n}, {\n type: StorageService\n}, {\n type: ChatSystemService\n}, {\n type: ActivatedRoute\n}, {\n type: EventTrigger\n}];\nChatPage.propDecorators = {\n entry: [{\n type: ViewChild,\n args: ['messagecontainer', {\n read: ViewContainerRef\n }]\n }],\n getRoomInfo: [{\n type: Output\n }]\n};\nChatPage = __decorate([Component({\n selector: 'app-chat',\n template: __NG_CLI_RESOURCE__0,\n styles: [__NG_CLI_RESOURCE__1]\n})], ChatPage);\nexport { ChatPage };","map":{"version":3,"mappings":"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","names":["HttpHeaders","HttpParams","Component","ViewChild","ViewContainerRef","Output","ModalController","Platform","AuthService","ChatService","ChatSystemService","GroupMessagesPage","ContactsPage","MessagesPage","NewGroupPage","EditGroupPage","Router","NavigationEnd","ActivatedRoute","removeDuplicate","environment","TimeService","ThemeService","DataService","SqliteService","StorageService","SessionStore","ChatDebuggingPage","EventTrigger","ChatPage","constructor","chatService","modalController","authService","route","timeService","dataService","router","sqlservice","platform","storageservice","activatedRoute","eventTriger","showMessages","showGroupMessages","Date","headers","window","onresize","event","innerWidth","dismiss","showLoader","segment","getObservable","subscribe","notification","onSegmentChange","ngOnInit","userData$","res","loggedUser","hideRefreshButton","getChatMembers","events","forEach","url","checkCreateGroup","startsWith","routeCheck","urlParams","URLSearchParams","location","search","roomId","get","room","getRoomById","isGroup","openGroupMessagesPage","openMessagesPage","openNewGroupPage","closeAllDesktopComponents","showEmptyComponent","numSequence","n","Array","ngOnDestroy","setStatus","status","body","message","setUserStatus","idSelected","hideRefreshBtn","roomLeave","showContacts","showNewGroup","showEditGroup","showGroupContacts","showNewEvent","showAttendees","showEmptyContainer","openGroupContactsPage","data","groupRoomId","rid","openMessagesModal","openContactsPage","selectContact","newGroup","openEditGroupPage","editGroup","openGroupMessagesModal","openNewEventPage","taskParticipants","members","map","val","Name","name","EmailAddress","username","domain","IsRequired","openAttendeesComponent","_this","adding","type","clearContact","_this2","contacts","setContact","_this3","setIntervenient","_this4","setIntervenientCC","_this5","taskParticipantsCc","closeAttendeesComponent","_this6","closeNewEventComponent","_this7","closeNewEventComponentAndOpenChat","_this8","_group","id","_dm","getAllRooms","doRefresh","setTimeout","target","complete","error","customRoom","params","set","customsRooms","transformDataUserList","users","_this9","is","usersArray","element","chatusers","_id","push","remove","store","showDateDuration","start","countDownDate","date","_this10","getAllUsers","getGroupsDB","then","rooms","k","sort","a","b","dateA","_updatedAt","getTime","dateB","allGroups","catch","console","dmUsers","filter","user","UserName","roomDataFileType","roomData","lastMessage","file","transformGroups","_this11","groupsArray","roomList","uids","usernames","customFields","updatedat","emptyTextDescriptionOpen","_this12","getGroups","_this13","result","getAllPrivateGroups","groups","privateGroups","Promise","resolve","isJson","str","JSON","parse","e","modal","_this14","create","component","cssClass","present","onDidDismiss","Data","_this15","_this16","componentProps","_this17","backToChat","openChatDebuggingPageModal","_this18","_this19","currentRoom","args","read","selector","template"],"sourceRoot":"","sources":["C:\\Users\\eudes.inacio\\GabineteDigital\\gabinete-digital-fo\\src\\app\\pages\\chat\\chat.page.ts"],"sourcesContent":["import { HttpHeaders, HttpParams } from '@angular/common/http';\r\nimport {\r\n Component,\r\n OnInit,\r\n ViewChild,\r\n ViewContainerRef,\r\n Output,\r\n} from '@angular/core';\r\nimport { ModalController, Platform } from '@ionic/angular';\r\nimport { AuthService } from 'src/app/services/auth.service';\r\nimport { ChatService } from 'src/app/services/chat.service';\r\nimport { ChatSystemService } from 'src/app/services/chat/chat-system.service'\r\nimport { GroupMessagesPage } from './group-messages/group-messages.page';\r\nimport { ContactsPage } from './messages/contacts/contacts.page';\r\nimport { MessagesPage } from './messages/messages.page';\r\nimport { NewGroupPage } from './new-group/new-group.page';\r\nimport { EditGroupPage } from 'src/app/shared/chat/edit-group/edit-group.page';\r\nimport { Subject } from \"rxjs/Rx\";\r\nimport { NavigationStart, Router, NavigationEnd, ActivatedRoute } from '@angular/router';\r\nimport { EventPerson } from 'src/app/models/eventperson.model';\r\nimport { removeDuplicate } from 'src/plugin/removeDuplicate.js'\r\nimport { environment } from 'src/environments/environment';\r\nimport { TimeService } from 'src/app/services/functions/time.service';\r\nimport { ThemeService } from 'src/app/services/theme.service'\r\nimport { DataService } from 'src/app/services/data.service';\r\nimport { SqliteService } from 'src/app/services/sqlite.service';\r\nimport { StorageService } from 'src/app/services/storage.service';\r\nimport { SessionStore } from 'src/app/store/session.service';\r\nimport { ChatDebuggingPage } from 'src/app/shared/popover/chat-debugging/chat-debugging.page';\r\nimport { EventTrigger } from 'src/app/services/eventTrigger.service';\r\n\r\n\r\n@Component({\r\n selector: 'app-chat',\r\n templateUrl: './chat.page.html',\r\n styleUrls: ['./chat.page.scss'],\r\n})\r\nexport class ChatPage implements OnInit {\r\n\r\n showLoader: boolean;\r\n\r\n headers: HttpHeaders;\r\n options: any;\r\n X_User_Id: any;\r\n X_Auth_Token: any;\r\n\r\n loggedUser: any;\r\n segment: string;\r\n allGroups: any[];\r\n privateGroups: any[];\r\n publicGroups: any[];\r\n userConnectedList: any[];\r\n userRooms: any[];\r\n userChannels: any[];\r\n userDirectMessages: any[];\r\n result: any;\r\n dmUsers: any[] = [];\r\n idSelected: string;\r\n\r\n desktopComponent: any = {\r\n showMessages: false,\r\n showGroupMessages: false,\r\n }\r\n\r\n @ViewChild('messagecontainer', { read: ViewContainerRef }) entry: ViewContainerRef;\r\n componentRef: any;\r\n\r\n roomId: any;\r\n groupRoomId: any;\r\n showEmptyComponent = true;\r\n showMessages = false;\r\n showContacts = false;\r\n showNewGroup = false;\r\n showEditGroup = false;\r\n showGroupMessages = false;\r\n showGroupContacts = false;\r\n showNewEvent = false;\r\n showAttendees = false;\r\n emptyTextDescription = 'Sem conversa selecionada';\r\n\r\n @Output() getRoomInfo;\r\n\r\n\r\n subject: any;\r\n public messages: Subject<any>;\r\n\r\n message = {\r\n \"msg\": \"connect\",\r\n \"version\": \"1\",\r\n \"support\": [\"1\"]\r\n };\r\n\r\n loggedUserChat: any;\r\n hideRefreshBtn = true;\r\n\r\n taskParticipants: any = [];\r\n taskParticipantsCc: any = [];\r\n adding: \"intervenient\" | \"CC\" = \"intervenient\";\r\n profile: 'mdgpr' | 'pr';\r\n eventSelectedDate: Date = new Date();\r\n contacts: EventPerson[];\r\n showEventEditOrOpen: \"edit\" | \"add\" | \"\" | \"eventoToApprove\" = \"\"\r\n\r\n constructor(\r\n private chatService: ChatService,\r\n private modalController: ModalController,\r\n private authService: AuthService,\r\n private route: Router,\r\n private timeService: TimeService,\r\n public ThemeService: ThemeService,\r\n private dataService: DataService,\r\n private router: Router,\r\n private sqlservice: SqliteService,\r\n private platform: Platform,\r\n private storageservice: StorageService,\r\n public ChatSystemService: ChatSystemService,\r\n private activatedRoute: ActivatedRoute,\r\n private eventTriger: EventTrigger\r\n ) {\r\n\r\n this.headers = new HttpHeaders();\r\n window.onresize = (event) => {\r\n if (window.innerWidth > 701) {\r\n this.modalController.dismiss();\r\n }\r\n };\r\n\r\n this.showLoader = true;\r\n\r\n this.segment = 'Contactos'\r\n\r\n this.eventTriger.getObservable().subscribe((event) => {\r\n if(event.notification == \"recive\") {\r\n this.onSegmentChange()\r\n }\r\n // console.log(event)\r\n });\r\n\r\n }\r\n\r\n ngOnInit() {\r\n\r\n this.segment = \"Contactos\";\r\n\r\n this.authService.userData$.subscribe((res: any) => {\r\n this.loggedUser = res;\r\n });\r\n\r\n this.hideRefreshButton();\r\n this.getChatMembers();\r\n\r\n\r\n this.router.events.forEach((event) => {\r\n if (event instanceof NavigationEnd && event.url == '/home/chat' || \r\n event instanceof NavigationEnd && event.url == \"/home/chat?gbCreateGroup=true\") {\r\n this.checkCreateGroup();\r\n }\r\n });\r\n\r\n this.router.events.forEach((event) => {\r\n if (event instanceof NavigationEnd && event.url.startsWith('/home/chat')) {\r\n this.routeCheck()\r\n }\r\n });\r\n\r\n this.routeCheck()\r\n }\r\n\r\n routeCheck() {\r\n\r\n const urlParams = new URLSearchParams(window.location.search);\r\n const roomId = urlParams.get('roomId');\r\n \r\n if(roomId) {\r\n const room = this.ChatSystemService.getRoomById(roomId);\r\n\r\n if(room.isGroup) {\r\n this.segment = 'Grupos'\r\n this.openGroupMessagesPage(roomId)\r\n } else {\r\n this.segment = 'Contactos'\r\n this.openMessagesPage(roomId)\r\n }\r\n }\r\n\r\n\r\n }\r\n\r\n checkCreateGroup() {\r\n if (this.dataService.get(\"newGroup\")) {\r\n this.openNewGroupPage();\r\n }\r\n else {\r\n this.closeAllDesktopComponents();\r\n this.showEmptyComponent = true;\r\n }\r\n \r\n }\r\n\r\n numSequence(n: number): Array<number> {\r\n return Array(n);\r\n }\r\n\r\n ngOnDestroy() {\r\n this.setStatus('offline');\r\n \r\n }\r\n\r\n setStatus(status: string) {\r\n let body = {\r\n message: '',\r\n status: status,\r\n }\r\n this.chatService.setUserStatus(body).subscribe(res => {\r\n \r\n })\r\n }\r\n\r\n hideRefreshButton() {\r\n window.onresize = (event) => {\r\n if (window.innerWidth < 701) {\r\n this.idSelected = '';\r\n this.hideRefreshBtn = false;\r\n this.closeAllDesktopComponents()\r\n\r\n this.ChatSystemService.getRoomById(this.roomId)?.roomLeave()\r\n }\r\n else {\r\n this.hideRefreshBtn = true;\r\n if (this.idSelected == '') {\r\n this.showEmptyComponent = true;\r\n }\r\n }\r\n }\r\n if (window.innerWidth < 701) {\r\n this.idSelected = '';\r\n this.hideRefreshBtn = false;\r\n }\r\n }\r\n\r\n closeAllDesktopComponents() {\r\n this.showMessages = false;\r\n this.showContacts = false;\r\n this.showNewGroup = false;\r\n this.showEditGroup = false;\r\n this.showGroupMessages = false;\r\n this.showEmptyComponent = false;\r\n this.showGroupContacts = false;\r\n this.showNewEvent = false;\r\n this.showAttendees = false;\r\n \r\n }\r\n\r\n showEmptyContainer() {\r\n this.idSelected = '';\r\n this.showEmptyComponent = true;\r\n }\r\n openGroupContactsPage(data) {\r\n this.idSelected = '';\r\n this.groupRoomId = data;\r\n this.closeAllDesktopComponents();\r\n if (window.innerWidth < 701) {\r\n\r\n }\r\n else {\r\n this.showGroupContacts = true;\r\n }\r\n }\r\n openMessagesPage(rid) {\r\n\r\n // this.chatService.refreshtoken();\r\n this.roomId = rid;\r\n\r\n if (window.innerWidth < 701) {\r\n this.openMessagesModal(rid);\r\n }\r\n else {\r\n this.idSelected = rid;\r\n this.closeAllDesktopComponents();\r\n this.showEmptyComponent = false;\r\n this.showMessages = true;\r\n }\r\n }\r\n openContactsPage() {\r\n \r\n this.idSelected = '';\r\n this.closeAllDesktopComponents();\r\n\r\n if (window.innerWidth < 701) {\r\n this.selectContact();\r\n }\r\n else {\r\n \r\n this.showContacts = true;\r\n }\r\n }\r\n openNewGroupPage() {\r\n this.idSelected = '';\r\n if (window.innerWidth < 701) {\r\n this.newGroup();\r\n }\r\n else {\r\n this.closeAllDesktopComponents();\r\n this.showNewGroup = true;\r\n }\r\n }\r\n\r\n openEditGroupPage(rid) {\r\n if (window.innerWidth < 701) {\r\n this.editGroup(rid);\r\n }\r\n else {\r\n this.closeAllDesktopComponents();\r\n this.showEditGroup = true;\r\n }\r\n }\r\n\r\n openGroupMessagesPage(rid) {\r\n\r\n this.roomId = rid;\r\n if (window.innerWidth < 701) {\r\n this.openGroupMessagesModal(rid);\r\n }\r\n else {\r\n this.idSelected = rid;\r\n this.closeAllDesktopComponents();\r\n this.showEmptyComponent = false;\r\n\r\n \r\n this.showGroupMessages = true;\r\n }\r\n }\r\n\r\n openNewEventPage(data?) {\r\n\r\n if(data) {\r\n this.taskParticipants = data.members.map((val) => {\r\n return {\r\n Name: val.name,\r\n EmailAddress: val.username + \"@\" + environment.domain,\r\n IsRequired: \"true\",\r\n }\r\n });\r\n this.groupRoomId = data.roomId;\r\n }\r\n \r\n this.closeAllDesktopComponents();\r\n if (window.innerWidth < 701) {\r\n \r\n }\r\n else {\r\n this.showNewEvent = true;\r\n }\r\n }\r\n\r\n async openAttendeesComponent(data) {\r\n this.adding = data.type\r\n this.closeAllDesktopComponents();\r\n this.showAttendees = true;\r\n }\r\n\r\n async clearContact() {\r\n this.contacts = [];\r\n }\r\n\r\n async setContact(data: EventPerson[]) {\r\n this.contacts = data;\r\n }\r\n\r\n async setIntervenient(data) {\r\n this.taskParticipants = removeDuplicate(data)\r\n }\r\n\r\n async setIntervenientCC(data) {\r\n this.taskParticipantsCc = removeDuplicate(data)\r\n }\r\n\r\n async closeAttendeesComponent() {\r\n this.closeAllDesktopComponents();\r\n this.showNewEvent = true;\r\n }\r\n\r\n async closeNewEventComponent() {\r\n this.closeAllDesktopComponents();\r\n this.showEmptyComponent = true;\r\n this.idSelected = \"\";\r\n }\r\n\r\n async closeNewEventComponentAndOpenChat({roomId}) {\r\n this.closeAllDesktopComponents();\r\n\r\n this.ChatSystemService._group.forEach((room)=>{\r\n if(room.id == roomId) {\r\n\r\n\r\n this.openGroupMessagesPage(roomId)\r\n }\r\n })\r\n\r\n this.ChatSystemService._dm.forEach((room)=>{\r\n if(room.id == roomId) {\r\n this.openMessagesPage(roomId)\r\n }\r\n })\r\n\r\n }\r\n\r\n onSegmentChange() {\r\n this.ChatSystemService.getAllRooms();\r\n }\r\n\r\n doRefresh(event) {\r\n setTimeout(() => {\r\n try {\r\n event?.target?.complete();\r\n} catch(error) {}\r\n }, 1000);\r\n }\r\n\r\n customRoom() {\r\n let params = new HttpParams();\r\n params = params.set(\"types\", \"c\");\r\n this.chatService.customsRooms(params).subscribe(res => {\r\n //\r\n });\r\n }\r\n\r\n // getDirectMessagesDB() {\r\n // if (this.platform.is('desktop') || this.platform.is('mobileweb')) {\r\n // this.storageservice.get(\"rooms\").then((rooms) =>{\r\n\r\n // this.userDirectMessages = rooms.sort((a, b) => {\r\n // var dateA = new Date(a._updatedAt).getTime();\r\n // var dateB = new Date(b._updatedAt).getTime();\r\n // return dateB - dateA;\r\n // });\r\n // //\r\n\r\n // //\r\n // }).catch((error) => {\r\n // console.error('storage getdirectmessagedb: ',error)\r\n // })\r\n\r\n // this.storageservice.get('chatusers').then((users) => {\r\n // this.dmUsers = users.filter(data => data.username != SessionStore.user.UserName);\r\n // }).catch((error) => {\r\n // console.error('storage getchatusers: ',error)\r\n // })\r\n // } \r\n // // else {\r\n // // this.sqlservice.getAllChatRoom().then((rooms: any) => {\r\n // // //\r\n // // let roomsArray = [];\r\n // // rooms.forEach(element => {\r\n // // let roomListDB = {\r\n // // _id: element.Id,\r\n // // uids: this.isJson(element.Uids),\r\n // // usernames: this.isJson(element.Usernames),\r\n // // lastMessage: this.isJson(element.LastMessage),\r\n // // _updatedAt: element.UpdatedAt\r\n // // }\r\n // // if(element.customFields == \"undefined\") {\r\n // // roomsArray.push(roomListDB)\r\n // // }\r\n // // });\r\n\r\n // // this.userDirectMessages = roomsArray.sort((a, b) => {\r\n // // var dateA = new Date(a._updatedAt).getTime();\r\n // // var dateB = new Date(b._updatedAt).getTime();\r\n // // return dateB - dateA;\r\n // // });\r\n // // //\r\n\r\n // // //\r\n // // })\r\n\r\n // // this.sqlservice.getAllChatUsers().then((userslist: any) => {\r\n // // //\r\n // // let chatusersArray = [];\r\n // // userslist.forEach(element => {\r\n \r\n // // let userListDB = {\r\n // // _id: element.Id,\r\n // // name: element.Name,\r\n // // username: element.Username\r\n // // }\r\n\r\n // // chatusersArray.push(userListDB);\r\n // // });\r\n\r\n // // this.dmUsers = chatusersArray.filter(data => data.username != SessionStore.user.UserName);\r\n\r\n // // })\r\n // // }\r\n // }\r\n\r\n // transformDataRoomList(data) {\r\n // if (this.platform.is('desktop') || this.platform.is('mobileweb')) {\r\n // let roomsArray = [];\r\n // data.forEach(element => {\r\n // let roomList = {\r\n // _id: element._id,\r\n // uids: element.uids,\r\n // usernames: element.usernames,\r\n // lastMessage: element.lastMessage,\r\n // _updatedAt: element._updatedAt\r\n // }\r\n\r\n // //\r\n // roomsArray.push(roomList)\r\n // });\r\n\r\n // this.storageservice.remove('rooms');\r\n // this.storageservice.store('rooms', roomsArray);\r\n\r\n // } else {\r\n // data.forEach(element => {\r\n // let roomList = {\r\n // id: element._id,\r\n // uids: element.uids,\r\n // usernames: element.usernames,\r\n // lastMessage: element.lastMessage,\r\n // updatedat: element._updatedAt\r\n // }\r\n\r\n // //\r\n // // this.sqlservice.addChatListRoom(roomList);\r\n // });\r\n // }\r\n // }\r\n\r\n async transformDataUserList(users) {\r\n if (this.platform.is('desktop') || this.platform.is('mobileweb')) {\r\n let usersArray = [];\r\n users.forEach(element => {\r\n //\r\n let chatusers = {\r\n _id: element._id,\r\n name: element.name,\r\n username: element.username\r\n }\r\n //\r\n usersArray.push(chatusers);\r\n });\r\n await this.storageservice.remove('chatusers');\r\n await this.storageservice.store('chatusers',usersArray);\r\n } else {\r\n users.forEach(element => {\r\n //\r\n let chatusers = {\r\n id: element._id,\r\n name: element.name,\r\n username: element.username\r\n }\r\n //\r\n // this.sqlservice.addChatListUsers(chatusers);\r\n });\r\n }\r\n }\r\n\r\n showDateDuration(start: any) {\r\n return this.timeService.showDateDuration(start);\r\n }\r\n\r\n countDownDate(date: any, roomId: string) {\r\n return this.timeService.countDownDate(date, roomId);\r\n }\r\n\r\n async getChatMembers() {\r\n\r\n this.chatService.getAllUsers().subscribe(res => {\r\n //\r\n this.transformDataUserList(res['users'])\r\n\r\n });\r\n }\r\n\r\n getGroupsDB() {\r\n if (this.platform.is('desktop') || this.platform.is('mobileweb')) {\r\n this.storageservice.get(\"grouprooms\").then((rooms) =>{\r\n\r\n let k = rooms.sort((a, b) => {\r\n var dateA = new Date(a._updatedAt).getTime();\r\n var dateB = new Date(b._updatedAt).getTime();\r\n return dateB - dateA;\r\n });\r\n\r\n \r\n\r\n\r\n this.allGroups = rooms.sort((a, b) => {\r\n var dateA = new Date(a._updatedAt).getTime();\r\n var dateB = new Date(b._updatedAt).getTime();\r\n return dateB - dateA;\r\n });\r\n\r\n\r\n //\r\n }).catch((error) => {\r\n console.error('storage getGrup Romm db: ',error)\r\n })\r\n\r\n this.storageservice.get('chatusers').then((users) => {\r\n this.dmUsers = users.filter(data => data.username != SessionStore.user.UserName);\r\n }).catch((error) => {\r\n console.error('storage getgrupDb: ',error)\r\n })\r\n } else {\r\n // this.sqlservice.getAllChatRoom().then((rooms: any) => {\r\n\r\n // let roomsArray = [];\r\n // rooms.forEach(element => {\r\n // let fddf = this.isJson(element.LastMessage);\r\n // let roomListDB = {\r\n // _id: element.Id,\r\n // customFields: this.isJson(element.customFields),\r\n // name: element.name,\r\n // lastMessage: this.isJson(element.LastMessage),\r\n // _updatedAt: element.UpdatedAt\r\n // }\r\n // if(element.customFields != \"undefined\") {\r\n // roomsArray.push(roomListDB)\r\n // }\r\n // });\r\n\r\n // this.allGroups = roomsArray.sort((a, b) => {\r\n // var dateA = new Date(a._updatedAt).getTime();\r\n // var dateB = new Date(b._updatedAt).getTime();\r\n // return dateB - dateA;\r\n // });\r\n // //\r\n // })\r\n }\r\n }\r\n\r\n\r\n roomDataFileType(roomData) {\r\n return roomData?.lastMessage?.file?.type || null\r\n }\r\n\r\n async transformGroups(data) {\r\n if (this.platform.is('desktop') || this.platform.is('mobileweb')) {\r\n let groupsArray = [];\r\n data.forEach(element => {\r\n let roomList = {\r\n _id: element._id,\r\n uids: element.uids,\r\n usernames: element.usernames,\r\n name: element.name,\r\n customFields: element.customFields,\r\n lastMessage: element.lastMessage,\r\n _updatedAt: element._updatedAt\r\n }\r\n\r\n groupsArray.push(roomList)\r\n });\r\n\r\n await this.storageservice.remove('grouprooms');\r\n await this.storageservice.store('grouprooms', groupsArray);\r\n\r\n } else {\r\n data.forEach(element => {\r\n let roomList = {\r\n id: element._id,\r\n uids: element.uids,\r\n usernames: element.usernames,\r\n customFields: element.customFields,\r\n name: element.name,\r\n lastMessage: element.lastMessage,\r\n updatedat: element._updatedAt\r\n }\r\n\r\n // this.sqlservice.addChatListRoom(roomList);\r\n });\r\n }\r\n\r\n }\r\n\r\n\r\n async emptyTextDescriptionOpen() {\r\n this.closeAllDesktopComponents()\r\n this.showEmptyComponent = true\r\n }\r\n\r\n async getGroups(event?) {\r\n this.result = this.chatService.getAllPrivateGroups().subscribe(async (res: any) => {\r\n //\r\n this.showLoader = false;\r\n if (res.groups != 200) {\r\n\r\n this.transformGroups(res.groups);\r\n this.getGroupsDB();\r\n\r\n this.privateGroups = res.groups;\r\n \r\n\r\n if (this.route.url != \"/home/chat\") {\r\n //\r\n }\r\n else {\r\n //Check if modal is opened\r\n if (this.segment == \"Grupos\" && this.showGroupMessages != true) {\r\n await new Promise(resolve => setTimeout(resolve, 1000)).catch ((error) => {\r\n console.error(error);\r\n });\r\n //await this.getGroups();\r\n }\r\n }\r\n }\r\n else {\r\n //await this.getGroups();\r\n }\r\n });\r\n }\r\n\r\n isJson(str) {\r\n try {\r\n JSON.parse(str);\r\n } catch (e) {\r\n return str;\r\n }\r\n return JSON.parse(str);\r\n }\r\n\r\n async selectContact() {\r\n const modal = await this.modalController.create({\r\n component: ContactsPage,\r\n cssClass: 'modal modal-desktop',\r\n });\r\n await modal.present();\r\n modal.onDidDismiss().then((Data) => {\r\n // console.log(Data,'daatatatat');\r\n \r\n // let data = Data.data\r\n // let roomId = data.roomId\r\n // this.openMessagesPage(roomId);\r\n\r\n });\r\n\r\n }\r\n\r\n async newGroup() {\r\n const modal = await this.modalController.create({\r\n component: NewGroupPage,\r\n cssClass: 'modal modal-desktop',\r\n });\r\n await modal.present();\r\n modal.onDidDismiss();\r\n }\r\n\r\n async editGroup(roomId) {\r\n const modal = await this.modalController.create({\r\n component: EditGroupPage,\r\n cssClass: 'modal modal-desktop',\r\n componentProps: {\r\n roomId: roomId,\r\n },\r\n });\r\n await modal.present();\r\n modal.onDidDismiss().then((res) => {\r\n \r\n this.modalController.dismiss(res.data);\r\n });\r\n }\r\n\r\n async openMessagesModal(roomId: any) {\r\n this.closeAllDesktopComponents();\r\n\r\n //\r\n\r\n const modal = await this.modalController.create({\r\n component: MessagesPage,\r\n cssClass: 'modal modal-desktop isMessagesChatOpened',\r\n componentProps: {\r\n roomId: roomId,\r\n },\r\n });\r\n await modal.present();\r\n modal.onDidDismiss();\r\n }\r\n\r\n\r\n backToChat({roomId}) {\r\n\r\n const room = this.ChatSystemService.getRoomById(roomId);\r\n\r\n if(room.isGroup) {\r\n this.segment = \"Grupos\"\r\n this.openGroupMessagesPage(room.id);\r\n } else {\r\n this.segment = \"Contactos\"\r\n this.openMessagesPage(room.id);\r\n }\r\n \r\n }\r\n\r\n async openChatDebuggingPageModal(roomId?: any) {\r\n\r\n const modal = await this.modalController.create({\r\n component: ChatDebuggingPage,\r\n cssClass: 'modal modal-desktop isMessagesChatOpened',\r\n componentProps: {\r\n // roomId: roomId,\r\n },\r\n });\r\n await modal.present();\r\n modal.onDidDismiss();\r\n }\r\n\r\n async openGroupMessagesModal(roomId: any) {\r\n\r\n const modal = await this.modalController.create({\r\n component: GroupMessagesPage,\r\n cssClass: 'modal modal-desktop isGroupChatOpened',\r\n componentProps: {\r\n roomId: roomId,\r\n },\r\n });\r\n await modal.present();\r\n modal.onDidDismiss().then(() =>{\r\n this.ChatSystemService.currentRoom.roomLeave()\r\n });\r\n }\r\n\r\n}\r\n\r\n"]},"metadata":{},"sourceType":"module"}