chat4app-client-angular 0.0.25 → 0.0.27
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/bundles/chat4app-client-angular.umd.js +12 -0
- package/bundles/chat4app-client-angular.umd.js.map +1 -1
- package/bundles/chat4app-client-angular.umd.min.js +1 -1
- package/bundles/chat4app-client-angular.umd.min.js.map +1 -1
- package/chat4app-client-angular.metadata.json +1 -1
- package/esm2015/lib/chat4app-client-angular.service.js +13 -1
- package/fesm2015/chat4app-client-angular.js +12 -0
- package/fesm2015/chat4app-client-angular.js.map +1 -1
- package/lib/chat4app-client-angular.service.d.ts +2 -0
- package/lib/chat4app-client-angular.service.d.ts.map +1 -1
- package/package.json +6 -2
|
@@ -181,6 +181,18 @@
|
|
|
181
181
|
headers: new i1.HttpHeaders().set('Authorization', this.getBearerToken())
|
|
182
182
|
});
|
|
183
183
|
};
|
|
184
|
+
Chat4appClientAngularService.prototype.closeChat = function (chatId, chatExternalId) {
|
|
185
|
+
var url = this.chatUrl;
|
|
186
|
+
if (chatId && chatId.length > 0) {
|
|
187
|
+
url += "chat?chatId=" + chatId;
|
|
188
|
+
}
|
|
189
|
+
if (chatExternalId && chatExternalId.length > 0) {
|
|
190
|
+
url += "chat?externalId=" + chatExternalId;
|
|
191
|
+
}
|
|
192
|
+
return this.http.delete(url, {
|
|
193
|
+
headers: new i1.HttpHeaders().set('Authorization', this.getBearerToken())
|
|
194
|
+
});
|
|
195
|
+
};
|
|
184
196
|
Chat4appClientAngularService.prototype.readMessage = function (chatMessageId, toId) {
|
|
185
197
|
var url = this.chatUrl + "chatmessage/read/" + chatMessageId;
|
|
186
198
|
if (toId && toId.length > 0) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"chat4app-client-angular.umd.js","sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.service.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.component.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.module.ts","../../../projects/chat4app-client-angular/src/public-api.ts","../../../projects/chat4app-client-angular/src/chat4app-client-angular.ts"],"sourcesContent":["import { Injectable, OnInit } from '@angular/core';\nimport * as Stomp from 'stompjs';\nimport * as SockJS from 'sockjs-client';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport * as moment from 'moment';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Chat4appClientAngularService implements OnInit {\n\n chatServer = \"\";\n chatUrl = \"\";\n debug = false;\n \n sock: any;\n stompClient: any;\n\n timeoutReconnect = 500;\n\n constructor( private http: HttpClient) {\n \n }\n ngOnInit(): void {\n }\n\n config(chat4AppConfig: Chat4AppConfig) {\n this.chatServer = chat4AppConfig.endpoint;\n this.chatUrl = chat4AppConfig.endpoint + \"/api/v1/\" ;\n this.debug = chat4AppConfig.debug;\n }\n \n init(securityChatToken: string, callback: any, chatCallback?: IChatCallback, connectionClientId?: string) {\n\n if (!this.chatServer || this.chatServer.trim().length == 0){\n throw new Error(\"Endpoint is empty\");\n }\n if (!securityChatToken || securityChatToken.trim().length == 0){\n throw new Error(\"SecurityChatToken is empty\");\n }\n\n this.setTokenChat4app(securityChatToken);\n \n if (chatCallback && connectionClientId) {\n this.connectWebsocket(chatCallback, connectionClientId);\n }\n \n callback(securityChatToken);\n }\n \n getChatUrlDownload(messageFileId: string) {\n return this.chatUrl + \"chatmessage/getFile?messageFileId=\" + messageFileId + \"&token=\" + this.getBearerToken();\n }\n \n \n getMessageChat(chatId: string, fromId: string, toId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n getMessageChatByGrop(chatId: string, groupId: string, fromId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/byGroup/\" + chatId + \"/\" + groupId + \"/\" + fromId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n addMessageChat(chatMessage4App: ChatMessage4App): Observable<ChatMessage4App> {\n let url = this.chatUrl + \"chatmessage/\" + chatMessage4App.chatId;\n \n return this.http.post<ChatMessage4App>(url, chatMessage4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n props(chatFilterRequest4App: Array<ChatFilterRequest4App>): Observable<ChatUserResponse4App[]> {\n let url = this.chatUrl + \"chatmessage/props\";\n \n return this.http.post<ChatUserResponse4App[]>(url, chatFilterRequest4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n removeUsersChat(chatId: string, chatUsersId?: string[], chatUsersExternalId?: string[]): Observable<ChatUser4App[]> {\n let params = new Array();\n if (chatUsersId && chatUsersId.length > 0) {\n \n chatUsersId.forEach(cui => {\n params.push(\"chatUserId=\" + cui);\n });\n } else if (chatUsersExternalId && chatUsersExternalId.length > 0) {\n chatUsersExternalId.forEach(cuei => {\n params.push(\"chatUserExternalId=\" + cuei);\n })\n \n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + params.join(\"&\");\n \n return this.http.delete<ChatUser4App[]>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n removeUserChat(chatId: string, chatUserId?: string, chatUserExternalId?: string): Observable<ChatUser4App> {\n let param = \"\";\n if (chatUserId) {\n param = \"chatUserId=\" + chatUserId;\n } else {\n param = \"chatUserExternalId=\" + chatUserExternalId;\n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + param;\n \n return this.http.delete<ChatUser4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n updateUserChat(chatId: string, charUser4AppUpdate: ChatUser4App): Observable<ChatUser4App> {\n \n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.put<ChatUser4App>(url, charUser4AppUpdate,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createUserChat(chatId: string, chatUser4App: ChatUser4App): Observable<ChatUser4App> {\n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.post<ChatUser4App>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n createUsersChat(chatId: string, chatUser4App: ChatUser4App[]): Observable<ChatUser4App[]> {\n let url = this.chatUrl + \"chatuser/users/\" + chatId;\n \n return this.http.post<ChatUser4App[]>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.post<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n createUpdateChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.put<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getLastMessageGroup(chatExternalId: string, groupId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessageGroup?chatExternalId=\" + chatExternalId + \"&groupId=\" + groupId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n getLastMessage(chatExternalId: string, chatUserExternalId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessage?chatExternalId=\" + chatExternalId + \"&chatUserExternalId=\" + chatUserExternalId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n countNotReadMessages(chatUserExternalId: string, chatExternalId?: string, groupId?: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/countNotReadMessages?chatUserExternalId=\" + chatUserExternalId;\n \n if (chatExternalId && chatExternalId.length > 0) {\n url += \"&chatExternalId=\" + chatExternalId;\n }\n \n if (groupId && groupId.length > 0) {\n url += \"&groupId=\" + groupId;\n }\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getChatByExternalId(externalId: string): Observable<Chat4App> {\n \n let url = this.chatUrl + \"chat?externalId=\" + externalId;\n \n return this.http.get<Chat4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n listChatByUser(externalUserId: string, userId: string, chatStatus: ChatStatus4App ): Observable<Array< Chat4App>> {\n \n let url = this.chatUrl + \"chat/listChatByUser/?externalUserId=\" + externalUserId \n + \"&userId=\" + userId\n + \"&chatStatus=\" + chatStatus;\n \n return this.http.get<Array<Chat4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n readMessage(chatMessageId: string, toId?: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/read/\" + chatMessageId;\n \n if (toId && toId.length > 0) {\n url += \"/\" + toId;\n }\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n online(chatId: string): Observable<number> {\n \n let url = this.chatUrl + \"chatmessage/online/\" + chatId ;\n \n return this.http.get<number>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n sendFile(chatId: string, fromId: string, toId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFile/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n sendFileGroup(chatId: string, fromId: string, groupId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFileGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n\n translateMessage(chatMessageId: string, languageTarget: string): Observable<Chat4AppTranslate> {\n \n let url = this.chatUrl + \"chatmessage/translate/\" + chatMessageId + \"/\" + languageTarget;\n \n return this.http.get<Chat4AppTranslate>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n startTyping(chatId: string,fromId: string, toId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/startTyping/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n startTypingGroup(chatId: string,fromId: string, groupId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/startTypingGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n stopTyping(chatId: string,fromId: string, toId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/stopTyping/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n stopTypingGroup(chatId: string,fromId: string, groupId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/stopTypingGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n \n /* Token */\n getBearerToken(): string {\n \n let ret = \"Bearer \" + window.sessionStorage.getItem(\"chat4AppSessionToken\");\n \n return ret;\n }\n \n \n setTokenChat4app(chat4AppSessionToken: string) {\n \n \n window.sessionStorage.setItem(\"chat4AppSessionToken\", chat4AppSessionToken);\n }\n \n \n /* Connection */\n \n onMessageFirebaseReceived(data: any, chatCallback: IChatCallback) {\n \n \n //alert(\"onMessageReceived connectFirebase\");\n \n if (data.type == \"msg\") {\n \n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n chat4appMessage.notification.body = data.body;\n \n if (data.fileId && data.fileId.length > 0) {\n chat4appMessage.data.fileId = data.fileId;\n chat4appMessage.data.fileName = data.fileName;\n chat4appMessage.data.fileSize = data.fileSize;\n chat4appMessage.data.fileType = data.fileType;\n \n }\n \n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onMessage(chat4appMessage);\n \n } else if ((data.type == \"on\" || data.type == \"off\")) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onOffline(chat4appMessage);\n\n } else if (data.type == \"read\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onRead(chat4appMessage);\n } else if (data.type == \"startTyping\" || data.type == \"stopTyping\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onStartStopTyping(chat4appMessage);\n } else if (data.type == \"new_user\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onNewUser(chat4appMessage);\n } else if (data.type == \"remove_user\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onRemoveUser(chat4appMessage);\n } else if (data.type == \"chat_closed\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onChatClosed(chat4appMessage);\n }\n\n \n }\n \n connectWebsocket(chatCallback: IChatCallback, token: string) {\n this.disconnect();\n \n let securityToken = this.getBearerToken();\n \n this.sock = new SockJS(this.chatServer + '/stomp/gkz-stomp-endpoint?token=' + securityToken);\n this.stompClient = Stomp.over(this.sock);\n const that = this;\n\n this.stompClient.debug = function (msg: any) {\n if (this.debug) {\n console.log(msg);\n }\n \n }\n\n let tokenAuth = \"\";\n\n if (securityToken && securityToken.startsWith(\"Bearer \")){\n tokenAuth = securityToken;\n } else {\n tokenAuth = \"Bearer \" + securityToken;\n }\n \n this.stompClient.connect({\"X-Authorization\": tokenAuth}, (frame: any) => {\n //console.log(frame);\n that.timeoutReconnect = 500;\n \n this.stompClient.subscribe('/queue/' + token, (msg: any) => {\n //console.log('mensagem', msg);\n \n if (msg.command == \"MESSAGE\") {\n \n //console.log(msg)\n\n if (!chatCallback.isTokenFirebaseActive()) {\n \n let msgObj = JSON.parse(msg.body);\n \n let datTmp = new Map<string, string>();\n \n for (let key in msgObj.data) {\n datTmp.set(key, msgObj.data[key]);\n }\n \n msgObj.data.all = datTmp;\n \n if (msgObj.data.type == \"msg\") {\n chatCallback.onMessage(msgObj);\n } else if ((msgObj.data.type == \"on\" || msgObj.data.type == \"off\")) {\n chatCallback.onOffline(msgObj);\n } else if (msgObj.data.type == \"read\" ) {\n chatCallback.onRead(msgObj);\n } else if (msgObj.data.type == \"startTyping\" || msgObj.data.type == \"stopTyping\") {\n chatCallback.onStartStopTyping(msgObj);\n } else if (msgObj.data.type == \"new_user\") {\n chatCallback.onNewUser(msgObj);\n } else if (msgObj.data.type == \"remove_user\") {\n chatCallback.onRemoveUser(msgObj);\n } else if (msgObj.data.type == \"chat_closed\") {\n chatCallback.onChatClosed(msgObj);\n }\n }\n\n \n //callback(msg.body);\n // ichatcallback.forEach((iChat)=>{\n // iChat.onMessage(JSON.parse(msg.body) );\n // });\n }\n \n });\n },\n (message: any) => {\n // check message for disconnect\n //console.log(\"Disconnect\");\n \n setTimeout(() => {\n that.timeoutReconnect*=100;\n this.connectWebsocket(chatCallback, token);\n }, that.timeoutReconnect);\n \n });\n \n }\n \n disconnect() {\n// console.log(\"disconnect\")\n try {\n if (this.stompClient) {\n this.stompClient.disconnect();\n }\n \n } catch (e) {\n console.log(e);\n }\n }\n\n convertChat4AppMessageReceiveToChatMessage4App(msg: Chat4AppMessageReceive): ChatMessage4App{\n let message = new ChatMessage4App();\n message.body = msg?.notification?.body;\n message.chatId = msg.data.chatId;\n message.fromId = msg.data.fromId;\n message.toId = msg.data.toId;\n message.groupId = msg.data.groupId;\n message.dateHourIncluded = moment.utc(msg.data.dateHour, \"DD-MM-YYYY hh:mm:ss\").toDate();\n message.id = msg.data.chatMessageId;\n\n if (msg.data.fileId && msg.data.fileId.length > 0) {\n let messageFile = new ChatMessageFile4App();\n \n messageFile.id = msg.data.fileId;\n messageFile.name = msg.data.fileName;\n messageFile.size = msg.data.fileSize;\n messageFile.type = msg.data.fileType;\n\n message.chatMessageFile = messageFile;\n }\n\n if (msg.data.vFileId && msg.data.vFileId.length > 0) {\n let messageFile = new ChatMessageFile4App();\n \n messageFile.id = msg.data.vFileId;\n messageFile.name = msg.data.vFileName;\n messageFile.size = msg.data.vFileSize;\n messageFile.type = msg.data.vFileType;\n\n message.chatVoiceFile = messageFile;\n }\n\n\n return message;\n\n }\n \n }\n \n \n export class Chat4App {\n id: string;\n configId: string;\n externalId: string;\n title: string;\n status: ChatStatus4App;\n users: Array<ChatUser4App>;\n\n meta: Array<ChatMessageMeta4App>;\n \n }\n export class ChatUser4App {\n id: string;\n name: string;\n clientToken: string;\n picturePath: string;\n email: string;\n phoneNumber: string;\n externalId: string;\n meta: Array<ChatMessageMeta4App>;\n status: ChatUserStatus4App;\n }\n export class ChatMessage4App {\n id: string;\n fromId: string;\n toId: string;\n chatId: string;\n title: string;\n body: string;\n meta: Array<ChatMessageMeta4App>;\n groupId: string;\n read: Boolean;\n dateHourIncluded: Date;\n gToIdRead: string[];\n chatMessageFile: ChatMessageFile4App;\n chatVoiceFile: ChatMessageFile4App;\n }\n export class ChatMessageFile4App {\n id: string;\n name: string;\n type: string;\n size: number;\n fullPath: string;\n }\n export class ChatMessageMeta4App {\n name: string;\n value: string;\n }\n export class Chat4AppMessageReceive {\n data: Chat4AppMessageReceiveData = new Chat4AppMessageReceiveData();\n notification: Chat4AppMessageReceiveNotification = new Chat4AppMessageReceiveNotification();\n token: string;\n }\n export class Chat4AppMessageReceiveData {\n toId: string;\n chatId: string;\n dateHour: string;\n chatMessageId: string;\n externalId: string;\n type: string;\n fromId: string;\n groupId: string;\n fileId: string;\n fileName: string;\n fileSize: number;\n fileType: string;\n vFileId: string;\n vFileName: string;\n vFileSize: number;\n vFileType: string;\n\n all: Map<string, string>;\n }\n export class Chat4AppMessageReceiveNotification {\n body: string;\n }\n \n export class ChatUserResponse4App {\n totalMessages: number;\n chat: Chat4App;\n chatMessage: ChatMessage4App;\n chats: ChatUserResponse4App[];\n }\n export class ChatFilterRequest4App {\n type: ChatFilterType;\n chatExternalId: string;\n chatUserExternalId: string;\n groupId: string;\n }\n export class Chat4AppConfig {\n constructor(public endpoint: string, public debug?: boolean) {\n \n }\n }\n\n export class Chat4AppTranslate {\n text: string;\n translatedText: string;\n originalSourceLanguageCode: string;\n sourceLanguageCode: string;\n targetLanguageCode: string;\n messageId: string;\n }\n\n\n \n export enum ChatStatus4App {\n CREATED = \"CREATED\",\n CLOSED = \"CLOSED\"\n \n }\n export enum ChatUserStatus4App {\n REMOVED = \"REMOVED\"\n \n }\n export enum ChatFilterType {\n COUNT_NOT_READ = 1,\n LAST_MESSAGE = 2\n }\n \n export interface IChatCallback {\n isTokenFirebaseActive(): Boolean;\n onMessage(msg: Chat4AppMessageReceive): void;\n onOffline(msg: Chat4AppMessageReceive): void;\n onRead(msg: Chat4AppMessageReceive): void;\n onStartStopTyping(msg: Chat4AppMessageReceive): void;\n onNewUser(msg: Chat4AppMessageReceive): void;\n onRemoveUser(msg: Chat4AppMessageReceive): void;\n onChatClosed(msg: Chat4AppMessageReceive): void;\n }\n ","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-chat4app-client-angular',\n template: `\n <p>\n chat4app-client-angular works!\n </p>\n `,\n styles: [\n ]\n})\nexport class Chat4appClientAngularComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Chat4appClientAngularComponent } from './chat4app-client-angular.component';\n\n\n\n@NgModule({\n declarations: [Chat4appClientAngularComponent],\n imports: [\n ],\n exports: [Chat4appClientAngularComponent]\n})\nexport class Chat4appClientAngularModule { }\n","/*\n * Public API Surface of chat4app-client-angular\n */\n\nexport * from './lib/chat4app-client-angular.service';\nexport * from './lib/chat4app-client-angular.component';\nexport * from './lib/chat4app-client-angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["HttpHeaders","SockJS","Stomp","moment","Injectable","HttpClient","ChatStatus4App","ChatUserStatus4App","ChatFilterType","Component","NgModule"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"chat4app-client-angular.umd.js","sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.service.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.component.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.module.ts","../../../projects/chat4app-client-angular/src/public-api.ts","../../../projects/chat4app-client-angular/src/chat4app-client-angular.ts"],"sourcesContent":["import { Injectable, OnInit } from '@angular/core';\nimport * as Stomp from 'stompjs';\nimport * as SockJS from 'sockjs-client';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport * as moment from 'moment';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Chat4appClientAngularService implements OnInit {\n\n chatServer = \"\";\n chatUrl = \"\";\n debug = false;\n \n sock: any;\n stompClient: any;\n\n timeoutReconnect = 500;\n\n constructor( private http: HttpClient) {\n \n }\n ngOnInit(): void {\n }\n\n config(chat4AppConfig: Chat4AppConfig) {\n this.chatServer = chat4AppConfig.endpoint;\n this.chatUrl = chat4AppConfig.endpoint + \"/api/v1/\" ;\n this.debug = chat4AppConfig.debug;\n }\n \n init(securityChatToken: string, callback: any, chatCallback?: IChatCallback, connectionClientId?: string) {\n\n if (!this.chatServer || this.chatServer.trim().length == 0){\n throw new Error(\"Endpoint is empty\");\n }\n if (!securityChatToken || securityChatToken.trim().length == 0){\n throw new Error(\"SecurityChatToken is empty\");\n }\n\n this.setTokenChat4app(securityChatToken);\n \n if (chatCallback && connectionClientId) {\n this.connectWebsocket(chatCallback, connectionClientId);\n }\n \n callback(securityChatToken);\n }\n \n getChatUrlDownload(messageFileId: string) {\n return this.chatUrl + \"chatmessage/getFile?messageFileId=\" + messageFileId + \"&token=\" + this.getBearerToken();\n }\n \n \n getMessageChat(chatId: string, fromId: string, toId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n getMessageChatByGrop(chatId: string, groupId: string, fromId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/byGroup/\" + chatId + \"/\" + groupId + \"/\" + fromId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n addMessageChat(chatMessage4App: ChatMessage4App): Observable<ChatMessage4App> {\n let url = this.chatUrl + \"chatmessage/\" + chatMessage4App.chatId;\n \n return this.http.post<ChatMessage4App>(url, chatMessage4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n props(chatFilterRequest4App: Array<ChatFilterRequest4App>): Observable<ChatUserResponse4App[]> {\n let url = this.chatUrl + \"chatmessage/props\";\n \n return this.http.post<ChatUserResponse4App[]>(url, chatFilterRequest4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n removeUsersChat(chatId: string, chatUsersId?: string[], chatUsersExternalId?: string[]): Observable<ChatUser4App[]> {\n let params = new Array();\n if (chatUsersId && chatUsersId.length > 0) {\n \n chatUsersId.forEach(cui => {\n params.push(\"chatUserId=\" + cui);\n });\n } else if (chatUsersExternalId && chatUsersExternalId.length > 0) {\n chatUsersExternalId.forEach(cuei => {\n params.push(\"chatUserExternalId=\" + cuei);\n })\n \n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + params.join(\"&\");\n \n return this.http.delete<ChatUser4App[]>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n removeUserChat(chatId: string, chatUserId?: string, chatUserExternalId?: string): Observable<ChatUser4App> {\n let param = \"\";\n if (chatUserId) {\n param = \"chatUserId=\" + chatUserId;\n } else {\n param = \"chatUserExternalId=\" + chatUserExternalId;\n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + param;\n \n return this.http.delete<ChatUser4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n updateUserChat(chatId: string, charUser4AppUpdate: ChatUser4App): Observable<ChatUser4App> {\n \n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.put<ChatUser4App>(url, charUser4AppUpdate,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createUserChat(chatId: string, chatUser4App: ChatUser4App): Observable<ChatUser4App> {\n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.post<ChatUser4App>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n createUsersChat(chatId: string, chatUser4App: ChatUser4App[]): Observable<ChatUser4App[]> {\n let url = this.chatUrl + \"chatuser/users/\" + chatId;\n \n return this.http.post<ChatUser4App[]>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.post<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n createUpdateChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.put<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getLastMessageGroup(chatExternalId: string, groupId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessageGroup?chatExternalId=\" + chatExternalId + \"&groupId=\" + groupId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n getLastMessage(chatExternalId: string, chatUserExternalId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessage?chatExternalId=\" + chatExternalId + \"&chatUserExternalId=\" + chatUserExternalId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n countNotReadMessages(chatUserExternalId: string, chatExternalId?: string, groupId?: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/countNotReadMessages?chatUserExternalId=\" + chatUserExternalId;\n \n if (chatExternalId && chatExternalId.length > 0) {\n url += \"&chatExternalId=\" + chatExternalId;\n }\n \n if (groupId && groupId.length > 0) {\n url += \"&groupId=\" + groupId;\n }\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getChatByExternalId(externalId: string): Observable<Chat4App> {\n \n let url = this.chatUrl + \"chat?externalId=\" + externalId;\n \n return this.http.get<Chat4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n listChatByUser(externalUserId: string, userId: string, chatStatus: ChatStatus4App ): Observable<Array< Chat4App>> {\n \n let url = this.chatUrl + \"chat/listChatByUser/?externalUserId=\" + externalUserId \n + \"&userId=\" + userId\n + \"&chatStatus=\" + chatStatus;\n \n return this.http.get<Array<Chat4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n closeChat(chatId: string, chatExternalId: string): Observable<void> {\n \n let url = this.chatUrl ;\n\n if (chatId && chatId.length > 0){\n url+= \"chat?chatId=\" + chatId; \n }\n \n if (chatExternalId && chatExternalId.length > 0){\n url+= \"chat?externalId=\" + chatExternalId; \n }\n \n return this.http.delete<void>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n readMessage(chatMessageId: string, toId?: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/read/\" + chatMessageId;\n \n if (toId && toId.length > 0) {\n url += \"/\" + toId;\n }\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n online(chatId: string): Observable<number> {\n \n let url = this.chatUrl + \"chatmessage/online/\" + chatId ;\n \n return this.http.get<number>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n sendFile(chatId: string, fromId: string, toId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFile/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n sendFileGroup(chatId: string, fromId: string, groupId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFileGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n\n translateMessage(chatMessageId: string, languageTarget: string): Observable<Chat4AppTranslate> {\n \n let url = this.chatUrl + \"chatmessage/translate/\" + chatMessageId + \"/\" + languageTarget;\n \n return this.http.get<Chat4AppTranslate>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n startTyping(chatId: string,fromId: string, toId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/startTyping/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n startTypingGroup(chatId: string,fromId: string, groupId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/startTypingGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n stopTyping(chatId: string,fromId: string, toId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/stopTyping/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n stopTypingGroup(chatId: string,fromId: string, groupId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/stopTypingGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n \n /* Token */\n getBearerToken(): string {\n \n let ret = \"Bearer \" + window.sessionStorage.getItem(\"chat4AppSessionToken\");\n \n return ret;\n }\n \n \n setTokenChat4app(chat4AppSessionToken: string) {\n \n \n window.sessionStorage.setItem(\"chat4AppSessionToken\", chat4AppSessionToken);\n }\n \n \n /* Connection */\n \n onMessageFirebaseReceived(data: any, chatCallback: IChatCallback) {\n \n \n //alert(\"onMessageReceived connectFirebase\");\n \n if (data.type == \"msg\") {\n \n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n chat4appMessage.notification.body = data.body;\n \n if (data.fileId && data.fileId.length > 0) {\n chat4appMessage.data.fileId = data.fileId;\n chat4appMessage.data.fileName = data.fileName;\n chat4appMessage.data.fileSize = data.fileSize;\n chat4appMessage.data.fileType = data.fileType;\n \n }\n \n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onMessage(chat4appMessage);\n \n } else if ((data.type == \"on\" || data.type == \"off\")) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onOffline(chat4appMessage);\n\n } else if (data.type == \"read\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onRead(chat4appMessage);\n } else if (data.type == \"startTyping\" || data.type == \"stopTyping\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onStartStopTyping(chat4appMessage);\n } else if (data.type == \"new_user\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onNewUser(chat4appMessage);\n } else if (data.type == \"remove_user\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onRemoveUser(chat4appMessage);\n } else if (data.type == \"chat_closed\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onChatClosed(chat4appMessage);\n }\n\n \n }\n \n connectWebsocket(chatCallback: IChatCallback, token: string) {\n this.disconnect();\n \n let securityToken = this.getBearerToken();\n \n this.sock = new SockJS(this.chatServer + '/stomp/gkz-stomp-endpoint?token=' + securityToken);\n this.stompClient = Stomp.over(this.sock);\n const that = this;\n\n this.stompClient.debug = function (msg: any) {\n if (this.debug) {\n console.log(msg);\n }\n \n }\n\n let tokenAuth = \"\";\n\n if (securityToken && securityToken.startsWith(\"Bearer \")){\n tokenAuth = securityToken;\n } else {\n tokenAuth = \"Bearer \" + securityToken;\n }\n \n this.stompClient.connect({\"X-Authorization\": tokenAuth}, (frame: any) => {\n //console.log(frame);\n that.timeoutReconnect = 500;\n \n this.stompClient.subscribe('/queue/' + token, (msg: any) => {\n //console.log('mensagem', msg);\n \n if (msg.command == \"MESSAGE\") {\n \n //console.log(msg)\n\n if (!chatCallback.isTokenFirebaseActive()) {\n \n let msgObj = JSON.parse(msg.body);\n \n let datTmp = new Map<string, string>();\n \n for (let key in msgObj.data) {\n datTmp.set(key, msgObj.data[key]);\n }\n \n msgObj.data.all = datTmp;\n \n if (msgObj.data.type == \"msg\") {\n chatCallback.onMessage(msgObj);\n } else if ((msgObj.data.type == \"on\" || msgObj.data.type == \"off\")) {\n chatCallback.onOffline(msgObj);\n } else if (msgObj.data.type == \"read\" ) {\n chatCallback.onRead(msgObj);\n } else if (msgObj.data.type == \"startTyping\" || msgObj.data.type == \"stopTyping\") {\n chatCallback.onStartStopTyping(msgObj);\n } else if (msgObj.data.type == \"new_user\") {\n chatCallback.onNewUser(msgObj);\n } else if (msgObj.data.type == \"remove_user\") {\n chatCallback.onRemoveUser(msgObj);\n } else if (msgObj.data.type == \"chat_closed\") {\n chatCallback.onChatClosed(msgObj);\n }\n }\n\n \n //callback(msg.body);\n // ichatcallback.forEach((iChat)=>{\n // iChat.onMessage(JSON.parse(msg.body) );\n // });\n }\n \n });\n },\n (message: any) => {\n // check message for disconnect\n //console.log(\"Disconnect\");\n \n setTimeout(() => {\n that.timeoutReconnect*=100;\n this.connectWebsocket(chatCallback, token);\n }, that.timeoutReconnect);\n \n });\n \n }\n \n disconnect() {\n// console.log(\"disconnect\")\n try {\n if (this.stompClient) {\n this.stompClient.disconnect();\n }\n \n } catch (e) {\n console.log(e);\n }\n }\n\n convertChat4AppMessageReceiveToChatMessage4App(msg: Chat4AppMessageReceive): ChatMessage4App{\n let message = new ChatMessage4App();\n message.body = msg?.notification?.body;\n message.chatId = msg.data.chatId;\n message.fromId = msg.data.fromId;\n message.toId = msg.data.toId;\n message.groupId = msg.data.groupId;\n message.dateHourIncluded = moment.utc(msg.data.dateHour, \"DD-MM-YYYY hh:mm:ss\").toDate();\n message.id = msg.data.chatMessageId;\n\n if (msg.data.fileId && msg.data.fileId.length > 0) {\n let messageFile = new ChatMessageFile4App();\n \n messageFile.id = msg.data.fileId;\n messageFile.name = msg.data.fileName;\n messageFile.size = msg.data.fileSize;\n messageFile.type = msg.data.fileType;\n\n message.chatMessageFile = messageFile;\n }\n\n if (msg.data.vFileId && msg.data.vFileId.length > 0) {\n let messageFile = new ChatMessageFile4App();\n \n messageFile.id = msg.data.vFileId;\n messageFile.name = msg.data.vFileName;\n messageFile.size = msg.data.vFileSize;\n messageFile.type = msg.data.vFileType;\n\n message.chatVoiceFile = messageFile;\n }\n\n\n return message;\n\n }\n \n }\n \n \n export class Chat4App {\n id: string;\n configId: string;\n externalId: string;\n title: string;\n status: ChatStatus4App;\n users: Array<ChatUser4App>;\n\n meta: Array<ChatMessageMeta4App>;\n \n }\n export class ChatUser4App {\n id: string;\n name: string;\n clientToken: string;\n picturePath: string;\n email: string;\n phoneNumber: string;\n externalId: string;\n meta: Array<ChatMessageMeta4App>;\n status: ChatUserStatus4App;\n }\n export class ChatMessage4App {\n id: string;\n fromId: string;\n toId: string;\n chatId: string;\n title: string;\n body: string;\n meta: Array<ChatMessageMeta4App>;\n groupId: string;\n read: Boolean;\n replyFrom: string;\n dateHourIncluded: Date;\n gToIdRead: string[];\n chatMessageFile: ChatMessageFile4App;\n chatVoiceFile: ChatMessageFile4App;\n }\n export class ChatMessageFile4App {\n id: string;\n name: string;\n type: string;\n size: number;\n fullPath: string;\n }\n export class ChatMessageMeta4App {\n name: string;\n value: string;\n }\n export class Chat4AppMessageReceive {\n data: Chat4AppMessageReceiveData = new Chat4AppMessageReceiveData();\n notification: Chat4AppMessageReceiveNotification = new Chat4AppMessageReceiveNotification();\n token: string;\n }\n export class Chat4AppMessageReceiveData {\n toId: string;\n chatId: string;\n dateHour: string;\n chatMessageId: string;\n externalId: string;\n type: string;\n fromId: string;\n groupId: string;\n fileId: string;\n fileName: string;\n fileSize: number;\n fileType: string;\n vFileId: string;\n vFileName: string;\n vFileSize: number;\n vFileType: string;\n\n all: Map<string, string>;\n }\n export class Chat4AppMessageReceiveNotification {\n body: string;\n }\n \n export class ChatUserResponse4App {\n totalMessages: number;\n chat: Chat4App;\n chatMessage: ChatMessage4App;\n chats: ChatUserResponse4App[];\n }\n export class ChatFilterRequest4App {\n type: ChatFilterType;\n chatExternalId: string;\n chatUserExternalId: string;\n groupId: string;\n }\n export class Chat4AppConfig {\n constructor(public endpoint: string, public debug?: boolean) {\n \n }\n }\n\n export class Chat4AppTranslate {\n text: string;\n translatedText: string;\n originalSourceLanguageCode: string;\n sourceLanguageCode: string;\n targetLanguageCode: string;\n messageId: string;\n }\n\n\n \n export enum ChatStatus4App {\n CREATED = \"CREATED\",\n CLOSED = \"CLOSED\"\n \n }\n export enum ChatUserStatus4App {\n REMOVED = \"REMOVED\"\n \n }\n export enum ChatFilterType {\n COUNT_NOT_READ = 1,\n LAST_MESSAGE = 2\n }\n \n export interface IChatCallback {\n isTokenFirebaseActive(): Boolean;\n onMessage(msg: Chat4AppMessageReceive): void;\n onOffline(msg: Chat4AppMessageReceive): void;\n onRead(msg: Chat4AppMessageReceive): void;\n onStartStopTyping(msg: Chat4AppMessageReceive): void;\n onNewUser(msg: Chat4AppMessageReceive): void;\n onRemoveUser(msg: Chat4AppMessageReceive): void;\n onChatClosed(msg: Chat4AppMessageReceive): void;\n }\n ","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-chat4app-client-angular',\n template: `\n <p>\n chat4app-client-angular works!\n </p>\n `,\n styles: [\n ]\n})\nexport class Chat4appClientAngularComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Chat4appClientAngularComponent } from './chat4app-client-angular.component';\n\n\n\n@NgModule({\n declarations: [Chat4appClientAngularComponent],\n imports: [\n ],\n exports: [Chat4appClientAngularComponent]\n})\nexport class Chat4appClientAngularModule { }\n","/*\n * Public API Surface of chat4app-client-angular\n */\n\nexport * from './lib/chat4app-client-angular.service';\nexport * from './lib/chat4app-client-angular.component';\nexport * from './lib/chat4app-client-angular.module';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["HttpHeaders","SockJS","Stomp","moment","Injectable","HttpClient","ChatStatus4App","ChatUserStatus4App","ChatFilterType","Component","NgModule"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("stompjs"),require("sockjs-client"),require("@angular/common/http"),require("moment")):"function"==typeof define&&define.amd?define("chat4app-client-angular",["exports","@angular/core","stompjs","sockjs-client","@angular/common/http","moment"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["chat4app-client-angular"]={},t.ng.core,t.Stomp,t.SockJS,t.ng.common.http,t.moment)}(this,(function(t,e,a,r,o,n){"use strict";function s(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(a){if("default"!==a){var r=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(e,a,r.get?r:{enumerable:!0,get:function(){return t[a]}})}})),e.default=t,Object.freeze(e)}var i=s(e),d=s(a),h=s(r),p=s(o),c=s(n),u=function(){function t(t){this.http=t,this.chatServer="",this.chatUrl="",this.debug=!1,this.timeoutReconnect=500}return t.prototype.ngOnInit=function(){},t.prototype.config=function(t){this.chatServer=t.endpoint,this.chatUrl=t.endpoint+"/api/v1/",this.debug=t.debug},t.prototype.init=function(t,e,a,r){if(!this.chatServer||0==this.chatServer.trim().length)throw new Error("Endpoint is empty");if(!t||0==t.trim().length)throw new Error("SecurityChatToken is empty");this.setTokenChat4app(t),a&&r&&this.connectWebsocket(a,r),e(t)},t.prototype.getChatUrlDownload=function(t){return this.chatUrl+"chatmessage/getFile?messageFileId="+t+"&token="+this.getBearerToken()},t.prototype.getMessageChat=function(t,e,a){var r=this.chatUrl+"chatmessage/"+t+"/"+e+"/"+a;return this.http.get(r,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getMessageChatByGrop=function(t,e,a){var r=this.chatUrl+"chatmessage/byGroup/"+t+"/"+e+"/"+a;return this.http.get(r,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.addMessageChat=function(t){var e=this.chatUrl+"chatmessage/"+t.chatId;return this.http.post(e,t,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.props=function(t){var e=this.chatUrl+"chatmessage/props";return this.http.post(e,t,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.removeUsersChat=function(t,e,a){var r=new Array;e&&e.length>0?e.forEach((function(t){r.push("chatUserId="+t)})):a&&a.length>0&&a.forEach((function(t){r.push("chatUserExternalId="+t)}));var n=this.chatUrl+"chatuser/"+t+"?"+r.join("&");return this.http.delete(n,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.removeUserChat=function(t,e,a){var r="";r=e?"chatUserId="+e:"chatUserExternalId="+a;var n=this.chatUrl+"chatuser/"+t+"?"+r;return this.http.delete(n,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.updateUserChat=function(t,e){var a=this.chatUrl+"chatuser/"+t;return this.http.put(a,e,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createUserChat=function(t,e){var a=this.chatUrl+"chatuser/"+t;return this.http.post(a,e,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createUsersChat=function(t,e){var a=this.chatUrl+"chatuser/users/"+t;return this.http.post(a,e,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createChat=function(t){var e=this.chatUrl+"chat";return this.http.post(e,t,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createUpdateChat=function(t){var e=this.chatUrl+"chat";return this.http.put(e,t,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getLastMessageGroup=function(t,e){var a=this.chatUrl+"chatmessage/lastMessageGroup?chatExternalId="+t+"&groupId="+e;return this.http.get(a,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getLastMessage=function(t,e){var a=this.chatUrl+"chatmessage/lastMessage?chatExternalId="+t+"&chatUserExternalId="+e;return this.http.get(a,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.countNotReadMessages=function(t,e,a){var r=this.chatUrl+"chatmessage/countNotReadMessages?chatUserExternalId="+t;return e&&e.length>0&&(r+="&chatExternalId="+e),a&&a.length>0&&(r+="&groupId="+a),this.http.get(r,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getChatByExternalId=function(t){var e=this.chatUrl+"chat?externalId="+t;return this.http.get(e,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.listChatByUser=function(t,e,a){var r=this.chatUrl+"chat/listChatByUser/?externalUserId="+t+"&userId="+e+"&chatStatus="+a;return this.http.get(r,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.readMessage=function(t,e){var a=this.chatUrl+"chatmessage/read/"+t;return e&&e.length>0&&(a+="/"+e),this.http.put(a,null,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.online=function(t){var e=this.chatUrl+"chatmessage/online/"+t;return this.http.get(e,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.sendFile=function(t,e,a,r){var n=this.chatUrl+"chatmessage/sendFile/"+t+"/"+e+"/"+a,s=new FormData;return s.append("file",r),this.http.post(n,s,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.sendFileGroup=function(t,e,a,r){var n=this.chatUrl+"chatmessage/sendFileGroup/"+t+"/"+e+"/"+a,s=new FormData;return s.append("file",r),this.http.post(n,s,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.translateMessage=function(t,e){var a=this.chatUrl+"chatmessage/translate/"+t+"/"+e;return this.http.get(a,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.startTyping=function(t,e,a){var r=this.chatUrl+"chatmessage/startTyping/"+t+"/"+e+"/"+a;return this.http.put(r,null,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.startTypingGroup=function(t,e,a){var r=this.chatUrl+"chatmessage/startTypingGroup/"+t+"/"+e+"/"+a;return this.http.put(r,null,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.stopTyping=function(t,e,a){var r=this.chatUrl+"chatmessage/stopTyping/"+t+"/"+e+"/"+a;return this.http.put(r,null,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.stopTypingGroup=function(t,e,a){var r=this.chatUrl+"chatmessage/stopTypingGroup/"+t+"/"+e+"/"+a;return this.http.put(r,null,{headers:(new o.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getBearerToken=function(){return"Bearer "+window.sessionStorage.getItem("chat4AppSessionToken")},t.prototype.setTokenChat4app=function(t){window.sessionStorage.setItem("chat4AppSessionToken",t)},t.prototype.onMessageFirebaseReceived=function(t,e){if("msg"==t.type){(o=new H).data.chatId=t.chatId,o.data.chatMessageId=t.chatMessageId,o.data.externalId=t.externalId,o.data.fromId=t.fromId,o.data.toId=t.toId,o.data.groupId=t.groupId,o.data.dateHour=t.dateHour,o.data.type=t.type,o.notification.body=t.body,t.fileId&&t.fileId.length>0&&(o.data.fileId=t.fileId,o.data.fileName=t.fileName,o.data.fileSize=t.fileSize,o.data.fileType=t.fileType);var a=new Map;for(var r in t)a.set(r,t[r]);o.data.all=a,e.onMessage(o)}else if("on"==t.type||"off"==t.type){(o=new H).data.chatId=t.chatId,o.data.chatMessageId=t.chatMessageId,o.data.externalId=t.externalId,o.data.fromId=t.fromId,o.data.toId=t.toId,o.data.groupId=t.groupId,o.data.dateHour=t.dateHour,o.data.type=t.type;a=new Map;for(var r in t)a.set(r,t[r]);o.data.all=a,e.onOffline(o)}else if("read"==t.type){(o=new H).data.chatId=t.chatId,o.data.chatMessageId=t.chatMessageId,o.data.externalId=t.externalId,o.data.fromId=t.fromId,o.data.toId=t.toId,o.data.groupId=t.groupId,o.data.dateHour=t.dateHour,o.data.type=t.type;a=new Map;for(var r in t)a.set(r,t[r]);o.data.all=a,e.onRead(o)}else if("startTyping"==t.type||"stopTyping"==t.type){(o=new H).data.chatId=t.chatId,o.data.chatMessageId=t.chatMessageId,o.data.externalId=t.externalId,o.data.fromId=t.fromId,o.data.toId=t.toId,o.data.groupId=t.groupId,o.data.dateHour=t.dateHour,o.data.type=t.type;a=new Map;for(var r in t)a.set(r,t[r]);o.data.all=a,e.onStartStopTyping(o)}else if("new_user"==t.type){(o=new H).data.chatId=t.chatId,o.data.chatMessageId=t.chatMessageId,o.data.externalId=t.externalId,o.data.fromId=t.fromId,o.data.toId=t.toId,o.data.groupId=t.groupId,o.data.dateHour=t.dateHour,o.data.type=t.type;a=new Map;for(var r in t)a.set(r,t[r]);o.data.all=a,e.onNewUser(o)}else if("remove_user"==t.type){(o=new H).data.chatId=t.chatId,o.data.chatMessageId=t.chatMessageId,o.data.externalId=t.externalId,o.data.fromId=t.fromId,o.data.toId=t.toId,o.data.groupId=t.groupId,o.data.dateHour=t.dateHour,o.data.type=t.type;a=new Map;for(var r in t)a.set(r,t[r]);o.data.all=a,e.onRemoveUser(o)}else if("chat_closed"==t.type){var o;(o=new H).data.chatId=t.chatId,o.data.chatMessageId=t.chatMessageId,o.data.externalId=t.externalId,o.data.fromId=t.fromId,o.data.toId=t.toId,o.data.groupId=t.groupId,o.data.dateHour=t.dateHour,o.data.type=t.type;a=new Map;for(var r in t)a.set(r,t[r]);o.data.all=a,e.onChatClosed(o)}},t.prototype.connectWebsocket=function(t,e){var a=this;this.disconnect();var r=this.getBearerToken();this.sock=new h(this.chatServer+"/stomp/gkz-stomp-endpoint?token="+r),this.stompClient=d.over(this.sock);var o=this;this.stompClient.debug=function(t){this.debug&&console.log(t)};var n="";n=r&&r.startsWith("Bearer ")?r:"Bearer "+r,this.stompClient.connect({"X-Authorization":n},(function(r){o.timeoutReconnect=500,a.stompClient.subscribe("/queue/"+e,(function(e){if("MESSAGE"==e.command&&!t.isTokenFirebaseActive()){var a=JSON.parse(e.body),r=new Map;for(var o in a.data)r.set(o,a.data[o]);a.data.all=r,"msg"==a.data.type?t.onMessage(a):"on"==a.data.type||"off"==a.data.type?t.onOffline(a):"read"==a.data.type?t.onRead(a):"startTyping"==a.data.type||"stopTyping"==a.data.type?t.onStartStopTyping(a):"new_user"==a.data.type?t.onNewUser(a):"remove_user"==a.data.type?t.onRemoveUser(a):"chat_closed"==a.data.type&&t.onChatClosed(a)}}))}),(function(r){setTimeout((function(){o.timeoutReconnect*=100,a.connectWebsocket(t,e)}),o.timeoutReconnect)}))},t.prototype.disconnect=function(){try{this.stompClient&&this.stompClient.disconnect()}catch(t){console.log(t)}},t.prototype.convertChat4AppMessageReceiveToChatMessage4App=function(t){var e,a,r=new y;(r.body=null===(e=null==t?void 0:t.notification)||void 0===e?void 0:e.body,r.chatId=t.data.chatId,r.fromId=t.data.fromId,r.toId=t.data.toId,r.groupId=t.data.groupId,r.dateHourIncluded=c.utc(t.data.dateHour,"DD-MM-YYYY hh:mm:ss").toDate(),r.id=t.data.chatMessageId,t.data.fileId&&t.data.fileId.length>0)&&((a=new m).id=t.data.fileId,a.name=t.data.fileName,a.size=t.data.fileSize,a.type=t.data.fileType,r.chatMessageFile=a);t.data.vFileId&&t.data.vFileId.length>0&&((a=new m).id=t.data.vFileId,a.name=t.data.vFileName,a.size=t.data.vFileSize,a.type=t.data.vFileType,r.chatVoiceFile=a);return r},t}();u.ɵprov=i.ɵɵdefineInjectable({factory:function(){return new u(i.ɵɵinject(p.HttpClient))},token:u,providedIn:"root"}),u.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],u.ctorParameters=function(){return[{type:o.HttpClient}]};var l,g,f=function(){},I=function(){},y=function(){},m=function(){},v=function(){},H=function(){this.data=new T,this.notification=new C},T=function(){},C=function(){},w=function(){},A=function(){},M=function(t,e){this.endpoint=t,this.debug=e},U=function(){};t.ChatStatus4App=void 0,(l=t.ChatStatus4App||(t.ChatStatus4App={})).CREATED="CREATED",l.CLOSED="CLOSED",t.ChatUserStatus4App=void 0,(t.ChatUserStatus4App||(t.ChatUserStatus4App={})).REMOVED="REMOVED",t.ChatFilterType=void 0,(g=t.ChatFilterType||(t.ChatFilterType={}))[g.COUNT_NOT_READ=1]="COUNT_NOT_READ",g[g.LAST_MESSAGE=2]="LAST_MESSAGE";var k=function(){function t(){}return t.prototype.ngOnInit=function(){},t}();k.decorators=[{type:e.Component,args:[{selector:"lib-chat4app-client-angular",template:"\n <p>\n chat4app-client-angular works!\n </p>\n "}]}],k.ctorParameters=function(){return[]};var S=function(){};S.decorators=[{type:e.NgModule,args:[{declarations:[k],imports:[],exports:[k]}]}],t.Chat4App=f,t.Chat4AppConfig=M,t.Chat4AppMessageReceive=H,t.Chat4AppMessageReceiveData=T,t.Chat4AppMessageReceiveNotification=C,t.Chat4AppTranslate=U,t.Chat4appClientAngularComponent=k,t.Chat4appClientAngularModule=S,t.Chat4appClientAngularService=u,t.ChatFilterRequest4App=A,t.ChatMessage4App=y,t.ChatMessageFile4App=m,t.ChatMessageMeta4App=v,t.ChatUser4App=I,t.ChatUserResponse4App=w,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
1
|
+
!function(t,e){"object"==typeof exports&&"undefined"!=typeof module?e(exports,require("@angular/core"),require("stompjs"),require("sockjs-client"),require("@angular/common/http"),require("moment")):"function"==typeof define&&define.amd?define("chat4app-client-angular",["exports","@angular/core","stompjs","sockjs-client","@angular/common/http","moment"],e):e((t="undefined"!=typeof globalThis?globalThis:t||self)["chat4app-client-angular"]={},t.ng.core,t.Stomp,t.SockJS,t.ng.common.http,t.moment)}(this,(function(t,e,a,r,n,o){"use strict";function s(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(a){if("default"!==a){var r=Object.getOwnPropertyDescriptor(t,a);Object.defineProperty(e,a,r.get?r:{enumerable:!0,get:function(){return t[a]}})}})),e.default=t,Object.freeze(e)}var i=s(e),h=s(a),d=s(r),p=s(n),c=s(o),u=function(){function t(t){this.http=t,this.chatServer="",this.chatUrl="",this.debug=!1,this.timeoutReconnect=500}return t.prototype.ngOnInit=function(){},t.prototype.config=function(t){this.chatServer=t.endpoint,this.chatUrl=t.endpoint+"/api/v1/",this.debug=t.debug},t.prototype.init=function(t,e,a,r){if(!this.chatServer||0==this.chatServer.trim().length)throw new Error("Endpoint is empty");if(!t||0==t.trim().length)throw new Error("SecurityChatToken is empty");this.setTokenChat4app(t),a&&r&&this.connectWebsocket(a,r),e(t)},t.prototype.getChatUrlDownload=function(t){return this.chatUrl+"chatmessage/getFile?messageFileId="+t+"&token="+this.getBearerToken()},t.prototype.getMessageChat=function(t,e,a){var r=this.chatUrl+"chatmessage/"+t+"/"+e+"/"+a;return this.http.get(r,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getMessageChatByGrop=function(t,e,a){var r=this.chatUrl+"chatmessage/byGroup/"+t+"/"+e+"/"+a;return this.http.get(r,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.addMessageChat=function(t){var e=this.chatUrl+"chatmessage/"+t.chatId;return this.http.post(e,t,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.props=function(t){var e=this.chatUrl+"chatmessage/props";return this.http.post(e,t,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.removeUsersChat=function(t,e,a){var r=new Array;e&&e.length>0?e.forEach((function(t){r.push("chatUserId="+t)})):a&&a.length>0&&a.forEach((function(t){r.push("chatUserExternalId="+t)}));var o=this.chatUrl+"chatuser/"+t+"?"+r.join("&");return this.http.delete(o,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.removeUserChat=function(t,e,a){var r="";r=e?"chatUserId="+e:"chatUserExternalId="+a;var o=this.chatUrl+"chatuser/"+t+"?"+r;return this.http.delete(o,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.updateUserChat=function(t,e){var a=this.chatUrl+"chatuser/"+t;return this.http.put(a,e,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createUserChat=function(t,e){var a=this.chatUrl+"chatuser/"+t;return this.http.post(a,e,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createUsersChat=function(t,e){var a=this.chatUrl+"chatuser/users/"+t;return this.http.post(a,e,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createChat=function(t){var e=this.chatUrl+"chat";return this.http.post(e,t,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.createUpdateChat=function(t){var e=this.chatUrl+"chat";return this.http.put(e,t,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getLastMessageGroup=function(t,e){var a=this.chatUrl+"chatmessage/lastMessageGroup?chatExternalId="+t+"&groupId="+e;return this.http.get(a,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getLastMessage=function(t,e){var a=this.chatUrl+"chatmessage/lastMessage?chatExternalId="+t+"&chatUserExternalId="+e;return this.http.get(a,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.countNotReadMessages=function(t,e,a){var r=this.chatUrl+"chatmessage/countNotReadMessages?chatUserExternalId="+t;return e&&e.length>0&&(r+="&chatExternalId="+e),a&&a.length>0&&(r+="&groupId="+a),this.http.get(r,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getChatByExternalId=function(t){var e=this.chatUrl+"chat?externalId="+t;return this.http.get(e,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.listChatByUser=function(t,e,a){var r=this.chatUrl+"chat/listChatByUser/?externalUserId="+t+"&userId="+e+"&chatStatus="+a;return this.http.get(r,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.closeChat=function(t,e){var a=this.chatUrl;return t&&t.length>0&&(a+="chat?chatId="+t),e&&e.length>0&&(a+="chat?externalId="+e),this.http.delete(a,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.readMessage=function(t,e){var a=this.chatUrl+"chatmessage/read/"+t;return e&&e.length>0&&(a+="/"+e),this.http.put(a,null,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.online=function(t){var e=this.chatUrl+"chatmessage/online/"+t;return this.http.get(e,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.sendFile=function(t,e,a,r){var o=this.chatUrl+"chatmessage/sendFile/"+t+"/"+e+"/"+a,s=new FormData;return s.append("file",r),this.http.post(o,s,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.sendFileGroup=function(t,e,a,r){var o=this.chatUrl+"chatmessage/sendFileGroup/"+t+"/"+e+"/"+a,s=new FormData;return s.append("file",r),this.http.post(o,s,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.translateMessage=function(t,e){var a=this.chatUrl+"chatmessage/translate/"+t+"/"+e;return this.http.get(a,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.startTyping=function(t,e,a){var r=this.chatUrl+"chatmessage/startTyping/"+t+"/"+e+"/"+a;return this.http.put(r,null,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.startTypingGroup=function(t,e,a){var r=this.chatUrl+"chatmessage/startTypingGroup/"+t+"/"+e+"/"+a;return this.http.put(r,null,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.stopTyping=function(t,e,a){var r=this.chatUrl+"chatmessage/stopTyping/"+t+"/"+e+"/"+a;return this.http.put(r,null,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.stopTypingGroup=function(t,e,a){var r=this.chatUrl+"chatmessage/stopTypingGroup/"+t+"/"+e+"/"+a;return this.http.put(r,null,{headers:(new n.HttpHeaders).set("Authorization",this.getBearerToken())})},t.prototype.getBearerToken=function(){return"Bearer "+window.sessionStorage.getItem("chat4AppSessionToken")},t.prototype.setTokenChat4app=function(t){window.sessionStorage.setItem("chat4AppSessionToken",t)},t.prototype.onMessageFirebaseReceived=function(t,e){if("msg"==t.type){(n=new H).data.chatId=t.chatId,n.data.chatMessageId=t.chatMessageId,n.data.externalId=t.externalId,n.data.fromId=t.fromId,n.data.toId=t.toId,n.data.groupId=t.groupId,n.data.dateHour=t.dateHour,n.data.type=t.type,n.notification.body=t.body,t.fileId&&t.fileId.length>0&&(n.data.fileId=t.fileId,n.data.fileName=t.fileName,n.data.fileSize=t.fileSize,n.data.fileType=t.fileType);var a=new Map;for(var r in t)a.set(r,t[r]);n.data.all=a,e.onMessage(n)}else if("on"==t.type||"off"==t.type){(n=new H).data.chatId=t.chatId,n.data.chatMessageId=t.chatMessageId,n.data.externalId=t.externalId,n.data.fromId=t.fromId,n.data.toId=t.toId,n.data.groupId=t.groupId,n.data.dateHour=t.dateHour,n.data.type=t.type;a=new Map;for(var r in t)a.set(r,t[r]);n.data.all=a,e.onOffline(n)}else if("read"==t.type){(n=new H).data.chatId=t.chatId,n.data.chatMessageId=t.chatMessageId,n.data.externalId=t.externalId,n.data.fromId=t.fromId,n.data.toId=t.toId,n.data.groupId=t.groupId,n.data.dateHour=t.dateHour,n.data.type=t.type;a=new Map;for(var r in t)a.set(r,t[r]);n.data.all=a,e.onRead(n)}else if("startTyping"==t.type||"stopTyping"==t.type){(n=new H).data.chatId=t.chatId,n.data.chatMessageId=t.chatMessageId,n.data.externalId=t.externalId,n.data.fromId=t.fromId,n.data.toId=t.toId,n.data.groupId=t.groupId,n.data.dateHour=t.dateHour,n.data.type=t.type;a=new Map;for(var r in t)a.set(r,t[r]);n.data.all=a,e.onStartStopTyping(n)}else if("new_user"==t.type){(n=new H).data.chatId=t.chatId,n.data.chatMessageId=t.chatMessageId,n.data.externalId=t.externalId,n.data.fromId=t.fromId,n.data.toId=t.toId,n.data.groupId=t.groupId,n.data.dateHour=t.dateHour,n.data.type=t.type;a=new Map;for(var r in t)a.set(r,t[r]);n.data.all=a,e.onNewUser(n)}else if("remove_user"==t.type){(n=new H).data.chatId=t.chatId,n.data.chatMessageId=t.chatMessageId,n.data.externalId=t.externalId,n.data.fromId=t.fromId,n.data.toId=t.toId,n.data.groupId=t.groupId,n.data.dateHour=t.dateHour,n.data.type=t.type;a=new Map;for(var r in t)a.set(r,t[r]);n.data.all=a,e.onRemoveUser(n)}else if("chat_closed"==t.type){var n;(n=new H).data.chatId=t.chatId,n.data.chatMessageId=t.chatMessageId,n.data.externalId=t.externalId,n.data.fromId=t.fromId,n.data.toId=t.toId,n.data.groupId=t.groupId,n.data.dateHour=t.dateHour,n.data.type=t.type;a=new Map;for(var r in t)a.set(r,t[r]);n.data.all=a,e.onChatClosed(n)}},t.prototype.connectWebsocket=function(t,e){var a=this;this.disconnect();var r=this.getBearerToken();this.sock=new d(this.chatServer+"/stomp/gkz-stomp-endpoint?token="+r),this.stompClient=h.over(this.sock);var n=this;this.stompClient.debug=function(t){this.debug&&console.log(t)};var o="";o=r&&r.startsWith("Bearer ")?r:"Bearer "+r,this.stompClient.connect({"X-Authorization":o},(function(r){n.timeoutReconnect=500,a.stompClient.subscribe("/queue/"+e,(function(e){if("MESSAGE"==e.command&&!t.isTokenFirebaseActive()){var a=JSON.parse(e.body),r=new Map;for(var n in a.data)r.set(n,a.data[n]);a.data.all=r,"msg"==a.data.type?t.onMessage(a):"on"==a.data.type||"off"==a.data.type?t.onOffline(a):"read"==a.data.type?t.onRead(a):"startTyping"==a.data.type||"stopTyping"==a.data.type?t.onStartStopTyping(a):"new_user"==a.data.type?t.onNewUser(a):"remove_user"==a.data.type?t.onRemoveUser(a):"chat_closed"==a.data.type&&t.onChatClosed(a)}}))}),(function(r){setTimeout((function(){n.timeoutReconnect*=100,a.connectWebsocket(t,e)}),n.timeoutReconnect)}))},t.prototype.disconnect=function(){try{this.stompClient&&this.stompClient.disconnect()}catch(t){console.log(t)}},t.prototype.convertChat4AppMessageReceiveToChatMessage4App=function(t){var e,a,r=new y;(r.body=null===(e=null==t?void 0:t.notification)||void 0===e?void 0:e.body,r.chatId=t.data.chatId,r.fromId=t.data.fromId,r.toId=t.data.toId,r.groupId=t.data.groupId,r.dateHourIncluded=c.utc(t.data.dateHour,"DD-MM-YYYY hh:mm:ss").toDate(),r.id=t.data.chatMessageId,t.data.fileId&&t.data.fileId.length>0)&&((a=new m).id=t.data.fileId,a.name=t.data.fileName,a.size=t.data.fileSize,a.type=t.data.fileType,r.chatMessageFile=a);t.data.vFileId&&t.data.vFileId.length>0&&((a=new m).id=t.data.vFileId,a.name=t.data.vFileName,a.size=t.data.vFileSize,a.type=t.data.vFileType,r.chatVoiceFile=a);return r},t}();u.ɵprov=i.ɵɵdefineInjectable({factory:function(){return new u(i.ɵɵinject(p.HttpClient))},token:u,providedIn:"root"}),u.decorators=[{type:e.Injectable,args:[{providedIn:"root"}]}],u.ctorParameters=function(){return[{type:n.HttpClient}]};var l,g,f=function(){},I=function(){},y=function(){},m=function(){},v=function(){},H=function(){this.data=new T,this.notification=new C},T=function(){},C=function(){},w=function(){},A=function(){},M=function(t,e){this.endpoint=t,this.debug=e},U=function(){};t.ChatStatus4App=void 0,(l=t.ChatStatus4App||(t.ChatStatus4App={})).CREATED="CREATED",l.CLOSED="CLOSED",t.ChatUserStatus4App=void 0,(t.ChatUserStatus4App||(t.ChatUserStatus4App={})).REMOVED="REMOVED",t.ChatFilterType=void 0,(g=t.ChatFilterType||(t.ChatFilterType={}))[g.COUNT_NOT_READ=1]="COUNT_NOT_READ",g[g.LAST_MESSAGE=2]="LAST_MESSAGE";var k=function(){function t(){}return t.prototype.ngOnInit=function(){},t}();k.decorators=[{type:e.Component,args:[{selector:"lib-chat4app-client-angular",template:"\n <p>\n chat4app-client-angular works!\n </p>\n "}]}],k.ctorParameters=function(){return[]};var S=function(){};S.decorators=[{type:e.NgModule,args:[{declarations:[k],imports:[],exports:[k]}]}],t.Chat4App=f,t.Chat4AppConfig=M,t.Chat4AppMessageReceive=H,t.Chat4AppMessageReceiveData=T,t.Chat4AppMessageReceiveNotification=C,t.Chat4AppTranslate=U,t.Chat4appClientAngularComponent=k,t.Chat4appClientAngularModule=S,t.Chat4appClientAngularService=u,t.ChatFilterRequest4App=A,t.ChatMessage4App=y,t.ChatMessageFile4App=m,t.ChatMessageMeta4App=v,t.ChatUser4App=I,t.ChatUserResponse4App=w,Object.defineProperty(t,"__esModule",{value:!0})}));
|
|
2
2
|
//# sourceMappingURL=chat4app-client-angular.umd.min.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.service.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.component.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.module.ts"],"names":["Chat4appClientAngularService","http","this","chatServer","chatUrl","debug","timeoutReconnect","prototype","ngOnInit","config","chat4AppConfig","endpoint","init","securityChatToken","callback","chatCallback","connectionClientId","trim","length","Error","setTokenChat4app","connectWebsocket","getChatUrlDownload","messageFileId","getBearerToken","getMessageChat","chatId","fromId","toId","url","get","headers","HttpHeaders","set","getMessageChatByGrop","groupId","addMessageChat","chatMessage4App","post","props","chatFilterRequest4App","removeUsersChat","chatUsersId","chatUsersExternalId","params","Array","forEach","cui","push","cuei","join","delete","removeUserChat","chatUserId","chatUserExternalId","param","updateUserChat","charUser4AppUpdate","put","createUserChat","chatUser4App","createUsersChat","createChat","chat4app","createUpdateChat","getLastMessageGroup","chatExternalId","getLastMessage","countNotReadMessages","getChatByExternalId","externalId","listChatByUser","externalUserId","userId","chatStatus","readMessage","chatMessageId","online","sendFile","fileToUpload","formData","FormData","append","sendFileGroup","translateMessage","languageTarget","startTyping","startTypingGroup","stopTyping","stopTypingGroup","window","sessionStorage","getItem","chat4AppSessionToken","setItem","onMessageFirebaseReceived","data","type","chat4appMessage","Chat4AppMessageReceive","dateHour","notification","body","fileId","fileName","fileSize","fileType","datTmp","Map","key","all","onMessage","onOffline","onRead","onStartStopTyping","onNewUser","onRemoveUser","onChatClosed","token","_this","disconnect","securityToken","sock","SockJS","stompClient","Stomp","over","that","msg","console","log","tokenAuth","startsWith","connect","X-Authorization","frame","subscribe","command","isTokenFirebaseActive","msgObj","JSON","parse","message","setTimeout","e","convertChat4AppMessageReceiveToChatMessage4App","messageFile","ChatMessage4App","_a","dateHourIncluded","moment","utc","toDate","id","ChatMessageFile4App","name","size","chatMessageFile","vFileId","vFileName","vFileSize","vFileType","chatVoiceFile","Injectable","args","providedIn","HttpClient","ChatStatus4App","ChatFilterType","Chat4App","ChatUser4App","ChatMessageMeta4App","Chat4AppMessageReceiveData","Chat4AppMessageReceiveNotification","ChatUserResponse4App","ChatFilterRequest4App","Chat4AppConfig","Chat4AppTranslate","ChatUserStatus4App","Chat4appClientAngularComponent","Component","selector","template","Chat4appClientAngularModule","NgModule","declarations","imports","exports"],"mappings":"k2BAYAA,EAAA,WAWI,SAAAA,EAAqBC,GAAAC,KAAID,KAAJA,EATrBC,KAAUC,WAAG,GACbD,KAAOE,QAAG,GACVF,KAAKG,OAAG,EAKRH,KAAgBI,iBAAG,WAKnBN,EAAAO,UAAAC,SAAA,aAGAR,EAAMO,UAAAE,OAAN,SAAOC,GACLR,KAAKC,WAAaO,EAAeC,SACjCT,KAAKE,QAAUM,EAAeC,SAAW,WACzCT,KAAKG,MAAQK,EAAeL,OAG9BL,EAAIO,UAAAK,KAAJ,SAAKC,EAA2BC,EAAeC,EAA8BC,GAEzE,IAAKd,KAAKC,YAA+C,GAAjCD,KAAKC,WAAWc,OAAOC,OAC7C,MAAM,IAAIC,MAAM,qBAElB,IAAKN,GAAwD,GAAnCA,EAAkBI,OAAOC,OACjD,MAAM,IAAIC,MAAM,8BAGlBjB,KAAKkB,iBAAiBP,GAElBE,GAAgBC,GAClBd,KAAKmB,iBAAiBN,EAAcC,GAGtCF,EAASD,IAGbb,EAAkBO,UAAAe,mBAAlB,SAAmBC,GACjB,OAAOrB,KAAKE,QAAU,qCAAuCmB,EAAgB,UAAYrB,KAAKsB,kBAIhGxB,EAAAO,UAAAkB,eAAA,SAAeC,EAAgBC,EAAgBC,GAC7C,IAAIC,EAAM3B,KAAKE,QAAU,eAAiBsB,EAAS,IAAMC,EAAS,IAAMC,EAExE,OAAO1B,KAAKD,KAAK6B,IAA4BD,EAC3C,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAI3DxB,EAAAO,UAAA2B,qBAAA,SAAqBR,EAAgBS,EAAiBR,GACpD,IAAIE,EAAM3B,KAAKE,QAAU,uBAAyBsB,EAAS,IAAMS,EAAU,IAAMR,EAEjF,OAAOzB,KAAKD,KAAK6B,IAA4BD,EAC3C,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAM3DxB,EAAcO,UAAA6B,eAAd,SAAeC,GACb,IAAIR,EAAM3B,KAAKE,QAAU,eAAiBiC,EAAgBX,OAE1D,OAAOxB,KAAKD,KAAKqC,KAAsBT,EAAKQ,EAC1C,CACEN,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAI3DxB,EAAKO,UAAAgC,MAAL,SAAMC,GACJ,IAAIX,EAAM3B,KAAKE,QAAU,oBAEzB,OAAOF,KAAKD,KAAKqC,KAA6BT,EAAKW,EACjD,CACET,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAM3DxB,EAAAO,UAAAkC,gBAAA,SAAgBf,EAAgBgB,EAAwBC,GACtD,IAAIC,EAAS,IAAIC,MACbH,GAAeA,EAAYxB,OAAS,EAEtCwB,EAAYI,SAAQ,SAAAC,GAClBH,EAAOI,KAAK,cAAgBD,MAErBJ,GAAuBA,EAAoBzB,OAAS,GAC7DyB,EAAoBG,SAAQ,SAAAG,GAC1BL,EAAOI,KAAK,sBAAwBC,MAKxC,IAAIpB,EAAM3B,KAAKE,QAAU,YAAcsB,EAAS,IAAMkB,EAAOM,KAAK,KAElE,OAAOhD,KAAKD,KAAKkD,OAAuBtB,EACtC,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAI3DxB,EAAAO,UAAA6C,eAAA,SAAe1B,EAAgB2B,EAAqBC,GAClD,IAAIC,EAAQ,GAEVA,EADEF,EACM,cAAgBA,EAEhB,sBAAwBC,EAGlC,IAAIzB,EAAM3B,KAAKE,QAAU,YAAcsB,EAAS,IAAM6B,EAEtD,OAAOrD,KAAKD,KAAKkD,OAAqBtB,EACpC,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAI3DxB,EAAAO,UAAAiD,eAAA,SAAe9B,EAAgB+B,GAE7B,IAAI5B,EAAM3B,KAAKE,QAAU,YAAcsB,EAEvC,OAAOxB,KAAKD,KAAKyD,IAAkB7B,EAAK4B,EACtC,CACE1B,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAK3DxB,EAAAO,UAAAoD,eAAA,SAAejC,EAAgBkC,GAC7B,IAAI/B,EAAM3B,KAAKE,QAAU,YAAcsB,EAEvC,OAAOxB,KAAKD,KAAKqC,KAAmBT,EAAK+B,EACvC,CACE7B,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAI3DxB,EAAAO,UAAAsD,gBAAA,SAAgBnC,EAAgBkC,GAC9B,IAAI/B,EAAM3B,KAAKE,QAAU,kBAAoBsB,EAE7C,OAAOxB,KAAKD,KAAKqC,KAAqBT,EAAK+B,EACzC,CACE7B,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAK3DxB,EAAUO,UAAAuD,WAAV,SAAWC,GACT,IAAIlC,EAAM3B,KAAKE,QAAU,OAEzB,OAAOF,KAAKD,KAAKqC,KAAeT,EAAKkC,EACnC,CACEhC,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAG3DxB,EAAgBO,UAAAyD,iBAAhB,SAAiBD,GACf,IAAIlC,EAAM3B,KAAKE,QAAU,OAEzB,OAAOF,KAAKD,KAAKyD,IAAc7B,EAAKkC,EAClC,CACEhC,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAK3DxB,EAAAO,UAAA0D,oBAAA,SAAoBC,EAAwB/B,GAE1C,IAAIN,EAAM3B,KAAKE,QAAU,+CAAiD8D,EAAiB,YAAc/B,EAEzG,OAAOjC,KAAKD,KAAK6B,IAA0BD,EACzC,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAG3DxB,EAAAO,UAAA4D,eAAA,SAAeD,EAAwBZ,GAErC,IAAIzB,EAAM3B,KAAKE,QAAU,0CAA4C8D,EAAiB,uBAAyBZ,EAE/G,OAAOpD,KAAKD,KAAK6B,IAA0BD,EACzC,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAG3DxB,EAAAO,UAAA6D,qBAAA,SAAqBd,EAA4BY,EAAyB/B,GAExE,IAAIN,EAAM3B,KAAKE,QAAU,uDAAyDkD,EAUlF,OARIY,GAAkBA,EAAehD,OAAS,IAC5CW,GAAO,mBAAqBqC,GAG1B/B,GAAWA,EAAQjB,OAAS,IAC9BW,GAAO,YAAcM,GAGhBjC,KAAKD,KAAK6B,IAA0BD,EACzC,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAK3DxB,EAAmBO,UAAA8D,oBAAnB,SAAoBC,GAElB,IAAIzC,EAAM3B,KAAKE,QAAU,mBAAqBkE,EAE9C,OAAOpE,KAAKD,KAAK6B,IAAcD,EAC7B,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAI3DxB,EAAAO,UAAAgE,eAAA,SAAeC,EAAwBC,EAAgBC,GAErD,IAAI7C,EAAM3B,KAAKE,QAAU,uCAAyCoE,EAChE,WAAaC,EACb,eAAiBC,EAEnB,OAAOxE,KAAKD,KAAK6B,IAAqBD,EACpC,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAI3DxB,EAAAO,UAAAoE,YAAA,SAAYC,EAAuBhD,GAEjC,IAAIC,EAAM3B,KAAKE,QAAU,oBAAsBwE,EAM/C,OAJIhD,GAAQA,EAAKV,OAAS,IACxBW,GAAO,IAAMD,GAGR1B,KAAKD,KAAKyD,IAAU7B,EAAK,KAC9B,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAG3DxB,EAAMO,UAAAsE,OAAN,SAAOnD,GAEL,IAAIG,EAAM3B,KAAKE,QAAU,sBAAwBsB,EAEjD,OAAOxB,KAAKD,KAAK6B,IAAYD,EAC3B,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAI3DxB,EAAQO,UAAAuE,SAAR,SAASpD,EAAgBC,EAAgBC,EAAcmD,GACrD,IAAMpE,EAAWT,KAAKE,QAAU,wBAA0BsB,EAAS,IAAMC,EAAS,IAAMC,EAElFoD,EAAqB,IAAIC,SAG/B,OAFAD,EAASE,OAAO,OAAQH,GAEjB7E,KAAKD,KACTqC,KAA0B3B,EAAUqE,EACnC,CACEjD,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAI7DxB,EAAaO,UAAA4E,cAAb,SAAczD,EAAgBC,EAAgBQ,EAAiB4C,GAC7D,IAAMpE,EAAWT,KAAKE,QAAU,6BAA+BsB,EAAS,IAAMC,EAAS,IAAMQ,EAEvF6C,EAAqB,IAAIC,SAG/B,OAFAD,EAASE,OAAO,OAAQH,GAEjB7E,KAAKD,KACTqC,KAA0B3B,EAAUqE,EACnC,CACEjD,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAI7DxB,EAAAO,UAAA6E,iBAAA,SAAiBR,EAAuBS,GAEtC,IAAIxD,EAAM3B,KAAKE,QAAU,yBAA2BwE,EAAgB,IAAMS,EAE1E,OAAOnF,KAAKD,KAAK6B,IAAuBD,EACtC,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAI3DxB,EAAAO,UAAA+E,YAAA,SAAY5D,EAAeC,EAAgBC,GAEzC,IAAIC,EAAM3B,KAAKE,QAAU,2BAA6BsB,EAAS,IAAMC,EAAS,IAAMC,EAEpF,OAAO1B,KAAKD,KAAKyD,IAAU7B,EAAK,KAC9B,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAI3DxB,EAAAO,UAAAgF,iBAAA,SAAiB7D,EAAeC,EAAgBQ,GAE9C,IAAIN,EAAM3B,KAAKE,QAAU,gCAAkCsB,EAAS,IAAMC,EAAS,IAAMQ,EAEzF,OAAOjC,KAAKD,KAAKyD,IAAU7B,EAAK,KAC9B,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAG3DxB,EAAAO,UAAAiF,WAAA,SAAW9D,EAAeC,EAAgBC,GAExC,IAAIC,EAAM3B,KAAKE,QAAU,0BAA4BsB,EAAS,IAAMC,EAAS,IAAMC,EAEnF,OAAO1B,KAAKD,KAAKyD,IAAU7B,EAAK,KAC9B,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAI3DxB,EAAAO,UAAAkF,gBAAA,SAAgB/D,EAAeC,EAAgBQ,GAE7C,IAAIN,EAAM3B,KAAKE,QAAU,+BAAiCsB,EAAS,IAAMC,EAAS,IAAMQ,EAExF,OAAOjC,KAAKD,KAAKyD,IAAU7B,EAAK,KAC9B,CACEE,SAAS,IAAIC,EAAAA,aAAcC,IAAI,gBAAiB/B,KAAKsB,qBAM3DxB,EAAAO,UAAAiB,eAAA,WAIE,MAFU,UAAYkE,OAAOC,eAAeC,QAAQ,yBAMtD5F,EAAgBO,UAAAa,iBAAhB,SAAiByE,GAGfH,OAAOC,eAAeG,QAAQ,uBAAwBD,IAMxD7F,EAAAO,UAAAwF,0BAAA,SAA0BC,EAAWjF,GAKnC,GAAiB,OAAbiF,EAAKC,KAAe,EAElBC,EAAkB,IAAIC,GACVH,KAAKtE,OAASsE,EAAKtE,OACnCwE,EAAgBF,KAAKpB,cAAgBoB,EAAKpB,cAC1CsB,EAAgBF,KAAK1B,WAAa0B,EAAK1B,WACvC4B,EAAgBF,KAAKrE,OAASqE,EAAKrE,OACnCuE,EAAgBF,KAAKpE,KAAOoE,EAAKpE,KACjCsE,EAAgBF,KAAK7D,QAAU6D,EAAK7D,QACpC+D,EAAgBF,KAAKI,SAAWJ,EAAKI,SACrCF,EAAgBF,KAAKC,KAAOD,EAAKC,KACjCC,EAAgBG,aAAaC,KAAON,EAAKM,KAErCN,EAAKO,QAAUP,EAAKO,OAAOrF,OAAS,IACtCgF,EAAgBF,KAAKO,OAASP,EAAKO,OACnCL,EAAgBF,KAAKQ,SAAWR,EAAKQ,SACrCN,EAAgBF,KAAKS,SAAWT,EAAKS,SACrCP,EAAgBF,KAAKU,SAAWV,EAAKU,UAIvC,IAAIC,EAAS,IAAIC,IAEjB,IAAK,IAAIC,KAAOb,EACdW,EAAO1E,IAAI4E,EAAKb,EAAKa,IAGvBX,EAAgBF,KAAKc,IAAMH,EAE3B5F,EAAagG,UAAUb,QAElB,GAAkB,MAAbF,EAAKC,MAA6B,OAAbD,EAAKC,KAAgB,EAChDC,EAAkB,IAAIC,GACVH,KAAKtE,OAASsE,EAAKtE,OACnCwE,EAAgBF,KAAKpB,cAAgBoB,EAAKpB,cAC1CsB,EAAgBF,KAAK1B,WAAa0B,EAAK1B,WACvC4B,EAAgBF,KAAKrE,OAASqE,EAAKrE,OACnCuE,EAAgBF,KAAKpE,KAAOoE,EAAKpE,KACjCsE,EAAgBF,KAAK7D,QAAU6D,EAAK7D,QACpC+D,EAAgBF,KAAKI,SAAWJ,EAAKI,SACrCF,EAAgBF,KAAKC,KAAOD,EAAKC,KAE7BU,EAAS,IAAIC,IAEjB,IAAK,IAAIC,KAAOb,EACdW,EAAO1E,IAAI4E,EAAKb,EAAKa,IAGvBX,EAAgBF,KAAKc,IAAMH,EAE3B5F,EAAaiG,UAAUd,QAElB,GAAiB,QAAbF,EAAKC,KAAiB,EAC3BC,EAAkB,IAAIC,GACVH,KAAKtE,OAASsE,EAAKtE,OACnCwE,EAAgBF,KAAKpB,cAAgBoB,EAAKpB,cAC1CsB,EAAgBF,KAAK1B,WAAa0B,EAAK1B,WACvC4B,EAAgBF,KAAKrE,OAASqE,EAAKrE,OACnCuE,EAAgBF,KAAKpE,KAAOoE,EAAKpE,KACjCsE,EAAgBF,KAAK7D,QAAU6D,EAAK7D,QACpC+D,EAAgBF,KAAKI,SAAWJ,EAAKI,SACrCF,EAAgBF,KAAKC,KAAOD,EAAKC,KAE7BU,EAAS,IAAIC,IAEjB,IAAK,IAAIC,KAAOb,EACdW,EAAO1E,IAAI4E,EAAKb,EAAKa,IAGvBX,EAAgBF,KAAKc,IAAMH,EAE3B5F,EAAakG,OAAOf,QACf,GAAiB,eAAbF,EAAKC,MAAsC,cAAbD,EAAKC,KAAuB,EAC/DC,EAAkB,IAAIC,GACVH,KAAKtE,OAASsE,EAAKtE,OACnCwE,EAAgBF,KAAKpB,cAAgBoB,EAAKpB,cAC1CsB,EAAgBF,KAAK1B,WAAa0B,EAAK1B,WACvC4B,EAAgBF,KAAKrE,OAASqE,EAAKrE,OACnCuE,EAAgBF,KAAKpE,KAAOoE,EAAKpE,KACjCsE,EAAgBF,KAAK7D,QAAU6D,EAAK7D,QACpC+D,EAAgBF,KAAKI,SAAWJ,EAAKI,SACrCF,EAAgBF,KAAKC,KAAOD,EAAKC,KAE7BU,EAAS,IAAIC,IAEjB,IAAK,IAAIC,KAAOb,EACdW,EAAO1E,IAAI4E,EAAKb,EAAKa,IAGvBX,EAAgBF,KAAKc,IAAMH,EAE3B5F,EAAamG,kBAAkBhB,QAC1B,GAAiB,YAAbF,EAAKC,KAAsB,EAChCC,EAAkB,IAAIC,GACVH,KAAKtE,OAASsE,EAAKtE,OACnCwE,EAAgBF,KAAKpB,cAAgBoB,EAAKpB,cAC1CsB,EAAgBF,KAAK1B,WAAa0B,EAAK1B,WACvC4B,EAAgBF,KAAKrE,OAASqE,EAAKrE,OACnCuE,EAAgBF,KAAKpE,KAAOoE,EAAKpE,KACjCsE,EAAgBF,KAAK7D,QAAU6D,EAAK7D,QACpC+D,EAAgBF,KAAKI,SAAWJ,EAAKI,SACrCF,EAAgBF,KAAKC,KAAOD,EAAKC,KAE7BU,EAAS,IAAIC,IAEjB,IAAK,IAAIC,KAAOb,EACdW,EAAO1E,IAAI4E,EAAKb,EAAKa,IAGvBX,EAAgBF,KAAKc,IAAMH,EAE3B5F,EAAaoG,UAAUjB,QAClB,GAAiB,eAAbF,EAAKC,KAAyB,EACnCC,EAAkB,IAAIC,GACVH,KAAKtE,OAASsE,EAAKtE,OACnCwE,EAAgBF,KAAKpB,cAAgBoB,EAAKpB,cAC1CsB,EAAgBF,KAAK1B,WAAa0B,EAAK1B,WACvC4B,EAAgBF,KAAKrE,OAASqE,EAAKrE,OACnCuE,EAAgBF,KAAKpE,KAAOoE,EAAKpE,KACjCsE,EAAgBF,KAAK7D,QAAU6D,EAAK7D,QACpC+D,EAAgBF,KAAKI,SAAWJ,EAAKI,SACrCF,EAAgBF,KAAKC,KAAOD,EAAKC,KAE7BU,EAAS,IAAIC,IAEjB,IAAK,IAAIC,KAAOb,EACdW,EAAO1E,IAAI4E,EAAKb,EAAKa,IAGvBX,EAAgBF,KAAKc,IAAMH,EAE3B5F,EAAaqG,aAAalB,QACrB,GAAiB,eAAbF,EAAKC,KAAyB,CACvC,IAAIC,GAAAA,EAAkB,IAAIC,GACVH,KAAKtE,OAASsE,EAAKtE,OACnCwE,EAAgBF,KAAKpB,cAAgBoB,EAAKpB,cAC1CsB,EAAgBF,KAAK1B,WAAa0B,EAAK1B,WACvC4B,EAAgBF,KAAKrE,OAASqE,EAAKrE,OACnCuE,EAAgBF,KAAKpE,KAAOoE,EAAKpE,KACjCsE,EAAgBF,KAAK7D,QAAU6D,EAAK7D,QACpC+D,EAAgBF,KAAKI,SAAWJ,EAAKI,SACrCF,EAAgBF,KAAKC,KAAOD,EAAKC,KAE7BU,EAAS,IAAIC,IAEjB,IAAK,IAAIC,KAAOb,EACdW,EAAO1E,IAAI4E,EAAKb,EAAKa,IAGvBX,EAAgBF,KAAKc,IAAMH,EAE3B5F,EAAasG,aAAanB,KAM9BlG,EAAAO,UAAAc,iBAAA,SAAiBN,EAA6BuG,GAA9C,IAoFCC,EAAArH,KAnFCA,KAAKsH,aAEL,IAAIC,EAAgBvH,KAAKsB,iBAEzBtB,KAAKwH,KAAO,IAAIC,EAAOzH,KAAKC,WAAa,mCAAqCsH,GAC9EvH,KAAK0H,YAAcC,EAAMC,KAAK5H,KAAKwH,MACnC,IAAMK,EAAO7H,KAEbA,KAAK0H,YAAYvH,MAAQ,SAAU2H,GAC7B9H,KAAKG,OACP4H,QAAQC,IAAIF,IAKhB,IAAIG,EAAY,GAGdA,EADEV,GAAiBA,EAAcW,WAAW,WAChCX,EAEA,UAAYA,EAG1BvH,KAAK0H,YAAYS,QAAQ,CAACC,kBAAmBH,IAAY,SAACI,GAExDR,EAAKzH,iBAAmB,IAExBiH,EAAKK,YAAYY,UAAU,UAAYlB,GAAO,SAACU,GAG7C,GAAmB,WAAfA,EAAIS,UAID1H,EAAa2H,wBAAyB,CAEzC,IAAIC,EAASC,KAAKC,MAAMb,EAAI1B,MAExBK,EAAS,IAAIC,IAEjB,IAAK,IAAIC,KAAO8B,EAAO3C,KACrBW,EAAO1E,IAAI4E,EAAK8B,EAAO3C,KAAKa,IAG9B8B,EAAO3C,KAAKc,IAAMH,EAEM,OAApBgC,EAAO3C,KAAKC,KACdlF,EAAagG,UAAU4B,GACO,MAApBA,EAAO3C,KAAKC,MAAoC,OAApB0C,EAAO3C,KAAKC,KAClDlF,EAAaiG,UAAU2B,GACM,QAApBA,EAAO3C,KAAKC,KACrBlF,EAAakG,OAAO0B,GACS,eAApBA,EAAO3C,KAAKC,MAA8C,cAApB0C,EAAO3C,KAAKC,KAC3DlF,EAAamG,kBAAkByB,GACF,YAApBA,EAAO3C,KAAKC,KACrBlF,EAAaoG,UAAUwB,GACM,eAApBA,EAAO3C,KAAKC,KACrBlF,EAAaqG,aAAauB,GACG,eAApBA,EAAO3C,KAAKC,MACrBlF,EAAasG,aAAasB,UAalC,SAACG,GAICC,YAAW,WACThB,EAAKzH,kBAAkB,IACvBiH,EAAKlG,iBAAiBN,EAAcuG,KACnCS,EAAKzH,sBAMdN,EAAAO,UAAAiH,WAAA,WAEE,IACMtH,KAAK0H,aACP1H,KAAK0H,YAAYJ,aAGnB,MAAOwB,GACPf,QAAQC,IAAIc,KAIhBhJ,EAA8CO,UAAA0I,+CAA9C,SAA+CjB,SAsBvCkB,EArBFJ,EAAU,IAAIK,GAClBL,EAAQxC,KAA0B,QAAnB8C,EAAApB,MAAAA,OAAA,EAAAA,EAAK3B,oBAAc,IAAA+C,OAAA,EAAAA,EAAA9C,KAClCwC,EAAQpH,OAASsG,EAAIhC,KAAKtE,OAC1BoH,EAAQnH,OAASqG,EAAIhC,KAAKrE,OAC1BmH,EAAQlH,KAAOoG,EAAIhC,KAAKpE,KACxBkH,EAAQ3G,QAAU6F,EAAIhC,KAAK7D,QAC3B2G,EAAQO,iBAAmBC,EAAOC,IAAIvB,EAAIhC,KAAKI,SAAU,uBAAuBoD,SAChFV,EAAQW,GAAKzB,EAAIhC,KAAKpB,cAElBoD,EAAIhC,KAAKO,QAAUyB,EAAIhC,KAAKO,OAAOrF,OAAS,MAC1CgI,EAAc,IAAIQ,GAEVD,GAAKzB,EAAIhC,KAAKO,OAC1B2C,EAAYS,KAAO3B,EAAIhC,KAAKQ,SAC5B0C,EAAYU,KAAO5B,EAAIhC,KAAKS,SAC5ByC,EAAYjD,KAAO+B,EAAIhC,KAAKU,SAE5BoC,EAAQe,gBAAkBX,GAGxBlB,EAAIhC,KAAK8D,SAAW9B,EAAIhC,KAAK8D,QAAQ5I,OAAS,KAC5CgI,EAAc,IAAIQ,GAEVD,GAAKzB,EAAIhC,KAAK8D,QAC1BZ,EAAYS,KAAO3B,EAAIhC,KAAK+D,UAC5Bb,EAAYU,KAAO5B,EAAIhC,KAAKgE,UAC5Bd,EAAYjD,KAAO+B,EAAIhC,KAAKiE,UAE5BnB,EAAQoB,cAAgBhB,GAI1B,OAAOJ,KAjoBb,sIAHC,CAAA7C,KAAAkE,EAAAA,WAAWC,KAAA,CAAA,CACVC,WAAY,oDAPLC,EAAAA,cAipBP,IA0GYC,EASAC,EAnHZC,EAAA,aAWAC,EAAA,aAWAvB,EAAA,aAeAO,EAAA,aAOAiB,EAAA,aAIAxE,EAAA,WACEjG,KAAA8F,KAAmC,IAAI4E,EACvC1K,KAAAmG,aAAmD,IAAIwE,GAGzDD,EAAA,aAoBAC,EAAA,aAIAC,EAAA,aAMAC,EAAA,aAMAC,EACE,SAAmBrK,EAAyBN,GAAzBH,KAAQS,SAARA,EAAyBT,KAAKG,MAALA,GAK9C4K,EAAA,aAWYV,EAAAA,oBAAAA,GAAAA,EAAAA,EAAAA,iBAAAA,EAAAA,eAIX,KAHC,QAAA,UACAA,EAAA,OAAA,SAGUW,EAAAA,wBAAAA,GAAAA,EAAAA,qBAAAA,EAAAA,mBAGX,KAFC,QAAA,UAGUV,EAAAA,oBAAAA,GAAAA,EAAAA,EAAAA,iBAAAA,EAAAA,eAGX,KAFCA,EAAA,eAAA,GAAA,iBACAA,EAAAA,EAAA,aAAA,GAAA,eC7vBJ,IAAAW,EAAA,WAEE,SAAAA,YAEAA,EAAA5K,UAAAC,SAAA,eAJF,iBAVC,CAAAyF,KAAAmF,EAAAA,UAAUhB,KAAA,CAAA,CACTiB,SAAU,8BACVC,SAAU,0GCOZ,IAAAC,EAAA,2BANC,CAAAtF,KAAAuF,EAAAA,SAASpB,KAAA,CAAA,CACRqB,aAAc,CAACN,GACfO,QAAS,GAETC,QAAS,CAACR","sourcesContent":["import { Injectable, OnInit } from '@angular/core';\nimport * as Stomp from 'stompjs';\nimport * as SockJS from 'sockjs-client';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport * as moment from 'moment';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Chat4appClientAngularService implements OnInit {\n\n chatServer = \"\";\n chatUrl = \"\";\n debug = false;\n \n sock: any;\n stompClient: any;\n\n timeoutReconnect = 500;\n\n constructor( private http: HttpClient) {\n \n }\n ngOnInit(): void {\n }\n\n config(chat4AppConfig: Chat4AppConfig) {\n this.chatServer = chat4AppConfig.endpoint;\n this.chatUrl = chat4AppConfig.endpoint + \"/api/v1/\" ;\n this.debug = chat4AppConfig.debug;\n }\n \n init(securityChatToken: string, callback: any, chatCallback?: IChatCallback, connectionClientId?: string) {\n\n if (!this.chatServer || this.chatServer.trim().length == 0){\n throw new Error(\"Endpoint is empty\");\n }\n if (!securityChatToken || securityChatToken.trim().length == 0){\n throw new Error(\"SecurityChatToken is empty\");\n }\n\n this.setTokenChat4app(securityChatToken);\n \n if (chatCallback && connectionClientId) {\n this.connectWebsocket(chatCallback, connectionClientId);\n }\n \n callback(securityChatToken);\n }\n \n getChatUrlDownload(messageFileId: string) {\n return this.chatUrl + \"chatmessage/getFile?messageFileId=\" + messageFileId + \"&token=\" + this.getBearerToken();\n }\n \n \n getMessageChat(chatId: string, fromId: string, toId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n getMessageChatByGrop(chatId: string, groupId: string, fromId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/byGroup/\" + chatId + \"/\" + groupId + \"/\" + fromId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n addMessageChat(chatMessage4App: ChatMessage4App): Observable<ChatMessage4App> {\n let url = this.chatUrl + \"chatmessage/\" + chatMessage4App.chatId;\n \n return this.http.post<ChatMessage4App>(url, chatMessage4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n props(chatFilterRequest4App: Array<ChatFilterRequest4App>): Observable<ChatUserResponse4App[]> {\n let url = this.chatUrl + \"chatmessage/props\";\n \n return this.http.post<ChatUserResponse4App[]>(url, chatFilterRequest4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n removeUsersChat(chatId: string, chatUsersId?: string[], chatUsersExternalId?: string[]): Observable<ChatUser4App[]> {\n let params = new Array();\n if (chatUsersId && chatUsersId.length > 0) {\n \n chatUsersId.forEach(cui => {\n params.push(\"chatUserId=\" + cui);\n });\n } else if (chatUsersExternalId && chatUsersExternalId.length > 0) {\n chatUsersExternalId.forEach(cuei => {\n params.push(\"chatUserExternalId=\" + cuei);\n })\n \n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + params.join(\"&\");\n \n return this.http.delete<ChatUser4App[]>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n removeUserChat(chatId: string, chatUserId?: string, chatUserExternalId?: string): Observable<ChatUser4App> {\n let param = \"\";\n if (chatUserId) {\n param = \"chatUserId=\" + chatUserId;\n } else {\n param = \"chatUserExternalId=\" + chatUserExternalId;\n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + param;\n \n return this.http.delete<ChatUser4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n updateUserChat(chatId: string, charUser4AppUpdate: ChatUser4App): Observable<ChatUser4App> {\n \n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.put<ChatUser4App>(url, charUser4AppUpdate,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createUserChat(chatId: string, chatUser4App: ChatUser4App): Observable<ChatUser4App> {\n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.post<ChatUser4App>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n createUsersChat(chatId: string, chatUser4App: ChatUser4App[]): Observable<ChatUser4App[]> {\n let url = this.chatUrl + \"chatuser/users/\" + chatId;\n \n return this.http.post<ChatUser4App[]>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.post<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n createUpdateChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.put<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getLastMessageGroup(chatExternalId: string, groupId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessageGroup?chatExternalId=\" + chatExternalId + \"&groupId=\" + groupId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n getLastMessage(chatExternalId: string, chatUserExternalId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessage?chatExternalId=\" + chatExternalId + \"&chatUserExternalId=\" + chatUserExternalId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n countNotReadMessages(chatUserExternalId: string, chatExternalId?: string, groupId?: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/countNotReadMessages?chatUserExternalId=\" + chatUserExternalId;\n \n if (chatExternalId && chatExternalId.length > 0) {\n url += \"&chatExternalId=\" + chatExternalId;\n }\n \n if (groupId && groupId.length > 0) {\n url += \"&groupId=\" + groupId;\n }\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getChatByExternalId(externalId: string): Observable<Chat4App> {\n \n let url = this.chatUrl + \"chat?externalId=\" + externalId;\n \n return this.http.get<Chat4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n listChatByUser(externalUserId: string, userId: string, chatStatus: ChatStatus4App ): Observable<Array< Chat4App>> {\n \n let url = this.chatUrl + \"chat/listChatByUser/?externalUserId=\" + externalUserId \n + \"&userId=\" + userId\n + \"&chatStatus=\" + chatStatus;\n \n return this.http.get<Array<Chat4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n readMessage(chatMessageId: string, toId?: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/read/\" + chatMessageId;\n \n if (toId && toId.length > 0) {\n url += \"/\" + toId;\n }\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n online(chatId: string): Observable<number> {\n \n let url = this.chatUrl + \"chatmessage/online/\" + chatId ;\n \n return this.http.get<number>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n sendFile(chatId: string, fromId: string, toId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFile/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n sendFileGroup(chatId: string, fromId: string, groupId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFileGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n\n translateMessage(chatMessageId: string, languageTarget: string): Observable<Chat4AppTranslate> {\n \n let url = this.chatUrl + \"chatmessage/translate/\" + chatMessageId + \"/\" + languageTarget;\n \n return this.http.get<Chat4AppTranslate>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n startTyping(chatId: string,fromId: string, toId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/startTyping/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n startTypingGroup(chatId: string,fromId: string, groupId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/startTypingGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n stopTyping(chatId: string,fromId: string, toId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/stopTyping/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n stopTypingGroup(chatId: string,fromId: string, groupId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/stopTypingGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n \n /* Token */\n getBearerToken(): string {\n \n let ret = \"Bearer \" + window.sessionStorage.getItem(\"chat4AppSessionToken\");\n \n return ret;\n }\n \n \n setTokenChat4app(chat4AppSessionToken: string) {\n \n \n window.sessionStorage.setItem(\"chat4AppSessionToken\", chat4AppSessionToken);\n }\n \n \n /* Connection */\n \n onMessageFirebaseReceived(data: any, chatCallback: IChatCallback) {\n \n \n //alert(\"onMessageReceived connectFirebase\");\n \n if (data.type == \"msg\") {\n \n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n chat4appMessage.notification.body = data.body;\n \n if (data.fileId && data.fileId.length > 0) {\n chat4appMessage.data.fileId = data.fileId;\n chat4appMessage.data.fileName = data.fileName;\n chat4appMessage.data.fileSize = data.fileSize;\n chat4appMessage.data.fileType = data.fileType;\n \n }\n \n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onMessage(chat4appMessage);\n \n } else if ((data.type == \"on\" || data.type == \"off\")) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onOffline(chat4appMessage);\n\n } else if (data.type == \"read\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onRead(chat4appMessage);\n } else if (data.type == \"startTyping\" || data.type == \"stopTyping\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onStartStopTyping(chat4appMessage);\n } else if (data.type == \"new_user\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onNewUser(chat4appMessage);\n } else if (data.type == \"remove_user\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onRemoveUser(chat4appMessage);\n } else if (data.type == \"chat_closed\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onChatClosed(chat4appMessage);\n }\n\n \n }\n \n connectWebsocket(chatCallback: IChatCallback, token: string) {\n this.disconnect();\n \n let securityToken = this.getBearerToken();\n \n this.sock = new SockJS(this.chatServer + '/stomp/gkz-stomp-endpoint?token=' + securityToken);\n this.stompClient = Stomp.over(this.sock);\n const that = this;\n\n this.stompClient.debug = function (msg: any) {\n if (this.debug) {\n console.log(msg);\n }\n \n }\n\n let tokenAuth = \"\";\n\n if (securityToken && securityToken.startsWith(\"Bearer \")){\n tokenAuth = securityToken;\n } else {\n tokenAuth = \"Bearer \" + securityToken;\n }\n \n this.stompClient.connect({\"X-Authorization\": tokenAuth}, (frame: any) => {\n //console.log(frame);\n that.timeoutReconnect = 500;\n \n this.stompClient.subscribe('/queue/' + token, (msg: any) => {\n //console.log('mensagem', msg);\n \n if (msg.command == \"MESSAGE\") {\n \n //console.log(msg)\n\n if (!chatCallback.isTokenFirebaseActive()) {\n \n let msgObj = JSON.parse(msg.body);\n \n let datTmp = new Map<string, string>();\n \n for (let key in msgObj.data) {\n datTmp.set(key, msgObj.data[key]);\n }\n \n msgObj.data.all = datTmp;\n \n if (msgObj.data.type == \"msg\") {\n chatCallback.onMessage(msgObj);\n } else if ((msgObj.data.type == \"on\" || msgObj.data.type == \"off\")) {\n chatCallback.onOffline(msgObj);\n } else if (msgObj.data.type == \"read\" ) {\n chatCallback.onRead(msgObj);\n } else if (msgObj.data.type == \"startTyping\" || msgObj.data.type == \"stopTyping\") {\n chatCallback.onStartStopTyping(msgObj);\n } else if (msgObj.data.type == \"new_user\") {\n chatCallback.onNewUser(msgObj);\n } else if (msgObj.data.type == \"remove_user\") {\n chatCallback.onRemoveUser(msgObj);\n } else if (msgObj.data.type == \"chat_closed\") {\n chatCallback.onChatClosed(msgObj);\n }\n }\n\n \n //callback(msg.body);\n // ichatcallback.forEach((iChat)=>{\n // iChat.onMessage(JSON.parse(msg.body) );\n // });\n }\n \n });\n },\n (message: any) => {\n // check message for disconnect\n //console.log(\"Disconnect\");\n \n setTimeout(() => {\n that.timeoutReconnect*=100;\n this.connectWebsocket(chatCallback, token);\n }, that.timeoutReconnect);\n \n });\n \n }\n \n disconnect() {\n// console.log(\"disconnect\")\n try {\n if (this.stompClient) {\n this.stompClient.disconnect();\n }\n \n } catch (e) {\n console.log(e);\n }\n }\n\n convertChat4AppMessageReceiveToChatMessage4App(msg: Chat4AppMessageReceive): ChatMessage4App{\n let message = new ChatMessage4App();\n message.body = msg?.notification?.body;\n message.chatId = msg.data.chatId;\n message.fromId = msg.data.fromId;\n message.toId = msg.data.toId;\n message.groupId = msg.data.groupId;\n message.dateHourIncluded = moment.utc(msg.data.dateHour, \"DD-MM-YYYY hh:mm:ss\").toDate();\n message.id = msg.data.chatMessageId;\n\n if (msg.data.fileId && msg.data.fileId.length > 0) {\n let messageFile = new ChatMessageFile4App();\n \n messageFile.id = msg.data.fileId;\n messageFile.name = msg.data.fileName;\n messageFile.size = msg.data.fileSize;\n messageFile.type = msg.data.fileType;\n\n message.chatMessageFile = messageFile;\n }\n\n if (msg.data.vFileId && msg.data.vFileId.length > 0) {\n let messageFile = new ChatMessageFile4App();\n \n messageFile.id = msg.data.vFileId;\n messageFile.name = msg.data.vFileName;\n messageFile.size = msg.data.vFileSize;\n messageFile.type = msg.data.vFileType;\n\n message.chatVoiceFile = messageFile;\n }\n\n\n return message;\n\n }\n \n }\n \n \n export class Chat4App {\n id: string;\n configId: string;\n externalId: string;\n title: string;\n status: ChatStatus4App;\n users: Array<ChatUser4App>;\n\n meta: Array<ChatMessageMeta4App>;\n \n }\n export class ChatUser4App {\n id: string;\n name: string;\n clientToken: string;\n picturePath: string;\n email: string;\n phoneNumber: string;\n externalId: string;\n meta: Array<ChatMessageMeta4App>;\n status: ChatUserStatus4App;\n }\n export class ChatMessage4App {\n id: string;\n fromId: string;\n toId: string;\n chatId: string;\n title: string;\n body: string;\n meta: Array<ChatMessageMeta4App>;\n groupId: string;\n read: Boolean;\n dateHourIncluded: Date;\n gToIdRead: string[];\n chatMessageFile: ChatMessageFile4App;\n chatVoiceFile: ChatMessageFile4App;\n }\n export class ChatMessageFile4App {\n id: string;\n name: string;\n type: string;\n size: number;\n fullPath: string;\n }\n export class ChatMessageMeta4App {\n name: string;\n value: string;\n }\n export class Chat4AppMessageReceive {\n data: Chat4AppMessageReceiveData = new Chat4AppMessageReceiveData();\n notification: Chat4AppMessageReceiveNotification = new Chat4AppMessageReceiveNotification();\n token: string;\n }\n export class Chat4AppMessageReceiveData {\n toId: string;\n chatId: string;\n dateHour: string;\n chatMessageId: string;\n externalId: string;\n type: string;\n fromId: string;\n groupId: string;\n fileId: string;\n fileName: string;\n fileSize: number;\n fileType: string;\n vFileId: string;\n vFileName: string;\n vFileSize: number;\n vFileType: string;\n\n all: Map<string, string>;\n }\n export class Chat4AppMessageReceiveNotification {\n body: string;\n }\n \n export class ChatUserResponse4App {\n totalMessages: number;\n chat: Chat4App;\n chatMessage: ChatMessage4App;\n chats: ChatUserResponse4App[];\n }\n export class ChatFilterRequest4App {\n type: ChatFilterType;\n chatExternalId: string;\n chatUserExternalId: string;\n groupId: string;\n }\n export class Chat4AppConfig {\n constructor(public endpoint: string, public debug?: boolean) {\n \n }\n }\n\n export class Chat4AppTranslate {\n text: string;\n translatedText: string;\n originalSourceLanguageCode: string;\n sourceLanguageCode: string;\n targetLanguageCode: string;\n messageId: string;\n }\n\n\n \n export enum ChatStatus4App {\n CREATED = \"CREATED\",\n CLOSED = \"CLOSED\"\n \n }\n export enum ChatUserStatus4App {\n REMOVED = \"REMOVED\"\n \n }\n export enum ChatFilterType {\n COUNT_NOT_READ = 1,\n LAST_MESSAGE = 2\n }\n \n export interface IChatCallback {\n isTokenFirebaseActive(): Boolean;\n onMessage(msg: Chat4AppMessageReceive): void;\n onOffline(msg: Chat4AppMessageReceive): void;\n onRead(msg: Chat4AppMessageReceive): void;\n onStartStopTyping(msg: Chat4AppMessageReceive): void;\n onNewUser(msg: Chat4AppMessageReceive): void;\n onRemoveUser(msg: Chat4AppMessageReceive): void;\n onChatClosed(msg: Chat4AppMessageReceive): void;\n }\n ","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-chat4app-client-angular',\n template: `\n <p>\n chat4app-client-angular works!\n </p>\n `,\n styles: [\n ]\n})\nexport class Chat4appClientAngularComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Chat4appClientAngularComponent } from './chat4app-client-angular.component';\n\n\n\n@NgModule({\n declarations: [Chat4appClientAngularComponent],\n imports: [\n ],\n exports: [Chat4appClientAngularComponent]\n})\nexport class Chat4appClientAngularModule { }\n"]}
|
|
1
|
+
{"version":3,"sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.service.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.component.ts","../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.module.ts"],"names":["Chat4appClientAngularService","http","this","chatServer","chatUrl","debug","timeoutReconnect","prototype","ngOnInit","config","chat4AppConfig","endpoint","init","securityChatToken","callback","chatCallback","connectionClientId","trim","length","Error","setTokenChat4app","connectWebsocket","getChatUrlDownload","messageFileId","getBearerToken","getMessageChat","chatId","fromId","toId","url","get","headers","HttpHeaders","set","getMessageChatByGrop","groupId","addMessageChat","chatMessage4App","post","props","chatFilterRequest4App","removeUsersChat","chatUsersId","chatUsersExternalId","params","Array","forEach","cui","push","cuei","join","delete","removeUserChat","chatUserId","chatUserExternalId","param","updateUserChat","charUser4AppUpdate","put","createUserChat","chatUser4App","createUsersChat","createChat","chat4app","createUpdateChat","getLastMessageGroup","chatExternalId","getLastMessage","countNotReadMessages","getChatByExternalId","externalId","listChatByUser","externalUserId","userId","chatStatus","closeChat","readMessage","chatMessageId","online","sendFile","fileToUpload","formData","FormData","append","sendFileGroup","translateMessage","languageTarget","startTyping","startTypingGroup","stopTyping","stopTypingGroup","window","sessionStorage","getItem","chat4AppSessionToken","setItem","onMessageFirebaseReceived","data","type","chat4appMessage","Chat4AppMessageReceive","dateHour","notification","body","fileId","fileName","fileSize","fileType","datTmp","Map","key","all","onMessage","onOffline","onRead","onStartStopTyping","onNewUser","onRemoveUser","onChatClosed","token","_this","disconnect","securityToken","sock","SockJS","stompClient","Stomp","over","that","msg","console","log","tokenAuth","startsWith","connect","X-Authorization","frame","subscribe","command","isTokenFirebaseActive","msgObj","JSON","parse","message","setTimeout","e","convertChat4AppMessageReceiveToChatMessage4App","messageFile","ChatMessage4App","_a","dateHourIncluded","moment","utc","toDate","id","ChatMessageFile4App","name","size","chatMessageFile","vFileId","vFileName","vFileSize","vFileType","chatVoiceFile","Injectable","args","providedIn","HttpClient","ChatStatus4App","ChatFilterType","Chat4App","ChatUser4App","ChatMessageMeta4App","Chat4AppMessageReceiveData","Chat4AppMessageReceiveNotification","ChatUserResponse4App","ChatFilterRequest4App","Chat4AppConfig","Chat4AppTranslate","ChatUserStatus4App","Chat4appClientAngularComponent","Component","selector","template","Chat4appClientAngularModule","NgModule","declarations","imports","exports"],"mappings":"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","sourcesContent":["import { Injectable, OnInit } from '@angular/core';\nimport * as Stomp from 'stompjs';\nimport * as SockJS from 'sockjs-client';\nimport { HttpClient, HttpHeaders } from '@angular/common/http';\nimport { Observable } from 'rxjs';\nimport * as moment from 'moment';\n\n\n\n@Injectable({\n providedIn: 'root'\n})\nexport class Chat4appClientAngularService implements OnInit {\n\n chatServer = \"\";\n chatUrl = \"\";\n debug = false;\n \n sock: any;\n stompClient: any;\n\n timeoutReconnect = 500;\n\n constructor( private http: HttpClient) {\n \n }\n ngOnInit(): void {\n }\n\n config(chat4AppConfig: Chat4AppConfig) {\n this.chatServer = chat4AppConfig.endpoint;\n this.chatUrl = chat4AppConfig.endpoint + \"/api/v1/\" ;\n this.debug = chat4AppConfig.debug;\n }\n \n init(securityChatToken: string, callback: any, chatCallback?: IChatCallback, connectionClientId?: string) {\n\n if (!this.chatServer || this.chatServer.trim().length == 0){\n throw new Error(\"Endpoint is empty\");\n }\n if (!securityChatToken || securityChatToken.trim().length == 0){\n throw new Error(\"SecurityChatToken is empty\");\n }\n\n this.setTokenChat4app(securityChatToken);\n \n if (chatCallback && connectionClientId) {\n this.connectWebsocket(chatCallback, connectionClientId);\n }\n \n callback(securityChatToken);\n }\n \n getChatUrlDownload(messageFileId: string) {\n return this.chatUrl + \"chatmessage/getFile?messageFileId=\" + messageFileId + \"&token=\" + this.getBearerToken();\n }\n \n \n getMessageChat(chatId: string, fromId: string, toId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n getMessageChatByGrop(chatId: string, groupId: string, fromId: string): Observable<Array<ChatMessage4App>> {\n let url = this.chatUrl + \"chatmessage/byGroup/\" + chatId + \"/\" + groupId + \"/\" + fromId;\n \n return this.http.get<Array<ChatMessage4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n addMessageChat(chatMessage4App: ChatMessage4App): Observable<ChatMessage4App> {\n let url = this.chatUrl + \"chatmessage/\" + chatMessage4App.chatId;\n \n return this.http.post<ChatMessage4App>(url, chatMessage4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n props(chatFilterRequest4App: Array<ChatFilterRequest4App>): Observable<ChatUserResponse4App[]> {\n let url = this.chatUrl + \"chatmessage/props\";\n \n return this.http.post<ChatUserResponse4App[]>(url, chatFilterRequest4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n \n }\n \n \n removeUsersChat(chatId: string, chatUsersId?: string[], chatUsersExternalId?: string[]): Observable<ChatUser4App[]> {\n let params = new Array();\n if (chatUsersId && chatUsersId.length > 0) {\n \n chatUsersId.forEach(cui => {\n params.push(\"chatUserId=\" + cui);\n });\n } else if (chatUsersExternalId && chatUsersExternalId.length > 0) {\n chatUsersExternalId.forEach(cuei => {\n params.push(\"chatUserExternalId=\" + cuei);\n })\n \n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + params.join(\"&\");\n \n return this.http.delete<ChatUser4App[]>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n removeUserChat(chatId: string, chatUserId?: string, chatUserExternalId?: string): Observable<ChatUser4App> {\n let param = \"\";\n if (chatUserId) {\n param = \"chatUserId=\" + chatUserId;\n } else {\n param = \"chatUserExternalId=\" + chatUserExternalId;\n }\n \n let url = this.chatUrl + \"chatuser/\" + chatId + \"?\" + param;\n \n return this.http.delete<ChatUser4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n updateUserChat(chatId: string, charUser4AppUpdate: ChatUser4App): Observable<ChatUser4App> {\n \n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.put<ChatUser4App>(url, charUser4AppUpdate,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createUserChat(chatId: string, chatUser4App: ChatUser4App): Observable<ChatUser4App> {\n let url = this.chatUrl + \"chatuser/\" + chatId;\n \n return this.http.post<ChatUser4App>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n createUsersChat(chatId: string, chatUser4App: ChatUser4App[]): Observable<ChatUser4App[]> {\n let url = this.chatUrl + \"chatuser/users/\" + chatId;\n \n return this.http.post<ChatUser4App[]>(url, chatUser4App,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n createChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.post<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n createUpdateChat(chat4app: Chat4App): Observable<Chat4App> {\n let url = this.chatUrl + \"chat\";\n \n return this.http.put<Chat4App>(url, chat4app,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getLastMessageGroup(chatExternalId: string, groupId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessageGroup?chatExternalId=\" + chatExternalId + \"&groupId=\" + groupId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n getLastMessage(chatExternalId: string, chatUserExternalId: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/lastMessage?chatExternalId=\" + chatExternalId + \"&chatUserExternalId=\" + chatUserExternalId;\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n countNotReadMessages(chatUserExternalId: string, chatExternalId?: string, groupId?: string): Observable<ChatUserResponse4App> {\n \n let url = this.chatUrl + \"chatmessage/countNotReadMessages?chatUserExternalId=\" + chatUserExternalId;\n \n if (chatExternalId && chatExternalId.length > 0) {\n url += \"&chatExternalId=\" + chatExternalId;\n }\n \n if (groupId && groupId.length > 0) {\n url += \"&groupId=\" + groupId;\n }\n \n return this.http.get<ChatUserResponse4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n \n \n getChatByExternalId(externalId: string): Observable<Chat4App> {\n \n let url = this.chatUrl + \"chat?externalId=\" + externalId;\n \n return this.http.get<Chat4App>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n listChatByUser(externalUserId: string, userId: string, chatStatus: ChatStatus4App ): Observable<Array< Chat4App>> {\n \n let url = this.chatUrl + \"chat/listChatByUser/?externalUserId=\" + externalUserId \n + \"&userId=\" + userId\n + \"&chatStatus=\" + chatStatus;\n \n return this.http.get<Array<Chat4App>>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n closeChat(chatId: string, chatExternalId: string): Observable<void> {\n \n let url = this.chatUrl ;\n\n if (chatId && chatId.length > 0){\n url+= \"chat?chatId=\" + chatId; \n }\n \n if (chatExternalId && chatExternalId.length > 0){\n url+= \"chat?externalId=\" + chatExternalId; \n }\n \n return this.http.delete<void>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n readMessage(chatMessageId: string, toId?: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/read/\" + chatMessageId;\n \n if (toId && toId.length > 0) {\n url += \"/\" + toId;\n }\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n online(chatId: string): Observable<number> {\n \n let url = this.chatUrl + \"chatmessage/online/\" + chatId ;\n \n return this.http.get<number>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n sendFile(chatId: string, fromId: string, toId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFile/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n \n sendFileGroup(chatId: string, fromId: string, groupId: string, fileToUpload: File): Observable<ChatMessageFile4App> {\n const endpoint = this.chatUrl + \"chatmessage/sendFileGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n const formData: FormData = new FormData();\n formData.append('file', fileToUpload);\n \n return this.http\n .post<ChatMessageFile4App>(endpoint, formData,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n });\n }\n\n translateMessage(chatMessageId: string, languageTarget: string): Observable<Chat4AppTranslate> {\n \n let url = this.chatUrl + \"chatmessage/translate/\" + chatMessageId + \"/\" + languageTarget;\n \n return this.http.get<Chat4AppTranslate>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n startTyping(chatId: string,fromId: string, toId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/startTyping/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n startTypingGroup(chatId: string,fromId: string, groupId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/startTypingGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n stopTyping(chatId: string,fromId: string, toId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/stopTyping/\" + chatId + \"/\" + fromId + \"/\" + toId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n stopTypingGroup(chatId: string,fromId: string, groupId: string): Observable<void> {\n \n let url = this.chatUrl + \"chatmessage/stopTypingGroup/\" + chatId + \"/\" + fromId + \"/\" + groupId;\n \n return this.http.put<void>(url, null,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\n }\n\n \n /* Token */\n getBearerToken(): string {\n \n let ret = \"Bearer \" + window.sessionStorage.getItem(\"chat4AppSessionToken\");\n \n return ret;\n }\n \n \n setTokenChat4app(chat4AppSessionToken: string) {\n \n \n window.sessionStorage.setItem(\"chat4AppSessionToken\", chat4AppSessionToken);\n }\n \n \n /* Connection */\n \n onMessageFirebaseReceived(data: any, chatCallback: IChatCallback) {\n \n \n //alert(\"onMessageReceived connectFirebase\");\n \n if (data.type == \"msg\") {\n \n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n chat4appMessage.notification.body = data.body;\n \n if (data.fileId && data.fileId.length > 0) {\n chat4appMessage.data.fileId = data.fileId;\n chat4appMessage.data.fileName = data.fileName;\n chat4appMessage.data.fileSize = data.fileSize;\n chat4appMessage.data.fileType = data.fileType;\n \n }\n \n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onMessage(chat4appMessage);\n \n } else if ((data.type == \"on\" || data.type == \"off\")) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onOffline(chat4appMessage);\n\n } else if (data.type == \"read\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onRead(chat4appMessage);\n } else if (data.type == \"startTyping\" || data.type == \"stopTyping\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onStartStopTyping(chat4appMessage);\n } else if (data.type == \"new_user\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onNewUser(chat4appMessage);\n } else if (data.type == \"remove_user\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onRemoveUser(chat4appMessage);\n } else if (data.type == \"chat_closed\" ) {\n let chat4appMessage = new Chat4AppMessageReceive();\n chat4appMessage.data.chatId = data.chatId;\n chat4appMessage.data.chatMessageId = data.chatMessageId;\n chat4appMessage.data.externalId = data.externalId;\n chat4appMessage.data.fromId = data.fromId;\n chat4appMessage.data.toId = data.toId;\n chat4appMessage.data.groupId = data.groupId;\n chat4appMessage.data.dateHour = data.dateHour;\n chat4appMessage.data.type = data.type;\n\n let datTmp = new Map<string, string>();\n \n for (let key in data) {\n datTmp.set(key, data[key]);\n }\n \n chat4appMessage.data.all = datTmp;\n \n chatCallback.onChatClosed(chat4appMessage);\n }\n\n \n }\n \n connectWebsocket(chatCallback: IChatCallback, token: string) {\n this.disconnect();\n \n let securityToken = this.getBearerToken();\n \n this.sock = new SockJS(this.chatServer + '/stomp/gkz-stomp-endpoint?token=' + securityToken);\n this.stompClient = Stomp.over(this.sock);\n const that = this;\n\n this.stompClient.debug = function (msg: any) {\n if (this.debug) {\n console.log(msg);\n }\n \n }\n\n let tokenAuth = \"\";\n\n if (securityToken && securityToken.startsWith(\"Bearer \")){\n tokenAuth = securityToken;\n } else {\n tokenAuth = \"Bearer \" + securityToken;\n }\n \n this.stompClient.connect({\"X-Authorization\": tokenAuth}, (frame: any) => {\n //console.log(frame);\n that.timeoutReconnect = 500;\n \n this.stompClient.subscribe('/queue/' + token, (msg: any) => {\n //console.log('mensagem', msg);\n \n if (msg.command == \"MESSAGE\") {\n \n //console.log(msg)\n\n if (!chatCallback.isTokenFirebaseActive()) {\n \n let msgObj = JSON.parse(msg.body);\n \n let datTmp = new Map<string, string>();\n \n for (let key in msgObj.data) {\n datTmp.set(key, msgObj.data[key]);\n }\n \n msgObj.data.all = datTmp;\n \n if (msgObj.data.type == \"msg\") {\n chatCallback.onMessage(msgObj);\n } else if ((msgObj.data.type == \"on\" || msgObj.data.type == \"off\")) {\n chatCallback.onOffline(msgObj);\n } else if (msgObj.data.type == \"read\" ) {\n chatCallback.onRead(msgObj);\n } else if (msgObj.data.type == \"startTyping\" || msgObj.data.type == \"stopTyping\") {\n chatCallback.onStartStopTyping(msgObj);\n } else if (msgObj.data.type == \"new_user\") {\n chatCallback.onNewUser(msgObj);\n } else if (msgObj.data.type == \"remove_user\") {\n chatCallback.onRemoveUser(msgObj);\n } else if (msgObj.data.type == \"chat_closed\") {\n chatCallback.onChatClosed(msgObj);\n }\n }\n\n \n //callback(msg.body);\n // ichatcallback.forEach((iChat)=>{\n // iChat.onMessage(JSON.parse(msg.body) );\n // });\n }\n \n });\n },\n (message: any) => {\n // check message for disconnect\n //console.log(\"Disconnect\");\n \n setTimeout(() => {\n that.timeoutReconnect*=100;\n this.connectWebsocket(chatCallback, token);\n }, that.timeoutReconnect);\n \n });\n \n }\n \n disconnect() {\n// console.log(\"disconnect\")\n try {\n if (this.stompClient) {\n this.stompClient.disconnect();\n }\n \n } catch (e) {\n console.log(e);\n }\n }\n\n convertChat4AppMessageReceiveToChatMessage4App(msg: Chat4AppMessageReceive): ChatMessage4App{\n let message = new ChatMessage4App();\n message.body = msg?.notification?.body;\n message.chatId = msg.data.chatId;\n message.fromId = msg.data.fromId;\n message.toId = msg.data.toId;\n message.groupId = msg.data.groupId;\n message.dateHourIncluded = moment.utc(msg.data.dateHour, \"DD-MM-YYYY hh:mm:ss\").toDate();\n message.id = msg.data.chatMessageId;\n\n if (msg.data.fileId && msg.data.fileId.length > 0) {\n let messageFile = new ChatMessageFile4App();\n \n messageFile.id = msg.data.fileId;\n messageFile.name = msg.data.fileName;\n messageFile.size = msg.data.fileSize;\n messageFile.type = msg.data.fileType;\n\n message.chatMessageFile = messageFile;\n }\n\n if (msg.data.vFileId && msg.data.vFileId.length > 0) {\n let messageFile = new ChatMessageFile4App();\n \n messageFile.id = msg.data.vFileId;\n messageFile.name = msg.data.vFileName;\n messageFile.size = msg.data.vFileSize;\n messageFile.type = msg.data.vFileType;\n\n message.chatVoiceFile = messageFile;\n }\n\n\n return message;\n\n }\n \n }\n \n \n export class Chat4App {\n id: string;\n configId: string;\n externalId: string;\n title: string;\n status: ChatStatus4App;\n users: Array<ChatUser4App>;\n\n meta: Array<ChatMessageMeta4App>;\n \n }\n export class ChatUser4App {\n id: string;\n name: string;\n clientToken: string;\n picturePath: string;\n email: string;\n phoneNumber: string;\n externalId: string;\n meta: Array<ChatMessageMeta4App>;\n status: ChatUserStatus4App;\n }\n export class ChatMessage4App {\n id: string;\n fromId: string;\n toId: string;\n chatId: string;\n title: string;\n body: string;\n meta: Array<ChatMessageMeta4App>;\n groupId: string;\n read: Boolean;\n replyFrom: string;\n dateHourIncluded: Date;\n gToIdRead: string[];\n chatMessageFile: ChatMessageFile4App;\n chatVoiceFile: ChatMessageFile4App;\n }\n export class ChatMessageFile4App {\n id: string;\n name: string;\n type: string;\n size: number;\n fullPath: string;\n }\n export class ChatMessageMeta4App {\n name: string;\n value: string;\n }\n export class Chat4AppMessageReceive {\n data: Chat4AppMessageReceiveData = new Chat4AppMessageReceiveData();\n notification: Chat4AppMessageReceiveNotification = new Chat4AppMessageReceiveNotification();\n token: string;\n }\n export class Chat4AppMessageReceiveData {\n toId: string;\n chatId: string;\n dateHour: string;\n chatMessageId: string;\n externalId: string;\n type: string;\n fromId: string;\n groupId: string;\n fileId: string;\n fileName: string;\n fileSize: number;\n fileType: string;\n vFileId: string;\n vFileName: string;\n vFileSize: number;\n vFileType: string;\n\n all: Map<string, string>;\n }\n export class Chat4AppMessageReceiveNotification {\n body: string;\n }\n \n export class ChatUserResponse4App {\n totalMessages: number;\n chat: Chat4App;\n chatMessage: ChatMessage4App;\n chats: ChatUserResponse4App[];\n }\n export class ChatFilterRequest4App {\n type: ChatFilterType;\n chatExternalId: string;\n chatUserExternalId: string;\n groupId: string;\n }\n export class Chat4AppConfig {\n constructor(public endpoint: string, public debug?: boolean) {\n \n }\n }\n\n export class Chat4AppTranslate {\n text: string;\n translatedText: string;\n originalSourceLanguageCode: string;\n sourceLanguageCode: string;\n targetLanguageCode: string;\n messageId: string;\n }\n\n\n \n export enum ChatStatus4App {\n CREATED = \"CREATED\",\n CLOSED = \"CLOSED\"\n \n }\n export enum ChatUserStatus4App {\n REMOVED = \"REMOVED\"\n \n }\n export enum ChatFilterType {\n COUNT_NOT_READ = 1,\n LAST_MESSAGE = 2\n }\n \n export interface IChatCallback {\n isTokenFirebaseActive(): Boolean;\n onMessage(msg: Chat4AppMessageReceive): void;\n onOffline(msg: Chat4AppMessageReceive): void;\n onRead(msg: Chat4AppMessageReceive): void;\n onStartStopTyping(msg: Chat4AppMessageReceive): void;\n onNewUser(msg: Chat4AppMessageReceive): void;\n onRemoveUser(msg: Chat4AppMessageReceive): void;\n onChatClosed(msg: Chat4AppMessageReceive): void;\n }\n ","import { Component, OnInit } from '@angular/core';\n\n@Component({\n selector: 'lib-chat4app-client-angular',\n template: `\n <p>\n chat4app-client-angular works!\n </p>\n `,\n styles: [\n ]\n})\nexport class Chat4appClientAngularComponent implements OnInit {\n\n constructor() { }\n\n ngOnInit(): void {\n }\n\n}\n","import { NgModule } from '@angular/core';\nimport { Chat4appClientAngularComponent } from './chat4app-client-angular.component';\n\n\n\n@NgModule({\n declarations: [Chat4appClientAngularComponent],\n imports: [\n ],\n exports: [Chat4appClientAngularComponent]\n})\nexport class Chat4appClientAngularModule { }\n"]}
|