chat4app-client-angular 0.0.1 → 0.0.2
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 +467 -0
- package/bundles/chat4app-client-angular.umd.js.map +1 -0
- package/bundles/chat4app-client-angular.umd.min.js +2 -0
- package/bundles/chat4app-client-angular.umd.min.js.map +1 -0
- package/chat4app-client-angular.d.ts +5 -0
- package/chat4app-client-angular.d.ts.map +1 -0
- package/chat4app-client-angular.metadata.json +1 -0
- package/esm2015/chat4app-client-angular.js +5 -0
- package/esm2015/lib/chat4app-client-angular.component.js +18 -0
- package/esm2015/lib/chat4app-client-angular.module.js +12 -0
- package/esm2015/lib/chat4app-client-angular.service.js +357 -0
- package/esm2015/public-api.js +7 -0
- package/fesm2015/chat4app-client-angular.js +395 -0
- package/fesm2015/chat4app-client-angular.js.map +1 -0
- package/lib/chat4app-client-angular.component.d.ts +6 -0
- package/lib/chat4app-client-angular.component.d.ts.map +1 -0
- package/lib/chat4app-client-angular.module.d.ts +3 -0
- package/lib/chat4app-client-angular.module.d.ts.map +1 -0
- package/lib/chat4app-client-angular.service.d.ts +136 -0
- package/lib/chat4app-client-angular.service.d.ts.map +1 -0
- package/package.json +10 -2
- package/{src/public-api.ts → public-api.d.ts} +4 -7
- package/public-api.d.ts.map +1 -0
- package/karma.conf.js +0 -44
- package/ng-package.json +0 -7
- package/src/lib/chat4app-client-angular.component.spec.ts +0 -25
- package/src/lib/chat4app-client-angular.component.ts +0 -20
- package/src/lib/chat4app-client-angular.module.ts +0 -12
- package/src/lib/chat4app-client-angular.service.spec.ts +0 -16
- package/src/lib/chat4app-client-angular.service.ts +0 -556
- package/src/test.ts +0 -26
- package/tsconfig.lib.json +0 -26
- package/tsconfig.lib.prod.json +0 -10
- package/tsconfig.spec.json +0 -17
- package/tslint.json +0 -17
|
@@ -0,0 +1,395 @@
|
|
|
1
|
+
import * as i0 from '@angular/core';
|
|
2
|
+
import { Injectable, Component, NgModule } from '@angular/core';
|
|
3
|
+
import * as Stomp from 'stompjs';
|
|
4
|
+
import * as SockJS from 'sockjs-client';
|
|
5
|
+
import * as i1 from '@angular/common/http';
|
|
6
|
+
import { HttpHeaders, HttpClient } from '@angular/common/http';
|
|
7
|
+
import * as moment from 'moment';
|
|
8
|
+
|
|
9
|
+
class Chat4appClientAngularService {
|
|
10
|
+
constructor(http) {
|
|
11
|
+
this.http = http;
|
|
12
|
+
this.chatServer = "";
|
|
13
|
+
this.chatUrl = "";
|
|
14
|
+
}
|
|
15
|
+
ngOnInit() {
|
|
16
|
+
}
|
|
17
|
+
config(chat4AppConfig) {
|
|
18
|
+
this.chatServer = chat4AppConfig.endpoint;
|
|
19
|
+
this.chatUrl = chat4AppConfig.endpoint + "/api/v1/";
|
|
20
|
+
}
|
|
21
|
+
init(callback, chatCallback, token) {
|
|
22
|
+
if (!this.chatServer || this.chatServer.trim().length == 0) {
|
|
23
|
+
throw new Error("Invalid endpoint");
|
|
24
|
+
}
|
|
25
|
+
this.getTokenChat4app().subscribe((res) => {
|
|
26
|
+
this.setTokenChat4app(res.token);
|
|
27
|
+
if (chatCallback && token) {
|
|
28
|
+
this.connectWebsocket(chatCallback, token);
|
|
29
|
+
}
|
|
30
|
+
callback(res.token);
|
|
31
|
+
});
|
|
32
|
+
}
|
|
33
|
+
getChatUrlDownload(messageFileId) {
|
|
34
|
+
return this.chatUrl + "chatmessage/getFile?messageFileId=" + messageFileId;
|
|
35
|
+
}
|
|
36
|
+
getMessageChat(chatId, fromId, toId) {
|
|
37
|
+
let url = this.chatUrl + "chatmessage/" + chatId + "/" + fromId + "/" + toId;
|
|
38
|
+
return this.http.get(url, {
|
|
39
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
40
|
+
});
|
|
41
|
+
}
|
|
42
|
+
getMessageChatByGrop(chatId, groupId, fromId) {
|
|
43
|
+
let url = this.chatUrl + "chatmessage/byGroup/" + chatId + "/" + groupId + "/" + fromId;
|
|
44
|
+
return this.http.get(url, {
|
|
45
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
46
|
+
});
|
|
47
|
+
}
|
|
48
|
+
addMessageChat(chatMessage4App) {
|
|
49
|
+
let url = this.chatUrl + "chatmessage/" + chatMessage4App.chatId;
|
|
50
|
+
return this.http.post(url, chatMessage4App, {
|
|
51
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
props(chatFilterRequest4App) {
|
|
55
|
+
let url = this.chatUrl + "chatmessage/props";
|
|
56
|
+
return this.http.post(url, chatFilterRequest4App, {
|
|
57
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
removeUsersChat(chatId, chatUsersId, chatUsersExternalId) {
|
|
61
|
+
let params = new Array();
|
|
62
|
+
if (chatUsersId && chatUsersId.length > 0) {
|
|
63
|
+
chatUsersId.forEach(cui => {
|
|
64
|
+
params.push("chatUserId=" + cui);
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
else if (chatUsersExternalId && chatUsersExternalId.length > 0) {
|
|
68
|
+
chatUsersExternalId.forEach(cuei => {
|
|
69
|
+
params.push("chatUserExternalId=" + cuei);
|
|
70
|
+
});
|
|
71
|
+
}
|
|
72
|
+
let url = this.chatUrl + "chatuser/" + chatId + "?" + params.join("&");
|
|
73
|
+
return this.http.delete(url, {
|
|
74
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
75
|
+
});
|
|
76
|
+
}
|
|
77
|
+
removeUserChat(chatId, chatUserId, chatUserExternalId) {
|
|
78
|
+
let param = "";
|
|
79
|
+
if (chatUserId) {
|
|
80
|
+
param = "chatUserId=" + chatUserId;
|
|
81
|
+
}
|
|
82
|
+
else {
|
|
83
|
+
param = "chatUserExternalId=" + chatUserExternalId;
|
|
84
|
+
}
|
|
85
|
+
let url = this.chatUrl + "chatuser/" + chatId + "?" + param;
|
|
86
|
+
return this.http.delete(url, {
|
|
87
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
88
|
+
});
|
|
89
|
+
}
|
|
90
|
+
updateUserChat(chatId, charUser4AppUpdate) {
|
|
91
|
+
let url = this.chatUrl + "chatuser/" + chatId;
|
|
92
|
+
return this.http.put(url, charUser4AppUpdate, {
|
|
93
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
94
|
+
});
|
|
95
|
+
}
|
|
96
|
+
createUserChat(chatId, chatUser4App) {
|
|
97
|
+
let url = this.chatUrl + "chatuser/" + chatId;
|
|
98
|
+
return this.http.post(url, chatUser4App, {
|
|
99
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
100
|
+
});
|
|
101
|
+
}
|
|
102
|
+
createUsersChat(chatId, chatUser4App) {
|
|
103
|
+
let url = this.chatUrl + "chatuser/users/" + chatId;
|
|
104
|
+
return this.http.post(url, chatUser4App, {
|
|
105
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
106
|
+
});
|
|
107
|
+
}
|
|
108
|
+
createChat(chat4app) {
|
|
109
|
+
let url = this.chatUrl + "chat";
|
|
110
|
+
return this.http.post(url, chat4app, {
|
|
111
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
112
|
+
});
|
|
113
|
+
}
|
|
114
|
+
createUpdateChat(chat4app) {
|
|
115
|
+
let url = this.chatUrl + "chat";
|
|
116
|
+
return this.http.put(url, chat4app, {
|
|
117
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
118
|
+
});
|
|
119
|
+
}
|
|
120
|
+
getLastMessageGroup(chatExternalId, groupId) {
|
|
121
|
+
let url = this.chatUrl + "chatmessage/lastMessageGroup?chatExternalId=" + chatExternalId + "&groupId=" + groupId;
|
|
122
|
+
return this.http.get(url, {
|
|
123
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
124
|
+
});
|
|
125
|
+
}
|
|
126
|
+
getLastMessage(chatExternalId, chatUserExternalId) {
|
|
127
|
+
let url = this.chatUrl + "chatmessage/lastMessage?chatExternalId=" + chatExternalId + "&chatUserExternalId=" + chatUserExternalId;
|
|
128
|
+
return this.http.get(url, {
|
|
129
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
130
|
+
});
|
|
131
|
+
}
|
|
132
|
+
countNotReadMessages(chatUserExternalId, chatExternalId, groupId) {
|
|
133
|
+
let url = this.chatUrl + "chatmessage/countNotReadMessages?chatUserExternalId=" + chatUserExternalId;
|
|
134
|
+
if (chatExternalId && chatExternalId.length > 0) {
|
|
135
|
+
url += "&chatExternalId=" + chatExternalId;
|
|
136
|
+
}
|
|
137
|
+
if (groupId && groupId.length > 0) {
|
|
138
|
+
url += "&groupId=" + groupId;
|
|
139
|
+
}
|
|
140
|
+
return this.http.get(url, {
|
|
141
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
142
|
+
});
|
|
143
|
+
}
|
|
144
|
+
getChatByExternalId(externalId) {
|
|
145
|
+
let url = this.chatUrl + "chat?externalId=" + externalId;
|
|
146
|
+
return this.http.get(url, {
|
|
147
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
148
|
+
});
|
|
149
|
+
}
|
|
150
|
+
readMessage(chatMessageId, toId) {
|
|
151
|
+
let url = this.chatUrl + "chatmessage/read/" + chatMessageId;
|
|
152
|
+
if (toId && toId.length > 0) {
|
|
153
|
+
url += "/" + toId;
|
|
154
|
+
}
|
|
155
|
+
return this.http.put(url, null, {
|
|
156
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
157
|
+
});
|
|
158
|
+
}
|
|
159
|
+
online(chatId, chatUserId) {
|
|
160
|
+
let url = this.chatUrl + "chatmessage/online/" + chatId + "/" + chatUserId;
|
|
161
|
+
return this.http.get(url, {
|
|
162
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
163
|
+
});
|
|
164
|
+
}
|
|
165
|
+
sendFile(chatId, fromId, toId, fileToUpload) {
|
|
166
|
+
const endpoint = this.chatUrl + "chatmessage/sendFile/" + chatId + "/" + fromId + "/" + toId;
|
|
167
|
+
const formData = new FormData();
|
|
168
|
+
formData.append('file', fileToUpload);
|
|
169
|
+
return this.http
|
|
170
|
+
.post(endpoint, formData, {
|
|
171
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
172
|
+
});
|
|
173
|
+
}
|
|
174
|
+
sendFileGroup(chatId, fromId, groupId, fileToUpload) {
|
|
175
|
+
const endpoint = this.chatUrl + "chatmessage/sendFileGroup/" + chatId + "/" + fromId + "/" + groupId;
|
|
176
|
+
const formData = new FormData();
|
|
177
|
+
formData.append('file', fileToUpload);
|
|
178
|
+
return this.http
|
|
179
|
+
.post(endpoint, formData, {
|
|
180
|
+
headers: new HttpHeaders().set('Authorization', this.getBearerToken())
|
|
181
|
+
});
|
|
182
|
+
}
|
|
183
|
+
/* Token */
|
|
184
|
+
getBearerToken() {
|
|
185
|
+
let ret = "Bearer " + window.sessionStorage.getItem("chat4AppSessionToken");
|
|
186
|
+
return ret;
|
|
187
|
+
}
|
|
188
|
+
getTokenChat4app() {
|
|
189
|
+
return this.http.post("/rest/secured/chat-helper", null);
|
|
190
|
+
}
|
|
191
|
+
setTokenChat4app(chat4AppSessionToken) {
|
|
192
|
+
window.sessionStorage.setItem("chat4AppSessionToken", chat4AppSessionToken);
|
|
193
|
+
}
|
|
194
|
+
/* Connection */
|
|
195
|
+
onMessageFirebaseReceived(data, chatCallback) {
|
|
196
|
+
//alert("onMessageReceived connectFirebase");
|
|
197
|
+
if (data.type == "msg") {
|
|
198
|
+
let chat4appMessage = new Chat4AppMessageReceive();
|
|
199
|
+
chat4appMessage.data.chatId = data.chatId;
|
|
200
|
+
chat4appMessage.data.chatMessageId = data.chatMessageId;
|
|
201
|
+
chat4appMessage.data.externalId = data.externalId;
|
|
202
|
+
chat4appMessage.data.fromId = data.fromId;
|
|
203
|
+
chat4appMessage.data.toId = data.toId;
|
|
204
|
+
chat4appMessage.data.dateHour = data.dateHour;
|
|
205
|
+
chat4appMessage.data.type = data.type;
|
|
206
|
+
chat4appMessage.notification.body = data.body;
|
|
207
|
+
if (data.fileId && data.fileId.length > 0) {
|
|
208
|
+
chat4appMessage.data.fileId = data.fileId;
|
|
209
|
+
chat4appMessage.data.fileName = data.fileName;
|
|
210
|
+
chat4appMessage.data.fileSize = data.fileSize;
|
|
211
|
+
chat4appMessage.data.fileType = data.fileType;
|
|
212
|
+
}
|
|
213
|
+
let datTmp = new Map();
|
|
214
|
+
for (let key in data) {
|
|
215
|
+
datTmp.set(key, data[key]);
|
|
216
|
+
}
|
|
217
|
+
chat4appMessage.data.all = datTmp;
|
|
218
|
+
chatCallback.onMessage(chat4appMessage);
|
|
219
|
+
}
|
|
220
|
+
else if ((data.type == "on" || data.type == "off")) {
|
|
221
|
+
let chat4appMessage = new Chat4AppMessageReceive();
|
|
222
|
+
chat4appMessage.data.chatId = data.chatId;
|
|
223
|
+
chat4appMessage.data.chatMessageId = data.chatMessageId;
|
|
224
|
+
chat4appMessage.data.externalId = data.externalId;
|
|
225
|
+
chat4appMessage.data.fromId = data.fromId;
|
|
226
|
+
chat4appMessage.data.toId = data.toId;
|
|
227
|
+
chat4appMessage.data.dateHour = data.dateHour;
|
|
228
|
+
chat4appMessage.data.type = data.type;
|
|
229
|
+
let datTmp = new Map();
|
|
230
|
+
for (let key in data) {
|
|
231
|
+
datTmp.set(key, data[key]);
|
|
232
|
+
}
|
|
233
|
+
chat4appMessage.data.all = datTmp;
|
|
234
|
+
chatCallback.onOffline(chat4appMessage);
|
|
235
|
+
}
|
|
236
|
+
}
|
|
237
|
+
connectWebsocket(chatCallback, token) {
|
|
238
|
+
this.disconnect();
|
|
239
|
+
let securityToken = this.getBearerToken();
|
|
240
|
+
this.sock = new SockJS(this.chatServer + '/stomp/gkz-stomp-endpoint?token=' + securityToken);
|
|
241
|
+
this.stompClient = Stomp.over(this.sock);
|
|
242
|
+
this.stompClient.debug = function (msg) {
|
|
243
|
+
//console.log(msg);
|
|
244
|
+
};
|
|
245
|
+
this.stompClient.connect({}, (frame) => {
|
|
246
|
+
//console.log(frame);
|
|
247
|
+
this.stompClient.subscribe('/queue/' + token, (msg) => {
|
|
248
|
+
//console.log('mensagem', msg);
|
|
249
|
+
if (msg.command == "MESSAGE") {
|
|
250
|
+
//console.log(msg)
|
|
251
|
+
let msgObj = JSON.parse(msg.body);
|
|
252
|
+
let datTmp = new Map();
|
|
253
|
+
for (let key in msgObj.data) {
|
|
254
|
+
datTmp.set(key, msgObj.data[key]);
|
|
255
|
+
}
|
|
256
|
+
msgObj.data.all = datTmp;
|
|
257
|
+
if (msgObj.data.type == "msg") {
|
|
258
|
+
chatCallback.onMessage(msgObj);
|
|
259
|
+
}
|
|
260
|
+
else if ((msgObj.data.type == "on" || msgObj.data.type == "off")) {
|
|
261
|
+
chatCallback.onOffline(msgObj);
|
|
262
|
+
}
|
|
263
|
+
//callback(msg.body);
|
|
264
|
+
// ichatcallback.forEach((iChat)=>{
|
|
265
|
+
// iChat.onMessage(JSON.parse(msg.body) );
|
|
266
|
+
// });
|
|
267
|
+
}
|
|
268
|
+
});
|
|
269
|
+
}, (message) => {
|
|
270
|
+
// check message for disconnect
|
|
271
|
+
//console.log("Disconnect");
|
|
272
|
+
setTimeout(() => {
|
|
273
|
+
this.connectWebsocket(chatCallback, token);
|
|
274
|
+
}, 500);
|
|
275
|
+
});
|
|
276
|
+
}
|
|
277
|
+
disconnect() {
|
|
278
|
+
// console.log("disconnect")
|
|
279
|
+
try {
|
|
280
|
+
if (this.stompClient) {
|
|
281
|
+
this.stompClient.disconnect();
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
catch (e) {
|
|
285
|
+
console.log(e);
|
|
286
|
+
}
|
|
287
|
+
}
|
|
288
|
+
convertChat4AppMessageReceiveToChatMessage4App(msg) {
|
|
289
|
+
let message = new ChatMessage4App();
|
|
290
|
+
message.body = msg.notification.body;
|
|
291
|
+
message.chatId = msg.data.chatId;
|
|
292
|
+
message.fromId = msg.data.fromId;
|
|
293
|
+
message.toId = msg.data.toId;
|
|
294
|
+
message.dateHourIncluded = moment.utc(msg.data.dateHour, "DD-MM-YYYY hh:mm:ss").toDate();
|
|
295
|
+
if (msg.data.fileId && msg.data.fileId.length > 0) {
|
|
296
|
+
let messageFile = new ChatMessageFile4App();
|
|
297
|
+
messageFile.id = msg.data.fileId;
|
|
298
|
+
messageFile.name = msg.data.fileName;
|
|
299
|
+
messageFile.size = msg.data.fileSize;
|
|
300
|
+
messageFile.type = msg.data.fileType;
|
|
301
|
+
message.chatMessageFile = messageFile;
|
|
302
|
+
}
|
|
303
|
+
return message;
|
|
304
|
+
}
|
|
305
|
+
}
|
|
306
|
+
Chat4appClientAngularService.ɵprov = i0.ɵɵdefineInjectable({ factory: function Chat4appClientAngularService_Factory() { return new Chat4appClientAngularService(i0.ɵɵinject(i1.HttpClient)); }, token: Chat4appClientAngularService, providedIn: "root" });
|
|
307
|
+
Chat4appClientAngularService.decorators = [
|
|
308
|
+
{ type: Injectable, args: [{
|
|
309
|
+
providedIn: 'root'
|
|
310
|
+
},] }
|
|
311
|
+
];
|
|
312
|
+
Chat4appClientAngularService.ctorParameters = () => [
|
|
313
|
+
{ type: HttpClient }
|
|
314
|
+
];
|
|
315
|
+
class Chat4App {
|
|
316
|
+
}
|
|
317
|
+
class ChatUser4App {
|
|
318
|
+
}
|
|
319
|
+
class ChatMessage4App {
|
|
320
|
+
}
|
|
321
|
+
class ChatMessageFile4App {
|
|
322
|
+
}
|
|
323
|
+
class ChatMessageMeta4App {
|
|
324
|
+
}
|
|
325
|
+
class Chat4AppMessageReceive {
|
|
326
|
+
constructor() {
|
|
327
|
+
this.data = new Chat4AppMessageReceiveData();
|
|
328
|
+
this.notification = new Chat4AppMessageReceiveNotification();
|
|
329
|
+
}
|
|
330
|
+
}
|
|
331
|
+
class Chat4AppMessageReceiveData {
|
|
332
|
+
}
|
|
333
|
+
class Chat4AppMessageReceiveNotification {
|
|
334
|
+
}
|
|
335
|
+
class ChatUserResponse4App {
|
|
336
|
+
}
|
|
337
|
+
class ChatFilterRequest4App {
|
|
338
|
+
}
|
|
339
|
+
class Chat4AppConfig {
|
|
340
|
+
constructor(endpoint) {
|
|
341
|
+
this.endpoint = endpoint;
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
var ChatStatus4App;
|
|
345
|
+
(function (ChatStatus4App) {
|
|
346
|
+
ChatStatus4App["CREATED"] = "CREATED";
|
|
347
|
+
ChatStatus4App["CLOSED"] = "CLOSED";
|
|
348
|
+
})(ChatStatus4App || (ChatStatus4App = {}));
|
|
349
|
+
var ChatUserStatus4App;
|
|
350
|
+
(function (ChatUserStatus4App) {
|
|
351
|
+
ChatUserStatus4App["REMOVED"] = "REMOVED";
|
|
352
|
+
})(ChatUserStatus4App || (ChatUserStatus4App = {}));
|
|
353
|
+
var ChatFilterType;
|
|
354
|
+
(function (ChatFilterType) {
|
|
355
|
+
ChatFilterType[ChatFilterType["COUNT_NOT_READ"] = 1] = "COUNT_NOT_READ";
|
|
356
|
+
ChatFilterType[ChatFilterType["LAST_MESSAGE"] = 2] = "LAST_MESSAGE";
|
|
357
|
+
})(ChatFilterType || (ChatFilterType = {}));
|
|
358
|
+
|
|
359
|
+
class Chat4appClientAngularComponent {
|
|
360
|
+
constructor() { }
|
|
361
|
+
ngOnInit() {
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
Chat4appClientAngularComponent.decorators = [
|
|
365
|
+
{ type: Component, args: [{
|
|
366
|
+
selector: 'lib-chat4app-client-angular',
|
|
367
|
+
template: `
|
|
368
|
+
<p>
|
|
369
|
+
chat4app-client-angular works!
|
|
370
|
+
</p>
|
|
371
|
+
`
|
|
372
|
+
},] }
|
|
373
|
+
];
|
|
374
|
+
Chat4appClientAngularComponent.ctorParameters = () => [];
|
|
375
|
+
|
|
376
|
+
class Chat4appClientAngularModule {
|
|
377
|
+
}
|
|
378
|
+
Chat4appClientAngularModule.decorators = [
|
|
379
|
+
{ type: NgModule, args: [{
|
|
380
|
+
declarations: [Chat4appClientAngularComponent],
|
|
381
|
+
imports: [],
|
|
382
|
+
exports: [Chat4appClientAngularComponent]
|
|
383
|
+
},] }
|
|
384
|
+
];
|
|
385
|
+
|
|
386
|
+
/*
|
|
387
|
+
* Public API Surface of chat4app-client-angular
|
|
388
|
+
*/
|
|
389
|
+
|
|
390
|
+
/**
|
|
391
|
+
* Generated bundle index. Do not edit.
|
|
392
|
+
*/
|
|
393
|
+
|
|
394
|
+
export { Chat4App, Chat4AppConfig, Chat4AppMessageReceive, Chat4AppMessageReceiveData, Chat4AppMessageReceiveNotification, Chat4appClientAngularComponent, Chat4appClientAngularModule, Chat4appClientAngularService, ChatFilterRequest4App, ChatFilterType, ChatMessage4App, ChatMessageFile4App, ChatMessageMeta4App, ChatStatus4App, ChatUser4App, ChatUserResponse4App, ChatUserStatus4App };
|
|
395
|
+
//# sourceMappingURL=chat4app-client-angular.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat4app-client-angular.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 \n sock: any;\n stompClient: any;\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 }\n \n init(callback: any, chatCallback?: IChatCallback, token?: string) {\n\n if (!this.chatServer || this.chatServer.trim().length == 0){\n throw new Error(\"Invalid endpoint\");\n }\n\n this.getTokenChat4app().subscribe((res: any) => {\n this.setTokenChat4app(res.token);\n \n if (chatCallback && token) {\n this.connectWebsocket(chatCallback, token);\n }\n \n callback(res.token);\n })\n }\n \n getChatUrlDownload(messageFileId: string) {\n return this.chatUrl + \"chatmessage/getFile?messageFileId=\" + messageFileId;\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 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, chatUserId: string): Observable<number> {\n \n let url = this.chatUrl + \"chatmessage/online/\" + chatId + \"/\" + chatUserId;\n \n return this.http.get<number>(url,\n {\n headers: new HttpHeaders().set('Authorization', this.getBearerToken())\n })\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 \n /* Token */\n getBearerToken(): string {\n \n let ret = \"Bearer \" + window.sessionStorage.getItem(\"chat4AppSessionToken\");\n \n return ret;\n }\n \n getTokenChat4app() {\n return this.http.post(\"/rest/secured/chat-helper\", null);\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.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.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 }\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 this.stompClient.debug = function (msg: any) {\n //console.log(msg);\n }\n \n this.stompClient.connect({}, (frame: any) => {\n //console.log(frame);\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 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 }\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 this.connectWebsocket(chatCallback, token);\n }, 500);\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.dateHourIncluded = moment.utc(msg.data.dateHour, \"DD-MM-YYYY hh:mm:ss\").toDate();\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 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 }\n export class ChatUser4App {\n id: string;\n name: string;\n clientToken: string;\n picturePath: string;\n email: string;\n externalId: string;\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 chatMessageFile: 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 fileId: string;\n fileName: string;\n fileSize: number;\n fileType: string;\n all: Map<string, string>;\n \n \n \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) {\n \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 onMessage(msg: Chat4AppMessageReceive): void;\n onOffline(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":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat4app-client-angular.component.d.ts","sourceRoot":"","sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.component.ts"],"names":[],"mappings":"AAAA,OAAO,EAAa,MAAM,EAAE,MAAM,eAAe,CAAC;AAElD,qBAUa,8BAA+B,YAAW,MAAM;;IAI3D,QAAQ,IAAI,IAAI;CAGjB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat4app-client-angular.module.d.ts","sourceRoot":"","sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.module.ts"],"names":[],"mappings":"AAKA,qBAMa,2BAA2B;CAAI"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import { OnInit } from '@angular/core';
|
|
2
|
+
import { HttpClient } from '@angular/common/http';
|
|
3
|
+
import { Observable } from 'rxjs';
|
|
4
|
+
export declare class Chat4appClientAngularService implements OnInit {
|
|
5
|
+
private http;
|
|
6
|
+
chatServer: string;
|
|
7
|
+
chatUrl: string;
|
|
8
|
+
sock: any;
|
|
9
|
+
stompClient: any;
|
|
10
|
+
constructor(http: HttpClient);
|
|
11
|
+
ngOnInit(): void;
|
|
12
|
+
config(chat4AppConfig: Chat4AppConfig): void;
|
|
13
|
+
init(callback: any, chatCallback?: IChatCallback, token?: string): void;
|
|
14
|
+
getChatUrlDownload(messageFileId: string): string;
|
|
15
|
+
getMessageChat(chatId: string, fromId: string, toId: string): Observable<Array<ChatMessage4App>>;
|
|
16
|
+
getMessageChatByGrop(chatId: string, groupId: string, fromId: string): Observable<Array<ChatMessage4App>>;
|
|
17
|
+
addMessageChat(chatMessage4App: ChatMessage4App): Observable<ChatMessage4App>;
|
|
18
|
+
props(chatFilterRequest4App: Array<ChatFilterRequest4App>): Observable<ChatUserResponse4App>;
|
|
19
|
+
removeUsersChat(chatId: string, chatUsersId?: string[], chatUsersExternalId?: string[]): Observable<ChatUser4App[]>;
|
|
20
|
+
removeUserChat(chatId: string, chatUserId?: string, chatUserExternalId?: string): Observable<ChatUser4App>;
|
|
21
|
+
updateUserChat(chatId: string, charUser4AppUpdate: ChatUser4App): Observable<ChatUser4App>;
|
|
22
|
+
createUserChat(chatId: string, chatUser4App: ChatUser4App): Observable<ChatUser4App>;
|
|
23
|
+
createUsersChat(chatId: string, chatUser4App: ChatUser4App[]): Observable<ChatUser4App[]>;
|
|
24
|
+
createChat(chat4app: Chat4App): Observable<Chat4App>;
|
|
25
|
+
createUpdateChat(chat4app: Chat4App): Observable<Chat4App>;
|
|
26
|
+
getLastMessageGroup(chatExternalId: string, groupId: string): Observable<ChatUserResponse4App>;
|
|
27
|
+
getLastMessage(chatExternalId: string, chatUserExternalId: string): Observable<ChatUserResponse4App>;
|
|
28
|
+
countNotReadMessages(chatUserExternalId: string, chatExternalId?: string, groupId?: string): Observable<ChatUserResponse4App>;
|
|
29
|
+
getChatByExternalId(externalId: string): Observable<Chat4App>;
|
|
30
|
+
readMessage(chatMessageId: string, toId?: string): Observable<void>;
|
|
31
|
+
online(chatId: string, chatUserId: string): Observable<number>;
|
|
32
|
+
sendFile(chatId: string, fromId: string, toId: string, fileToUpload: File): Observable<ChatMessageFile4App>;
|
|
33
|
+
sendFileGroup(chatId: string, fromId: string, groupId: string, fileToUpload: File): Observable<ChatMessageFile4App>;
|
|
34
|
+
getBearerToken(): string;
|
|
35
|
+
getTokenChat4app(): Observable<Object>;
|
|
36
|
+
setTokenChat4app(chat4AppSessionToken: string): void;
|
|
37
|
+
onMessageFirebaseReceived(data: any, chatCallback: IChatCallback): void;
|
|
38
|
+
connectWebsocket(chatCallback: IChatCallback, token: string): void;
|
|
39
|
+
disconnect(): void;
|
|
40
|
+
convertChat4AppMessageReceiveToChatMessage4App(msg: Chat4AppMessageReceive): ChatMessage4App;
|
|
41
|
+
}
|
|
42
|
+
export declare class Chat4App {
|
|
43
|
+
id: string;
|
|
44
|
+
configId: string;
|
|
45
|
+
externalId: string;
|
|
46
|
+
title: string;
|
|
47
|
+
status: ChatStatus4App;
|
|
48
|
+
users: Array<ChatUser4App>;
|
|
49
|
+
}
|
|
50
|
+
export declare class ChatUser4App {
|
|
51
|
+
id: string;
|
|
52
|
+
name: string;
|
|
53
|
+
clientToken: string;
|
|
54
|
+
picturePath: string;
|
|
55
|
+
email: string;
|
|
56
|
+
externalId: string;
|
|
57
|
+
status: ChatUserStatus4App;
|
|
58
|
+
}
|
|
59
|
+
export declare class ChatMessage4App {
|
|
60
|
+
id: string;
|
|
61
|
+
fromId: string;
|
|
62
|
+
toId: string;
|
|
63
|
+
chatId: string;
|
|
64
|
+
title: string;
|
|
65
|
+
body: string;
|
|
66
|
+
meta: Array<ChatMessageMeta4App>;
|
|
67
|
+
groupId: string;
|
|
68
|
+
read: Boolean;
|
|
69
|
+
dateHourIncluded: Date;
|
|
70
|
+
chatMessageFile: ChatMessageFile4App;
|
|
71
|
+
}
|
|
72
|
+
export declare class ChatMessageFile4App {
|
|
73
|
+
id: string;
|
|
74
|
+
name: string;
|
|
75
|
+
type: string;
|
|
76
|
+
size: number;
|
|
77
|
+
fullPath: string;
|
|
78
|
+
}
|
|
79
|
+
export declare class ChatMessageMeta4App {
|
|
80
|
+
name: string;
|
|
81
|
+
value: string;
|
|
82
|
+
}
|
|
83
|
+
export declare class Chat4AppMessageReceive {
|
|
84
|
+
data: Chat4AppMessageReceiveData;
|
|
85
|
+
notification: Chat4AppMessageReceiveNotification;
|
|
86
|
+
token: string;
|
|
87
|
+
}
|
|
88
|
+
export declare class Chat4AppMessageReceiveData {
|
|
89
|
+
toId: string;
|
|
90
|
+
chatId: string;
|
|
91
|
+
dateHour: string;
|
|
92
|
+
chatMessageId: string;
|
|
93
|
+
externalId: string;
|
|
94
|
+
type: string;
|
|
95
|
+
fromId: string;
|
|
96
|
+
fileId: string;
|
|
97
|
+
fileName: string;
|
|
98
|
+
fileSize: number;
|
|
99
|
+
fileType: string;
|
|
100
|
+
all: Map<string, string>;
|
|
101
|
+
}
|
|
102
|
+
export declare class Chat4AppMessageReceiveNotification {
|
|
103
|
+
body: string;
|
|
104
|
+
}
|
|
105
|
+
export declare class ChatUserResponse4App {
|
|
106
|
+
totalMessages: number;
|
|
107
|
+
chat: Chat4App;
|
|
108
|
+
chatMessage: ChatMessage4App;
|
|
109
|
+
chats: ChatUserResponse4App[];
|
|
110
|
+
}
|
|
111
|
+
export declare class ChatFilterRequest4App {
|
|
112
|
+
type: ChatFilterType;
|
|
113
|
+
chatExternalId: string;
|
|
114
|
+
chatUserExternalId: string;
|
|
115
|
+
groupId: string;
|
|
116
|
+
}
|
|
117
|
+
export declare class Chat4AppConfig {
|
|
118
|
+
endpoint: string;
|
|
119
|
+
constructor(endpoint: string);
|
|
120
|
+
}
|
|
121
|
+
export declare enum ChatStatus4App {
|
|
122
|
+
CREATED = "CREATED",
|
|
123
|
+
CLOSED = "CLOSED"
|
|
124
|
+
}
|
|
125
|
+
export declare enum ChatUserStatus4App {
|
|
126
|
+
REMOVED = "REMOVED"
|
|
127
|
+
}
|
|
128
|
+
export declare enum ChatFilterType {
|
|
129
|
+
COUNT_NOT_READ = 1,
|
|
130
|
+
LAST_MESSAGE = 2
|
|
131
|
+
}
|
|
132
|
+
export interface IChatCallback {
|
|
133
|
+
onMessage(msg: Chat4AppMessageReceive): void;
|
|
134
|
+
onOffline(msg: Chat4AppMessageReceive): void;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=chat4app-client-angular.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chat4app-client-angular.service.d.ts","sourceRoot":"","sources":["../../../projects/chat4app-client-angular/src/lib/chat4app-client-angular.service.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,11 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "chat4app-client-angular",
|
|
3
|
-
"version": "0.0.
|
|
3
|
+
"version": "0.0.2",
|
|
4
4
|
"peerDependencies": {
|
|
5
5
|
"@angular/common": "^11.1.1",
|
|
6
6
|
"@angular/core": "^11.1.1"
|
|
7
7
|
},
|
|
8
8
|
"dependencies": {
|
|
9
9
|
"tslib": "^2.0.0"
|
|
10
|
-
}
|
|
10
|
+
},
|
|
11
|
+
"main": "bundles/chat4app-client-angular.umd.js",
|
|
12
|
+
"module": "fesm2015/chat4app-client-angular.js",
|
|
13
|
+
"es2015": "fesm2015/chat4app-client-angular.js",
|
|
14
|
+
"esm2015": "esm2015/chat4app-client-angular.js",
|
|
15
|
+
"fesm2015": "fesm2015/chat4app-client-angular.js",
|
|
16
|
+
"typings": "chat4app-client-angular.d.ts",
|
|
17
|
+
"metadata": "chat4app-client-angular.metadata.json",
|
|
18
|
+
"sideEffects": false
|
|
11
19
|
}
|