@chat21/chat21-web-widget 5.0.56-rc.1 → 5.0.56-rc.3
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/.github/workflows/build.yml +1 -0
- package/CHANGELOG.md +13 -0
- package/angular.json +6 -7
- package/package.json +5 -4
- package/src/app/app.component.html +1 -11
- package/src/app/app.component.scss +12 -13
- package/src/app/app.component.spec.ts +0 -2
- package/src/app/app.component.ts +29 -35
- package/src/app/app.module.ts +4 -5
- package/src/app/component/conversation-detail/conversation/conversation.component.html +1 -10
- package/src/app/component/conversation-detail/conversation/conversation.component.scss +5 -428
- package/src/app/component/conversation-detail/conversation/conversation.component.ts +23 -25
- package/src/app/component/conversation-detail/conversation-content/conversation-content.component.html +4 -63
- package/src/app/component/conversation-detail/conversation-content/conversation-content.component.scss +11 -81
- package/src/app/component/conversation-detail/conversation-content/conversation-content.component.spec.ts +0 -3
- package/src/app/component/conversation-detail/conversation-content/conversation-content.component.ts +6 -6
- package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.html +7 -32
- package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.scss +11 -11
- package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.ts +8 -8
- package/src/app/component/conversation-detail/conversation-header/conversation-header.component.html +4 -25
- package/src/app/component/conversation-detail/conversation-header/conversation-header.component.scss +5 -5
- package/src/app/component/conversation-detail/conversation-header/conversation-header.component.ts +4 -88
- package/src/app/component/conversation-detail/conversation-internal-frame/conversation-internal-frame.component.html +7 -16
- package/src/app/component/conversation-detail/conversation-internal-frame/conversation-internal-frame.component.ts +2 -26
- package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.html +1 -11
- package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.scss +5 -5
- package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.ts +2 -19
- package/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.html +10 -42
- package/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.scss +1 -2
- package/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.ts +2 -3
- package/src/app/component/form/form-builder/form-builder.component.html +0 -1
- package/src/app/component/form/form-builder/form-builder.component.scss +1 -1
- package/src/app/component/form/form-builder/form-builder.component.ts +4 -5
- package/src/app/component/form/inputs/form-checkbox/form-checkbox.component.scss +1 -2
- package/src/app/component/form/inputs/form-checkbox/form-checkbox.component.ts +2 -3
- package/src/app/component/form/inputs/form-label/form-label.component.ts +0 -1
- package/src/app/component/form/inputs/form-text/form-text.component.scss +3 -13
- package/src/app/component/form/inputs/form-text/form-text.component.ts +1 -2
- package/src/app/component/form/inputs/form-textarea/form-textarea.component.html +0 -13
- package/src/app/component/form/inputs/form-textarea/form-textarea.component.scss +4 -4
- package/src/app/component/form/inputs/form-textarea/form-textarea.component.ts +0 -10
- package/src/app/component/form/prechat-form/prechat-form.component.html +0 -2
- package/src/app/component/form/prechat-form/prechat-form.component.scss +2 -2
- package/src/app/component/form/prechat-form/prechat-form.component.ts +2 -2
- package/src/app/component/home/home.component.scss +7 -7
- package/src/app/component/home/home.component.ts +1 -4
- package/src/app/component/home-conversations/home-conversations.component.scss +7 -7
- package/src/app/component/home-conversations/home-conversations.component.ts +9 -12
- package/src/app/component/last-message/last-message.component.scss +4 -4
- package/src/app/component/last-message/last-message.component.ts +4 -7
- package/src/app/component/launcher-button/launcher-button.component.ts +3 -3
- package/src/app/component/list-all-conversations/list-all-conversations.component.scss +2 -2
- package/src/app/component/list-all-conversations/list-all-conversations.component.ts +3 -3
- package/src/app/component/list-conversations/list-conversations.component.html +1 -1
- package/src/app/component/list-conversations/list-conversations.component.scss +3 -3
- package/src/app/component/list-conversations/list-conversations.component.ts +3 -6
- package/src/app/component/menu-options/menu-options.component.html +1 -8
- package/src/app/component/menu-options/menu-options.component.scss +4 -4
- package/src/app/component/menu-options/menu-options.component.ts +1 -1
- package/src/app/component/message/bubble-message/bubble-message.component.html +1 -2
- package/src/app/component/message/bubble-message/bubble-message.component.scss +3 -3
- package/src/app/component/message/bubble-message/bubble-message.component.spec.ts +0 -2
- package/src/app/component/message/bubble-message/bubble-message.component.ts +1 -14
- package/src/app/component/message/buttons/action-button/action-button.component.scss +6 -6
- package/src/app/component/message/buttons/link-button/link-button.component.scss +7 -7
- package/src/app/component/message/buttons/text-button/text-button.component.scss +8 -8
- package/src/app/component/message/frame/frame.component.scss +1 -1
- package/src/app/component/message/frame/frame.component.ts +1 -1
- package/src/app/component/message/html/html.component.scss +4 -4
- package/src/app/component/message/html/html.component.ts +1 -2
- package/src/app/component/message/image/image.component.scss +1 -1
- package/src/app/component/message/image/image.component.ts +2 -3
- package/src/app/component/message/info-message/info-message.component.html +2 -1
- package/src/app/component/message/info-message/info-message.component.scss +6 -6
- package/src/app/component/message/like-unlike/like-unlike.component.scss +1 -1
- package/src/app/component/message/like-unlike/like-unlike.component.ts +2 -2
- package/src/app/component/message/text/text.component.scss +1 -1
- package/src/app/component/message/text/text.component.ts +1 -1
- package/src/app/component/message-attachment/message-attachment.component.ts +1 -1
- package/src/app/component/selection-department/selection-department.component.scss +6 -6
- package/src/app/component/selection-department/selection-department.component.ts +2 -2
- package/src/app/component/send-button/send-button.component.ts +1 -2
- package/src/app/component/star-rating-widget/star-rating-widget.component.scss +6 -6
- package/src/app/component/star-rating-widget/star-rating-widget.component.ts +2 -2
- package/src/app/pipe/date-ago.pipe.spec.ts +8 -0
- package/src/app/pipe/date-ago.pipe.ts +42 -0
- package/src/app/providers/app-config.service.ts +0 -1
- package/src/app/providers/global-settings.service.ts +3 -31
- package/src/app/providers/star-rating-widget.service.ts +4 -4
- package/src/app/providers/translator.service.ts +3 -11
- package/src/app/providers/waiting.service.ts +2 -2
- package/src/app/sass/_variables.scss +29 -26
- package/src/app/utils/globals.ts +4 -34
- package/src/app/utils/rules.ts +5 -7
- package/src/app/utils/utils.ts +47 -37
- package/src/assets/i18n/en.json +0 -2
- package/src/assets/i18n/es.json +0 -2
- package/src/assets/i18n/fr.json +0 -2
- package/src/assets/i18n/it.json +0 -2
- package/src/assets/twp/chatbot-panel.html +4 -0
- package/src/assets/twp/index.html +2 -57
- package/src/chat21-core/providers/firebase/firebase-archivedconversations-handler.ts +15 -23
- package/src/chat21-core/providers/firebase/firebase-auth-service.ts +21 -20
- package/src/chat21-core/providers/firebase/firebase-conversation-handler.ts +15 -13
- package/src/chat21-core/providers/firebase/firebase-conversations-handler.ts +16 -23
- package/src/chat21-core/providers/firebase/firebase-groups-handler.ts +15 -11
- package/src/chat21-core/providers/firebase/firebase-image-repo.ts +13 -4
- package/src/chat21-core/providers/firebase/firebase-init-service.ts +3 -3
- package/src/chat21-core/providers/firebase/firebase-notifications.ts +11 -9
- package/src/chat21-core/providers/firebase/firebase-presence.service.ts +14 -11
- package/src/chat21-core/providers/firebase/firebase-typing.service.ts +17 -11
- package/src/chat21-core/providers/firebase/firebase-upload.service.ts +12 -9
- package/src/chat21-core/providers/localSessionStorage.ts +2 -15
- package/src/chat21-core/providers/mqtt/chat-service.ts +12 -2
- package/src/chat21-core/providers/mqtt/mqtt-archivedconversations-handler.ts +1 -34
- package/src/chat21-core/providers/mqtt/mqtt-auth-service.ts +4 -6
- package/src/chat21-core/providers/mqtt/mqtt-conversations-handler.ts +1 -11
- package/src/chat21-core/providers/mqtt/mqtt-notifications.ts +13 -7
- package/src/chat21-core/providers/mqtt/mqtt-presence.service.ts +3 -3
- package/src/chat21-core/providers/mqtt/mqtt-typing.service.ts +3 -3
- package/src/chat21-core/providers/tiledesk/tiledesk-auth.service.ts +0 -1
- package/src/chat21-core/utils/user-typing/user-typing.component.scss +3 -3
- package/src/chat21-core/utils/utils.ts +46 -118
- package/src/launch.js +42 -12
- package/src/models/message.ts +0 -23
- package/src/test-new.html +0 -6
- package/src/app/providers/settings-saver.service.spec.ts +0 -17
- package/src/app/providers/settings-saver.service.ts +0 -56
- package/src/app/providers/storage.service.spec.ts +0 -16
- package/src/app/providers/storage.service.ts +0 -220
- package/src/app/utils/translations.ts +0 -122
|
@@ -2,11 +2,7 @@ import { Injectable } from '@angular/core';
|
|
|
2
2
|
import { BehaviorSubject } from 'rxjs';
|
|
3
3
|
|
|
4
4
|
// firebase
|
|
5
|
-
import firebase from 'firebase/app';
|
|
6
|
-
import 'firebase/messaging';
|
|
7
|
-
import 'firebase/database';
|
|
8
|
-
import 'firebase/auth';
|
|
9
|
-
import 'firebase/storage';
|
|
5
|
+
// import firebase from 'firebase/app';
|
|
10
6
|
|
|
11
7
|
// models
|
|
12
8
|
import { ConversationModel } from '../../models/conversation';
|
|
@@ -20,8 +16,7 @@ import { LoggerInstance } from '../logger/loggerInstance';
|
|
|
20
16
|
|
|
21
17
|
// utils
|
|
22
18
|
import { avatarPlaceholder, getColorBck } from '../../utils/utils-user';
|
|
23
|
-
import { compareValues,
|
|
24
|
-
|
|
19
|
+
import { compareValues, conversationsPathForUserId, searchIndexInArrayForUid, isGroup } from '../../utils/utils';
|
|
25
20
|
|
|
26
21
|
|
|
27
22
|
|
|
@@ -48,13 +43,16 @@ export class FirebaseConversationsHandler extends ConversationsHandlerService {
|
|
|
48
43
|
private translationMap: Map<string, string>;
|
|
49
44
|
private isConversationClosingMap: Map<string, boolean>;
|
|
50
45
|
private logger:LoggerService = LoggerInstance.getInstance()
|
|
51
|
-
private ref: firebase.database.Query;
|
|
46
|
+
// private ref: firebase.database.Query;
|
|
52
47
|
private BASE_URL: string;
|
|
53
48
|
private BASE_URL_DATABASE: string;
|
|
54
49
|
// private audio: any;
|
|
55
50
|
// private setTimeoutSound: any;
|
|
56
51
|
private subscribe: any
|
|
57
52
|
|
|
53
|
+
private firebase: any;
|
|
54
|
+
private ref: any;
|
|
55
|
+
|
|
58
56
|
constructor(
|
|
59
57
|
public http: HttpClient,
|
|
60
58
|
public appConfig: AppConfigService
|
|
@@ -65,7 +63,7 @@ export class FirebaseConversationsHandler extends ConversationsHandlerService {
|
|
|
65
63
|
/**
|
|
66
64
|
* inizializzo conversations handler
|
|
67
65
|
*/
|
|
68
|
-
initialize(tenant: string,userId: string,translationMap: Map<string, string>) {
|
|
66
|
+
async initialize(tenant: string,userId: string,translationMap: Map<string, string>) {
|
|
69
67
|
this.tenant = tenant;
|
|
70
68
|
this.loggedUserId = userId;
|
|
71
69
|
this.translationMap = translationMap;
|
|
@@ -75,6 +73,11 @@ export class FirebaseConversationsHandler extends ConversationsHandlerService {
|
|
|
75
73
|
//this.getConversationsFromStorage();
|
|
76
74
|
this.BASE_URL = this.appConfig.getConfig().firebaseConfig.chat21ApiUrl;
|
|
77
75
|
this.BASE_URL_DATABASE = this.appConfig.getConfig().firebaseConfig.databaseURL;
|
|
76
|
+
|
|
77
|
+
const { default: firebase} = await import("firebase/app");
|
|
78
|
+
await Promise.all([import("firebase/database"), import("firebase/auth")]);
|
|
79
|
+
this.firebase = firebase
|
|
80
|
+
this.ref = this.firebase.database['Query'];
|
|
78
81
|
}
|
|
79
82
|
|
|
80
83
|
/**
|
|
@@ -115,7 +118,7 @@ export class FirebaseConversationsHandler extends ConversationsHandlerService {
|
|
|
115
118
|
const that = this;
|
|
116
119
|
const urlNodeFirebase = conversationsPathForUserId(this.tenant, this.loggedUserId);
|
|
117
120
|
this.logger.debug('[FIREBASEConversationsHandlerSERVICE] SubscribeToConversations conversations::ACTIVE urlNodeFirebase', urlNodeFirebase)
|
|
118
|
-
this.ref = firebase.database().ref(urlNodeFirebase).orderByChild('timestamp').limitToLast(200);
|
|
121
|
+
this.ref = this.firebase.database().ref(urlNodeFirebase).orderByChild('timestamp').limitToLast(200);
|
|
119
122
|
this.ref.on('child_changed', (childSnapshot) => {
|
|
120
123
|
that.changed(childSnapshot);
|
|
121
124
|
});
|
|
@@ -192,7 +195,7 @@ export class FirebaseConversationsHandler extends ConversationsHandlerService {
|
|
|
192
195
|
const urlUpdate = conversationsPathForUserId(this.tenant, this.loggedUserId) + '/' + conversationrecipient;
|
|
193
196
|
const update = {};
|
|
194
197
|
update['/is_new'] = false;
|
|
195
|
-
firebase.database().ref(urlUpdate).update(update);
|
|
198
|
+
this.firebase.database().ref(urlUpdate).update(update);
|
|
196
199
|
}
|
|
197
200
|
|
|
198
201
|
/**
|
|
@@ -281,7 +284,7 @@ export class FirebaseConversationsHandler extends ConversationsHandlerService {
|
|
|
281
284
|
|
|
282
285
|
|
|
283
286
|
getFirebaseToken(callback:(error: any, idToken: string)=>void) {
|
|
284
|
-
const firebase_currentUser = firebase.auth().currentUser;
|
|
287
|
+
const firebase_currentUser = this.firebase.auth().currentUser;
|
|
285
288
|
this.logger.debug(' // firebase current user ', firebase_currentUser);
|
|
286
289
|
if (firebase_currentUser) {
|
|
287
290
|
firebase_currentUser.getIdToken(/* forceRefresh */ true)
|
|
@@ -310,7 +313,7 @@ export class FirebaseConversationsHandler extends ConversationsHandlerService {
|
|
|
310
313
|
// const urlNodeFirebase = '/apps/' + this.tenant + '/users/' + this.loggedUserId + '/conversations/' + conversationId;
|
|
311
314
|
const urlNodeFirebase = conversationsPathForUserId(this.tenant, this.loggedUserId) // + '/' + conversationId;
|
|
312
315
|
this.logger.debug('[FIREBASEConversationsHandlerSERVICE] conversationDetail urlNodeFirebase *****', urlNodeFirebase)
|
|
313
|
-
const firebaseMessages = firebase.database().ref(urlNodeFirebase);
|
|
316
|
+
const firebaseMessages = this.firebase.database().ref(urlNodeFirebase);
|
|
314
317
|
// if(this.subscribe){
|
|
315
318
|
// this.logger.log('[FIREBASEConversationsHandlerSERVICE] getConversationDetail ALREADY SUBSCRIBED')
|
|
316
319
|
// return;
|
|
@@ -565,16 +568,6 @@ export class FirebaseConversationsHandler extends ConversationsHandlerService {
|
|
|
565
568
|
return status;
|
|
566
569
|
}
|
|
567
570
|
|
|
568
|
-
/**
|
|
569
|
-
* calcolo il tempo trascorso da ora al timestamp passato
|
|
570
|
-
* @param timestamp
|
|
571
|
-
*/
|
|
572
|
-
private getTimeLastMessage(timestamp: string) {
|
|
573
|
-
const timestampNumber = parseInt(timestamp, 10) / 1000;
|
|
574
|
-
const time = getFromNow(timestampNumber);
|
|
575
|
-
return time;
|
|
576
|
-
}
|
|
577
|
-
|
|
578
571
|
/**
|
|
579
572
|
* check if the conversations is valid or not
|
|
580
573
|
*/
|
|
@@ -3,11 +3,7 @@ import { Injectable } from '@angular/core';
|
|
|
3
3
|
import { BehaviorSubject, Observable, Subject } from 'rxjs';
|
|
4
4
|
|
|
5
5
|
// firebase
|
|
6
|
-
import firebase from 'firebase/app';
|
|
7
|
-
import 'firebase/messaging';
|
|
8
|
-
import 'firebase/database';
|
|
9
|
-
import 'firebase/auth';
|
|
10
|
-
import 'firebase/storage';
|
|
6
|
+
// import firebase from 'firebase/app';
|
|
11
7
|
|
|
12
8
|
// models
|
|
13
9
|
import { ConversationModel } from '../../models/conversation';
|
|
@@ -40,13 +36,16 @@ export class FirebaseGroupsHandler extends GroupsHandlerService {
|
|
|
40
36
|
// private params
|
|
41
37
|
private tenant: string;
|
|
42
38
|
private loggedUserId: string;
|
|
43
|
-
private ref: firebase.database.Query;
|
|
39
|
+
// private ref: firebase.database.Query;
|
|
44
40
|
private BASE_URL: string;
|
|
45
41
|
private logger:LoggerService = LoggerInstance.getInstance()
|
|
46
42
|
|
|
47
43
|
// private audio: any;
|
|
48
44
|
// private setTimeoutSound: any;
|
|
49
45
|
|
|
46
|
+
private firebase: any;
|
|
47
|
+
private ref: any;
|
|
48
|
+
|
|
50
49
|
constructor(
|
|
51
50
|
public http: HttpClient,
|
|
52
51
|
public appConfig: AppConfigService
|
|
@@ -57,11 +56,16 @@ export class FirebaseGroupsHandler extends GroupsHandlerService {
|
|
|
57
56
|
/**
|
|
58
57
|
* inizializzo groups handler
|
|
59
58
|
*/
|
|
60
|
-
initialize(tenant: string, loggedUserId: string) {
|
|
59
|
+
async initialize(tenant: string, loggedUserId: string) {
|
|
61
60
|
this.tenant = tenant;
|
|
62
61
|
this.loggedUserId = loggedUserId;
|
|
63
62
|
this.BASE_URL = this.appConfig.getConfig().firebaseConfig.chat21ApiUrl;
|
|
64
63
|
this.logger.debug('[FIREBASEGroupHandlerSERVICE] initialize', this.tenant, this.loggedUserId);
|
|
64
|
+
|
|
65
|
+
const { default: firebase} = await import("firebase/app");
|
|
66
|
+
await Promise.all([import("firebase/database")]);
|
|
67
|
+
this.firebase = firebase
|
|
68
|
+
this.ref = this.firebase.database['Query'];
|
|
65
69
|
}
|
|
66
70
|
|
|
67
71
|
/**
|
|
@@ -74,7 +78,7 @@ export class FirebaseGroupsHandler extends GroupsHandlerService {
|
|
|
74
78
|
const that = this;
|
|
75
79
|
const urlNodeGroups = '/apps/' + this.tenant + '/users/' + this.loggedUserId + '/groups';
|
|
76
80
|
this.logger.debug('[FIREBASEGroupHandlerSERVICE] connect -------> groups::', urlNodeGroups)
|
|
77
|
-
this.ref = firebase.database().ref(urlNodeGroups)
|
|
81
|
+
this.ref = this.firebase.database().ref(urlNodeGroups)
|
|
78
82
|
this.ref.on('child_added', (childSnapshot) => {
|
|
79
83
|
that.logger.debug('[FIREBASEGroupHandlerSERVICE] child_added ------->', childSnapshot.val())
|
|
80
84
|
// that.added(childSnapshot);
|
|
@@ -97,7 +101,7 @@ export class FirebaseGroupsHandler extends GroupsHandlerService {
|
|
|
97
101
|
getDetail(groupId: string, callback?: (group: GroupModel)=>void): Promise<GroupModel>{
|
|
98
102
|
const urlNodeGroupById = '/apps/' + this.tenant + '/users/' + this.loggedUserId + '/groups/' + groupId;
|
|
99
103
|
this.logger.debug('[FIREBASEGroupHandlerSERVICE] getDetail -------> urlNodeGroupById::', urlNodeGroupById)
|
|
100
|
-
const ref = firebase.database().ref(urlNodeGroupById)
|
|
104
|
+
const ref = this.firebase.database().ref(urlNodeGroupById)
|
|
101
105
|
return new Promise((resolve) => {
|
|
102
106
|
ref.off()
|
|
103
107
|
ref.on('value', (childSnapshot) => {
|
|
@@ -118,7 +122,7 @@ export class FirebaseGroupsHandler extends GroupsHandlerService {
|
|
|
118
122
|
let SgroupDetail = new Subject<GroupModel>();
|
|
119
123
|
const urlNodeGroupById = '/apps/' + this.tenant + '/users/' + this.loggedUserId + '/groups/' + groupId;
|
|
120
124
|
this.logger.log('[FIREBASEGroupHandlerSERVICE] onGroupChange -------> urlNodeGroupById::', urlNodeGroupById)
|
|
121
|
-
const ref = firebase.database().ref(urlNodeGroupById)
|
|
125
|
+
const ref = this.firebase.database().ref(urlNodeGroupById)
|
|
122
126
|
ref.off()
|
|
123
127
|
ref.on('value', (childSnapshot) => {
|
|
124
128
|
// this.groupValue(childSnapshot)
|
|
@@ -270,7 +274,7 @@ export class FirebaseGroupsHandler extends GroupsHandlerService {
|
|
|
270
274
|
|
|
271
275
|
// // -------->>>> PRIVATE METHOD SECTION START <<<<---------------//
|
|
272
276
|
private getFirebaseToken(callback) {
|
|
273
|
-
const firebase_currentUser = firebase.auth().currentUser;
|
|
277
|
+
const firebase_currentUser = this.firebase.auth().currentUser;
|
|
274
278
|
this.logger.debug('[FIREBASEGroupHandlerSERVICE] // firebase current user ', firebase_currentUser);
|
|
275
279
|
if (firebase_currentUser) {
|
|
276
280
|
const that = this;
|
|
@@ -6,8 +6,8 @@ import { environment } from '../../../environments/environment';
|
|
|
6
6
|
import { ImageRepoService } from '../abstract/image-repo.service';
|
|
7
7
|
|
|
8
8
|
// firebase
|
|
9
|
-
import firebase from 'firebase/app';
|
|
10
|
-
import 'firebase/storage';
|
|
9
|
+
// import firebase from 'firebase/app';
|
|
10
|
+
// import 'firebase/storage';
|
|
11
11
|
|
|
12
12
|
// @Injectable({ providedIn: 'root' })
|
|
13
13
|
@Injectable()
|
|
@@ -16,9 +16,12 @@ export class FirebaseImageRepoService extends ImageRepoService {
|
|
|
16
16
|
// private params
|
|
17
17
|
private urlStorageBucket = environment.firebaseConfig.storageBucket + '/o/profiles%2F';
|
|
18
18
|
private baseImageURL: string;
|
|
19
|
+
|
|
20
|
+
private firebase: any
|
|
19
21
|
|
|
20
22
|
constructor(public http: HttpClient) {
|
|
21
23
|
super();
|
|
24
|
+
this.initialize()
|
|
22
25
|
}
|
|
23
26
|
|
|
24
27
|
/**
|
|
@@ -34,8 +37,7 @@ export class FirebaseImageRepoService extends ImageRepoService {
|
|
|
34
37
|
}
|
|
35
38
|
const firebase_photo = '/o/profiles%2F'+ sender_id + '%2Fphoto.jpg?alt=media'
|
|
36
39
|
const firebase_thumbnail = '/o/profiles%2F'+ sender_id + '%2Fthumb_photo.jpg?alt=media'
|
|
37
|
-
const imageurl = this.baseImageURL + firebase.storage().ref().bucket + firebase_thumbnail
|
|
38
|
-
|
|
40
|
+
const imageurl = this.baseImageURL + this.firebase.storage().ref().bucket + firebase_thumbnail
|
|
39
41
|
return imageurl;
|
|
40
42
|
}
|
|
41
43
|
|
|
@@ -47,4 +49,11 @@ export class FirebaseImageRepoService extends ImageRepoService {
|
|
|
47
49
|
callback(false)
|
|
48
50
|
})
|
|
49
51
|
}
|
|
52
|
+
|
|
53
|
+
|
|
54
|
+
private async initialize(){
|
|
55
|
+
const { default: firebase} = await import("firebase/app");
|
|
56
|
+
await Promise.all([import("firebase/storage")]);
|
|
57
|
+
this.firebase = firebase
|
|
58
|
+
}
|
|
50
59
|
}
|
|
@@ -1,8 +1,7 @@
|
|
|
1
1
|
import { Injectable } from '@angular/core';
|
|
2
2
|
|
|
3
3
|
// firebase
|
|
4
|
-
import firebase from 'firebase/app';
|
|
5
|
-
import 'firebase/app';
|
|
4
|
+
// import firebase from 'firebase/app';
|
|
6
5
|
/*
|
|
7
6
|
Generated class for the AuthService provider.
|
|
8
7
|
See https://angular.io/docs/ts/latest/guide/dependency-injection.html
|
|
@@ -19,7 +18,8 @@ export class FirebaseInitService {
|
|
|
19
18
|
constructor() {
|
|
20
19
|
}
|
|
21
20
|
|
|
22
|
-
public static initFirebase(firebaseConfig: any) {
|
|
21
|
+
public static async initFirebase(firebaseConfig: any) {
|
|
22
|
+
const { default: firebase} = await import("firebase/app");
|
|
23
23
|
if(!FirebaseInitService.firebaseInit){
|
|
24
24
|
if (!firebaseConfig || firebaseConfig.apiKey === 'CHANGEIT') {
|
|
25
25
|
throw new Error('Firebase config is not defined. Please create your widget-config.json. See the Chat21-Web_widget Installation Page');
|
|
@@ -4,9 +4,7 @@ import { Injectable } from '@angular/core';
|
|
|
4
4
|
import { NotificationsService } from '../abstract/notifications.service';
|
|
5
5
|
|
|
6
6
|
// firebase
|
|
7
|
-
import firebase from 'firebase/app';
|
|
8
|
-
import 'firebase/messaging';
|
|
9
|
-
import 'firebase/auth';
|
|
7
|
+
// import firebase from 'firebase/app';
|
|
10
8
|
|
|
11
9
|
import { LoggerService } from '../abstract/logger.service';
|
|
12
10
|
|
|
@@ -19,16 +17,20 @@ export class FirebaseNotifications extends NotificationsService {
|
|
|
19
17
|
private userId: string;
|
|
20
18
|
private tenant: string;
|
|
21
19
|
private vapidkey: string;
|
|
20
|
+
private firebase: any;
|
|
21
|
+
|
|
22
22
|
private logger: LoggerService = LoggerInstance.getInstance();
|
|
23
23
|
constructor() {
|
|
24
24
|
super();
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
initialize(tenant: string, vapId: string)
|
|
27
|
+
async initialize(tenant: string, vapId: string) {
|
|
28
28
|
this.tenant = tenant
|
|
29
29
|
this.vapidkey = vapId
|
|
30
30
|
this.logger.debug('[FIREBASE-NOTIFICATIONS] initialize - tenant ', this.tenant)
|
|
31
31
|
|
|
32
|
+
const { default: firebase} = await import("firebase/app");
|
|
33
|
+
this.firebase = firebase
|
|
32
34
|
|
|
33
35
|
if (!('serviceWorker' in navigator)) {
|
|
34
36
|
// , disable or hide UI.
|
|
@@ -70,8 +72,8 @@ export class FirebaseNotifications extends NotificationsService {
|
|
|
70
72
|
|
|
71
73
|
|
|
72
74
|
|
|
73
|
-
if (firebase.messaging.isSupported()) {
|
|
74
|
-
const messaging = firebase.messaging();
|
|
75
|
+
if (this.firebase.messaging.isSupported()) {
|
|
76
|
+
const messaging = this.firebase.messaging();
|
|
75
77
|
// messaging.requestPermission()
|
|
76
78
|
Notification.requestPermission().then((permission) => {
|
|
77
79
|
if (permission === 'granted') {
|
|
@@ -94,7 +96,7 @@ export class FirebaseNotifications extends NotificationsService {
|
|
|
94
96
|
|
|
95
97
|
removeNotificationsInstance(callback: (string) => void) {
|
|
96
98
|
var self = this;
|
|
97
|
-
firebase.auth().onAuthStateChanged(function (user) {
|
|
99
|
+
this.firebase.auth().onAuthStateChanged(function (user) {
|
|
98
100
|
if (user) {
|
|
99
101
|
self.logger.debug('[FIREBASE-NOTIFICATIONS] - User is signed in. ', user)
|
|
100
102
|
|
|
@@ -112,7 +114,7 @@ export class FirebaseNotifications extends NotificationsService {
|
|
|
112
114
|
let connectionsRefURL = '';
|
|
113
115
|
if (connectionsRefinstancesId) {
|
|
114
116
|
connectionsRefURL = connectionsRefinstancesId + this.FCMcurrentToken;
|
|
115
|
-
const connectionsRef = firebase.database().ref().child(connectionsRefURL);
|
|
117
|
+
const connectionsRef = this.firebase.database().ref().child(connectionsRefURL);
|
|
116
118
|
this.logger.log('[FIREBASE-NOTIFICATIONS] >>>> connectionsRef ', connectionsRef);
|
|
117
119
|
this.logger.log('[FIREBASE-NOTIFICATIONS] >>>> connectionsRef url ', connectionsRefURL);
|
|
118
120
|
connectionsRef.off()
|
|
@@ -154,7 +156,7 @@ export class FirebaseNotifications extends NotificationsService {
|
|
|
154
156
|
updates[connectionsRefinstancesId + connection] = device_model;
|
|
155
157
|
|
|
156
158
|
this.logger.log('[FIREBASE-NOTIFICATIONS] >>>> getPermission > updateToken in DB', updates);
|
|
157
|
-
firebase.database().ref().update(updates)
|
|
159
|
+
this.firebase.database().ref().update(updates)
|
|
158
160
|
}
|
|
159
161
|
// ********** PRIVATE METHOD - END ****************//
|
|
160
162
|
|
|
@@ -3,12 +3,9 @@ import { Injectable } from '@angular/core';
|
|
|
3
3
|
import { BehaviorSubject, Observable } from 'rxjs';
|
|
4
4
|
|
|
5
5
|
// firebase
|
|
6
|
-
import firebase from 'firebase/app';
|
|
7
|
-
import 'firebase/messaging';
|
|
8
|
-
import 'firebase/database';
|
|
6
|
+
// import firebase from 'firebase/app';
|
|
9
7
|
|
|
10
8
|
// services
|
|
11
|
-
// import { EventsService } from '../events-service';
|
|
12
9
|
import { PresenceService } from '../abstract/presence.service';
|
|
13
10
|
import { LoggerService } from '../abstract/logger.service';
|
|
14
11
|
import { LoggerInstance } from '../logger/loggerInstance';
|
|
@@ -33,6 +30,9 @@ export class FirebasePresenceService extends PresenceService {
|
|
|
33
30
|
private keyConnectionRef: any;
|
|
34
31
|
private logger: LoggerService = LoggerInstance.getInstance();
|
|
35
32
|
online_member = []
|
|
33
|
+
|
|
34
|
+
private firebase: any;
|
|
35
|
+
|
|
36
36
|
constructor() {
|
|
37
37
|
super();
|
|
38
38
|
}
|
|
@@ -40,11 +40,14 @@ export class FirebasePresenceService extends PresenceService {
|
|
|
40
40
|
/**
|
|
41
41
|
*
|
|
42
42
|
*/
|
|
43
|
-
public initialize(tenant: string) {
|
|
43
|
+
public async initialize(tenant: string) {
|
|
44
44
|
// this.tenant = this.getTenant();
|
|
45
45
|
this.tenant = tenant;
|
|
46
46
|
this.logger.debug('[FIREBASEPresenceSERVICE] initialize this.tenant', this.tenant);
|
|
47
47
|
this.urlNodePresence = '/apps/' + this.tenant + '/presence/';
|
|
48
|
+
|
|
49
|
+
const { default: firebase} = await import("firebase/app");
|
|
50
|
+
this.firebase = firebase
|
|
48
51
|
}
|
|
49
52
|
|
|
50
53
|
/**
|
|
@@ -76,7 +79,7 @@ export class FirebasePresenceService extends PresenceService {
|
|
|
76
79
|
let local_BSIsOnline = new BehaviorSubject<any>(null);
|
|
77
80
|
const urlNodeConnections = this.urlNodePresence + userid + '/connections';
|
|
78
81
|
this.logger.debug('[FIREBASEPresenceSERVICE] userIsOnline: ', urlNodeConnections);
|
|
79
|
-
const connectionsRef = firebase.database().ref().child(urlNodeConnections);
|
|
82
|
+
const connectionsRef = this.firebase.database().ref().child(urlNodeConnections);
|
|
80
83
|
connectionsRef.off()
|
|
81
84
|
connectionsRef.on('value', (child) => {
|
|
82
85
|
that.logger.debug('[FIREBASEPresenceSERVICE] CONVERSATION-DETAIL group detail userIsOnline id user', userid, '- child.val: ', child.val());
|
|
@@ -126,7 +129,7 @@ export class FirebasePresenceService extends PresenceService {
|
|
|
126
129
|
this.onlineConnectionsRef = this.referenceOnlineForUser(userid);
|
|
127
130
|
this.lastOnlineConnectionsRef = this.referenceLastOnlineForUser(userid);
|
|
128
131
|
const connectedRefURL = '/.info/connected';
|
|
129
|
-
const conn = firebase.database().ref(connectedRefURL);
|
|
132
|
+
const conn = this.firebase.database().ref(connectedRefURL);
|
|
130
133
|
conn.on('value', (dataSnapshot) => {
|
|
131
134
|
this.logger.debug('[FIREBASEPresenceSERVICE] self.deviceConnectionRef: ', dataSnapshot.val());
|
|
132
135
|
if (dataSnapshot.val()) {
|
|
@@ -163,9 +166,9 @@ export class FirebasePresenceService extends PresenceService {
|
|
|
163
166
|
* usata in setupMyPresence
|
|
164
167
|
* @param userid
|
|
165
168
|
*/
|
|
166
|
-
private referenceLastOnlineForUser(userid: string):
|
|
169
|
+
private referenceLastOnlineForUser(userid: string): any {
|
|
167
170
|
const urlNodeLastOnLine = this.urlNodePresence + userid + '/lastOnline';
|
|
168
|
-
const lastOnlineRef = firebase.database().ref().child(urlNodeLastOnLine);
|
|
171
|
+
const lastOnlineRef = this.firebase.database().ref().child(urlNodeLastOnLine);
|
|
169
172
|
return lastOnlineRef;
|
|
170
173
|
}
|
|
171
174
|
|
|
@@ -174,9 +177,9 @@ export class FirebasePresenceService extends PresenceService {
|
|
|
174
177
|
* usata in setupMyPresence
|
|
175
178
|
* @param userid
|
|
176
179
|
*/
|
|
177
|
-
private referenceOnlineForUser(userid: string):
|
|
180
|
+
private referenceOnlineForUser(userid: string): any {
|
|
178
181
|
const urlNodeConnections = this.urlNodePresence + userid + '/connections';
|
|
179
|
-
const connectionsRef = firebase.database().ref().child(urlNodeConnections);
|
|
182
|
+
const connectionsRef = this.firebase.database().ref().child(urlNodeConnections);
|
|
180
183
|
return connectionsRef;
|
|
181
184
|
}
|
|
182
185
|
|
|
@@ -3,9 +3,7 @@ import { Injectable } from '@angular/core';
|
|
|
3
3
|
import { BehaviorSubject } from 'rxjs';
|
|
4
4
|
|
|
5
5
|
// firebase
|
|
6
|
-
import firebase from 'firebase/app';
|
|
7
|
-
import 'firebase/messaging';
|
|
8
|
-
import 'firebase/database';
|
|
6
|
+
// import firebase from 'firebase/app';
|
|
9
7
|
|
|
10
8
|
// services
|
|
11
9
|
import { TypingService } from '../abstract/typing.service';
|
|
@@ -37,18 +35,26 @@ export class FirebaseTypingService extends TypingService {
|
|
|
37
35
|
private setTimeoutWritingMessages: any;
|
|
38
36
|
private tenant: string;
|
|
39
37
|
private logger: LoggerService = LoggerInstance.getInstance();
|
|
40
|
-
private ref: firebase.database.Query;
|
|
38
|
+
// private ref: firebase.database.Query;
|
|
39
|
+
|
|
40
|
+
private firebase: any;
|
|
41
|
+
private ref: any;
|
|
41
42
|
|
|
42
43
|
constructor() {
|
|
43
44
|
super();
|
|
44
45
|
}
|
|
45
46
|
|
|
46
47
|
/** */
|
|
47
|
-
public initialize(tenant: string) {
|
|
48
|
-
// this.tenant = this.getTenant();
|
|
48
|
+
public async initialize(tenant: string) {
|
|
49
49
|
this.tenant = tenant;
|
|
50
50
|
this.logger.debug('[FIREBASETypingSERVICE] initialize - tenant ', this.tenant)
|
|
51
51
|
this.urlNodeTypings = '/apps/' + this.tenant + '/typings/';
|
|
52
|
+
|
|
53
|
+
const { default: firebase} = await import("firebase/app");
|
|
54
|
+
await Promise.all([import("firebase/database")]);
|
|
55
|
+
this.firebase = firebase
|
|
56
|
+
this.ref = this.firebase.database['Query'];
|
|
57
|
+
|
|
52
58
|
}
|
|
53
59
|
|
|
54
60
|
/** */
|
|
@@ -59,11 +65,11 @@ export class FirebaseTypingService extends TypingService {
|
|
|
59
65
|
urlTyping = this.urlNodeTypings + idCurrentUser + '/' + idConversation;
|
|
60
66
|
}
|
|
61
67
|
this.logger.debug('[FIREBASETypingSERVICE] urlTyping: ', urlTyping);
|
|
62
|
-
this.ref = firebase.database().ref(urlTyping);
|
|
68
|
+
this.ref = this.firebase.database().ref(urlTyping);
|
|
63
69
|
this.ref.on('child_changed', (childSnapshot) => {
|
|
64
70
|
const precence: TypingModel = childSnapshot.val();
|
|
65
|
-
|
|
66
|
-
|
|
71
|
+
that.logger.debug('[FIREBASETypingSERVICE] child_changed: ', precence);
|
|
72
|
+
that.BSIsTyping.next({uid: idConversation, uidUserTypingNow: precence.uid, nameUserTypingNow: precence.name, waitTime: TIME_TYPING_MESSAGE});
|
|
67
73
|
});
|
|
68
74
|
}
|
|
69
75
|
|
|
@@ -74,9 +80,9 @@ export class FirebaseTypingService extends TypingService {
|
|
|
74
80
|
this.setTimeoutWritingMessages = setTimeout(() => {
|
|
75
81
|
const urlTyping = this.urlNodeTypings + idConversation + '/' + recipientId;// + '/user';
|
|
76
82
|
this.logger.debug('[FIREBASETypingSERVICE] setWritingMessages:', urlTyping, userFullname);
|
|
77
|
-
const timestampData = firebase.database.ServerValue.TIMESTAMP;
|
|
83
|
+
const timestampData = that.firebase.database.ServerValue.TIMESTAMP;
|
|
78
84
|
const precence = new TypingModel(recipientId, timestampData, message, userFullname);
|
|
79
|
-
firebase.database().ref(urlTyping).set(precence, ( error ) => {
|
|
85
|
+
that.firebase.database().ref(urlTyping).set(precence, ( error ) => {
|
|
80
86
|
if (error) {
|
|
81
87
|
this.logger.error('[FIREBASETypingSERVICE] setTyping error', error);
|
|
82
88
|
} else {
|
|
@@ -3,11 +3,8 @@ import { Injectable } from '@angular/core';
|
|
|
3
3
|
import { BehaviorSubject } from 'rxjs';
|
|
4
4
|
|
|
5
5
|
// firebase
|
|
6
|
-
import firebase from 'firebase/app';
|
|
7
|
-
import 'firebase/
|
|
8
|
-
import 'firebase/database';
|
|
9
|
-
import 'firebase/firestore';
|
|
10
|
-
import 'firebase/storage';
|
|
6
|
+
// import firebase from 'firebase/app';
|
|
7
|
+
// import 'firebase/storage';
|
|
11
8
|
|
|
12
9
|
// services
|
|
13
10
|
import { UploadService } from '../abstract/upload.service';
|
|
@@ -28,13 +25,19 @@ export class FirebaseUploadService extends UploadService {
|
|
|
28
25
|
|
|
29
26
|
//private
|
|
30
27
|
private logger:LoggerService = LoggerInstance.getInstance()
|
|
28
|
+
private firebase: any;
|
|
31
29
|
|
|
32
30
|
constructor() {
|
|
33
31
|
super();
|
|
34
32
|
}
|
|
35
33
|
|
|
36
|
-
public initialize() {
|
|
34
|
+
public async initialize() {
|
|
37
35
|
this.logger.debug('[FIREBASEUploadSERVICE] initialize');
|
|
36
|
+
|
|
37
|
+
const { default: firebase} = await import("firebase/app");
|
|
38
|
+
await Promise.all([import("firebase/storage")]);
|
|
39
|
+
this.firebase = firebase
|
|
40
|
+
|
|
38
41
|
}
|
|
39
42
|
|
|
40
43
|
public upload(userId: string, upload: UploadModel): Promise<any> {
|
|
@@ -44,7 +47,7 @@ export class FirebaseUploadService extends UploadService {
|
|
|
44
47
|
this.logger.debug('[FIREBASEUploadSERVICE] pushUpload ', urlImagesNodeFirebase, upload.file);
|
|
45
48
|
|
|
46
49
|
// Create a root reference
|
|
47
|
-
const storageRef = firebase.storage().ref();
|
|
50
|
+
const storageRef = this.firebase.storage().ref();
|
|
48
51
|
this.logger.debug('[FIREBASEUploadSERVICE] storageRef', storageRef);
|
|
49
52
|
|
|
50
53
|
// Create a reference to 'mountains.jpg'
|
|
@@ -70,11 +73,11 @@ export class FirebaseUploadService extends UploadService {
|
|
|
70
73
|
that.BSStateUpload.next({ upload: progress, type: upload.file.type });
|
|
71
74
|
|
|
72
75
|
switch (snapshot.state) {
|
|
73
|
-
case firebase.storage.TaskState.PAUSED: // or 'paused'
|
|
76
|
+
case that.firebase.storage.TaskState.PAUSED: // or 'paused'
|
|
74
77
|
that.logger.debug('[FIREBASEUploadSERVICE] Upload is paused');
|
|
75
78
|
|
|
76
79
|
break;
|
|
77
|
-
case firebase.storage.TaskState.RUNNING: // or 'running'
|
|
80
|
+
case that.firebase.storage.TaskState.RUNNING: // or 'running'
|
|
78
81
|
that.logger.debug('[FIREBASEUploadSERVICE] Upload is running');
|
|
79
82
|
|
|
80
83
|
break;
|
|
@@ -26,8 +26,6 @@ export class LocalSessionStorage extends AppStorageService{
|
|
|
26
26
|
getItem(key: string) {
|
|
27
27
|
let prefix;
|
|
28
28
|
try {
|
|
29
|
-
// const sv = 'sv' + environment.shemaVersion + '_';
|
|
30
|
-
// prefix = prefix + sv;
|
|
31
29
|
prefix = this.storagePrefix + '_';
|
|
32
30
|
} catch (e) {
|
|
33
31
|
this.logger.error('[LocalSessionStorage] getItem >Error :', e);
|
|
@@ -41,11 +39,8 @@ export class LocalSessionStorage extends AppStorageService{
|
|
|
41
39
|
* @param value
|
|
42
40
|
*/
|
|
43
41
|
setItem(key: string, value: any): void {
|
|
44
|
-
// this.removeItem(key);
|
|
45
42
|
let prefix;
|
|
46
43
|
try {
|
|
47
|
-
// const sv = 'sv' + environment.shemaVersion + '_';
|
|
48
|
-
// prefix = prefix + sv;
|
|
49
44
|
prefix = this.storagePrefix + '_';
|
|
50
45
|
} catch (e) {
|
|
51
46
|
this.logger.error('[LocalSessionStorage] setItem > Error :', e);
|
|
@@ -61,8 +56,6 @@ export class LocalSessionStorage extends AppStorageService{
|
|
|
61
56
|
getItemWithoutProjectID(key: string) {
|
|
62
57
|
let prefix;
|
|
63
58
|
try {
|
|
64
|
-
// const sv = 'sv' + environment.shemaVersion + '_';
|
|
65
|
-
// prefix = prefix + sv;
|
|
66
59
|
prefix = this.storagePrefix + '_';
|
|
67
60
|
} catch (e) {
|
|
68
61
|
this.logger.error('[LocalSessionStorage] getItemWithoutProjectID > Error :', e);
|
|
@@ -80,8 +73,6 @@ export class LocalSessionStorage extends AppStorageService{
|
|
|
80
73
|
this.removeItem(key);
|
|
81
74
|
let prefix = STORAGE_PREFIX;
|
|
82
75
|
try {
|
|
83
|
-
// const sv = 'sv' + environment.shemaVersion + '_';
|
|
84
|
-
// prefix = prefix + sv;
|
|
85
76
|
prefix = this.storagePrefix + '_';
|
|
86
77
|
} catch (e) {
|
|
87
78
|
this.logger.error('[LocalSessionStorage] setItemWithoutProjectID > Error :', e);
|
|
@@ -93,8 +84,6 @@ export class LocalSessionStorage extends AppStorageService{
|
|
|
93
84
|
removeItem(key: string): void {
|
|
94
85
|
let prefix;
|
|
95
86
|
try {
|
|
96
|
-
// const sv = 'sv' + environment.shemaVersion + '_';
|
|
97
|
-
// prefix = prefix + sv;
|
|
98
87
|
prefix = this.storagePrefix + '_';
|
|
99
88
|
} catch (e) {
|
|
100
89
|
this.logger.error('[LocalSessionStorage] removeItem > Error :', e);
|
|
@@ -106,8 +95,6 @@ export class LocalSessionStorage extends AppStorageService{
|
|
|
106
95
|
clear(): void {
|
|
107
96
|
let prefix;
|
|
108
97
|
try {
|
|
109
|
-
// const sv = 'sv' + environment.shemaVersion + '_';
|
|
110
|
-
// prefix = prefix + sv;
|
|
111
98
|
prefix = this.storagePrefix + '_';
|
|
112
99
|
} catch (e) {
|
|
113
100
|
this.logger.error('[LocalSessionStorage] clear > Error :', e);
|
|
@@ -121,9 +108,9 @@ export class LocalSessionStorage extends AppStorageService{
|
|
|
121
108
|
}
|
|
122
109
|
}
|
|
123
110
|
|
|
124
|
-
for (
|
|
111
|
+
for (const key of arrayKey) {
|
|
125
112
|
// localStorage.removeItem(arrayKey[i]);
|
|
126
|
-
this.removeItemForKey(
|
|
113
|
+
this.removeItemForKey(key);
|
|
127
114
|
}
|
|
128
115
|
|
|
129
116
|
}
|
|
@@ -14,7 +14,7 @@ import { Chat21Client } from '../../../assets/js/chat21client';
|
|
|
14
14
|
*/
|
|
15
15
|
export class Chat21Service {
|
|
16
16
|
|
|
17
|
-
public
|
|
17
|
+
public _chatClient: any;
|
|
18
18
|
private _config: any;
|
|
19
19
|
|
|
20
20
|
constructor() {
|
|
@@ -28,11 +28,21 @@ export class Chat21Service {
|
|
|
28
28
|
return this._config;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
public get chatClient(){
|
|
32
|
+
return this._chatClient
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
public set chatClient(chatClient){
|
|
36
|
+
this._chatClient =chatClient
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
public initChat() {
|
|
40
|
+
|
|
32
41
|
if (!this._config || this._config.appId === 'CHANGEIT') {
|
|
33
42
|
throw new Error('chat21Config is not defined. Please setup your environment');
|
|
34
43
|
}
|
|
35
44
|
if (!this.chatClient) {
|
|
45
|
+
// const { Chat21Client} = await import("../../../assets/js/chat21client");
|
|
36
46
|
this.chatClient = new Chat21Client(this._config);
|
|
37
47
|
} else {
|
|
38
48
|
console.log("Did you try again to create a Chat21Client istance?");
|