@chat21/chat21-ionic 3.0.79-rc.1 → 3.0.79-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.
Files changed (83) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/README.md +1 -0
  3. package/env.sample +1 -0
  4. package/package.json +1 -1
  5. package/src/app/app.component.html +7 -1
  6. package/src/app/app.component.scss +16 -1
  7. package/src/app/app.component.ts +182 -11
  8. package/src/app/app.module.ts +3 -1
  9. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +37 -12
  10. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +55 -50
  11. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.ts +24 -0
  12. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.html +0 -18
  13. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.scss +1 -10
  14. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +1 -22
  15. package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.scss +1 -3
  16. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +1 -0
  17. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +1 -2
  18. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +8 -5
  19. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +6 -5
  20. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +3 -82
  21. package/src/app/components/conversations-list/header-conversations-list/header-conversations-list.component.html +1 -1
  22. package/src/app/components/navbar/navbar.component.html +103 -0
  23. package/src/app/components/navbar/navbar.component.scss +249 -0
  24. package/src/app/components/{conversation-detail/bubble-my-message/bubble-my-message.component.spec.ts → navbar/navbar.component.spec.ts} +6 -6
  25. package/src/app/components/navbar/navbar.component.ts +189 -0
  26. package/src/app/components/project-item/project-item.component.ts +11 -1
  27. package/src/app/pages/contacts-directory/contacts-directory.page.scss +1 -1
  28. package/src/app/pages/conversation-detail/conversation-detail.module.ts +0 -8
  29. package/src/app/pages/conversation-detail/conversation-detail.page.ts +71 -2
  30. package/src/app/pages/conversations-list/conversations-list.page.scss +1 -0
  31. package/src/app/pages/conversations-list/conversations-list.page.ts +51 -22
  32. package/src/app/pages/create-canned-response/create-canned-response.page.ts +13 -13
  33. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +1 -1
  34. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +42 -0
  35. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +1 -0
  36. package/src/app/services/canned-responses/canned-responses.service.ts +26 -0
  37. package/src/app/services/projects/projects.service.spec.ts +12 -0
  38. package/src/app/services/projects/projects.service.ts +43 -0
  39. package/src/app/services/tiledesk/tiledesk.service.ts +1 -25
  40. package/src/app/shared/shared.module.ts +3 -12
  41. package/src/assets/i18n/ar.json +10 -2
  42. package/src/assets/i18n/az.json +9 -1
  43. package/src/assets/i18n/de.json +10 -2
  44. package/src/assets/i18n/en.json +10 -2
  45. package/src/assets/i18n/es.json +10 -2
  46. package/src/assets/i18n/fr.json +9 -1
  47. package/src/assets/i18n/it.json +9 -1
  48. package/src/assets/i18n/kk.json +10 -2
  49. package/src/assets/i18n/pt.json +10 -2
  50. package/src/assets/i18n/ru.json +9 -1
  51. package/src/assets/i18n/sr.json +277 -269
  52. package/src/assets/i18n/sv.json +10 -2
  53. package/src/assets/i18n/tr.json +10 -2
  54. package/src/assets/i18n/uk.json +10 -2
  55. package/src/assets/i18n/uz.json +9 -1
  56. package/src/assets/sounds/wheep-wheep.mp3 +0 -0
  57. package/src/chat-config-mqtt-localhost.json +1 -0
  58. package/src/chat-config-native-mqtt.json +1 -0
  59. package/src/chat-config-pre.json +2 -1
  60. package/src/chat-config-template.json +1 -0
  61. package/src/chat-config.json +1 -0
  62. package/src/chat21-core/models/conversation.ts +0 -1
  63. package/src/chat21-core/models/projects.ts +27 -0
  64. package/src/chat21-core/utils/constants.ts +1 -1
  65. package/src/chat21-core/utils/convertRequestToConversation.ts +41 -0
  66. package/src/global.scss +1 -13
  67. package/src/index.html +6 -47
  68. package/src/variables.scss +5 -2
  69. package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.html +0 -3
  70. package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.scss +0 -21
  71. package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.spec.ts +0 -24
  72. package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.ts +0 -14
  73. package/src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component.html +0 -54
  74. package/src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component.scss +0 -98
  75. package/src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component.ts +0 -84
  76. package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.html +0 -30
  77. package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.scss +0 -83
  78. package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.spec.ts +0 -24
  79. package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.ts +0 -68
  80. package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.html +0 -3
  81. package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.scss +0 -10
  82. package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.spec.ts +0 -24
  83. package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.ts +0 -14
@@ -1,6 +1,6 @@
1
1
  import { AppStorageService } from 'src/chat21-core/providers/abstract/app-storage.service';
2
2
  import { ArchivedConversationsHandlerService } from 'src/chat21-core/providers/abstract/archivedconversations-handler.service'
3
- import { Component, OnInit, ViewChild } from '@angular/core'
3
+ import { Component, isDevMode, OnInit, ViewChild } from '@angular/core'
4
4
  import { IonContent, ModalController } from '@ionic/angular'
5
5
  import { ActivatedRoute, Router, NavigationExtras } from '@angular/router'
6
6
  // config
@@ -47,6 +47,7 @@ import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance'
47
47
  import { NetworkService } from 'src/app/services/network-service/network.service'
48
48
  import { Subject } from 'rxjs'
49
49
  import { takeUntil } from 'rxjs/operators'
50
+ import { TYPE_DIRECT } from 'src/chat21-core/utils/constants';
50
51
 
51
52
  @Component({
52
53
  selector: 'app-conversations-list',
@@ -479,6 +480,7 @@ export class ConversationListPage implements OnInit {
479
480
  if (conversation) {
480
481
  this.onImageLoaded(conversation)
481
482
  this.onConversationLoaded(conversation)
483
+ !isDevMode() && conversation.is_new? this.segmentNewConversationAdded(conversation) : null;
482
484
  }
483
485
  })
484
486
 
@@ -515,27 +517,6 @@ export class ConversationListPage implements OnInit {
515
517
  this.logger.log('[CONVS-LIST-PAGE] - subscribeLoggedUserLogout uidConvSelected ',this.uidConvSelected)
516
518
  }
517
519
 
518
- /**
519
- * ::: subscribeChangedConversationSelected :::
520
- * evento richiamato quando si seleziona un utente nell'elenco degli user
521
- * apro dettaglio conversazione
522
- */
523
- // --------------------------------
524
- // !!!!!! IS USED? ?????
525
- // ------------------------------
526
- subscribeChangedConversationSelected = (user: UserModel, type: string) => {
527
- this.logger.log('[CONVS-LIST-PAGE] ************** subscribeUidConvSelectedChanged navigateByUrl',user, type)
528
- this.uidConvSelected = user.uid
529
- this.logger.log('[CONVS-LIST-PAGE] ************** uidConvSelected ', this.uidConvSelected)
530
- // this.conversationsHandlerService.uidConvSelected = user.uid;
531
- const conversationSelected = this.conversations.find( (item) => item.uid === this.uidConvSelected)
532
- if (conversationSelected) {
533
- this.logger.log('[CONVS-LIST-PAGE] --> uidConvSelected: ',this.conversationSelected, this.uidConvSelected)
534
- this.conversationSelected = conversationSelected
535
- }
536
- // this.router.navigateByUrl('conversation-detail/' + user.uid + '?conversationWithFullname=' + user.fullname);
537
- }
538
-
539
520
  /**
540
521
  * ::: subscribeProfileInfoButtonClicked :::
541
522
  * evento richiamato quando si seleziona bottone profile-info-modal
@@ -990,6 +971,54 @@ export class ConversationListPage implements OnInit {
990
971
  return indexes
991
972
  }
992
973
 
974
+ private segmentNewConversationAdded(conversation: ConversationModel){
975
+ let user = this.tiledeskAuthService.getCurrentUser()
976
+ try {
977
+ window['analytics'].page("Chat List Conversations Page, Conversation Added", {});
978
+ } catch (err) {
979
+ this.logger.error('Event:Conversation Added [page] error', err);
980
+ }
981
+
982
+ try {
983
+ window['analytics'].identify(user.uid, {
984
+ name: user.firstname + ' ' + user.lastname,
985
+ email: user.email,
986
+ logins: 5,
987
+ });
988
+ } catch (err) {
989
+ this.logger.error('Event:Conversation Added [identify] error', err);
990
+ }
991
+
992
+ try {
993
+ window['analytics'].track('Conversation Added', {
994
+ "username": user.firstname + ' ' + user.lastname,
995
+ "userId": user.uid,
996
+ "conversation_id": conversation.uid,
997
+ "channel_type": conversation.channel_type,
998
+ "conversation_with": conversation.conversation_with,
999
+ "conversation_with_fullname": conversation.conversation_with_fullname,
1000
+ "department_name":(conversation.channel_type !== TYPE_DIRECT)? conversation.attributes.departmentName: null,
1001
+ "department_id":(conversation.channel_type !== TYPE_DIRECT)? conversation.attributes.departmentId: null,
1002
+ },
1003
+ {
1004
+ "context": {
1005
+ "groupId": (conversation.channel_type !== TYPE_DIRECT)? conversation.attributes.projectId: null
1006
+ }
1007
+ });
1008
+ } catch (err) {
1009
+ this.logger.error('Event:Conversation Added [track] error', err);
1010
+ }
1011
+
1012
+ try {
1013
+ window['analytics'].group(conversation.attributes.projectId, {
1014
+ name: (conversation.attributes.project_name)? conversation.attributes.project_name : null,
1015
+ // plan: projectProfileName,
1016
+ });
1017
+ } catch (err) {
1018
+ this.logger.error('Event:Conversation Added [group] error', err);
1019
+ }
1020
+ }
1021
+
993
1022
  // ------------------------------------------------------------------
994
1023
  // !!! Not used methods !!!
995
1024
  // ------------------------------------------------------------------
@@ -1,3 +1,4 @@
1
+ import { CannedResponsesService } from 'src/app/services/canned-responses/canned-responses.service';
1
2
  import { Component, Input, OnInit } from '@angular/core';
2
3
  import { ModalController } from '@ionic/angular';
3
4
  import { Validators, FormBuilder, FormGroup, FormControl } from '@angular/forms';
@@ -38,6 +39,7 @@ export class CreateCannedResponsePage implements OnInit {
38
39
  private translate: TranslateService,
39
40
  public tiledeskAuthService: TiledeskAuthService,
40
41
  public tiledeskService: TiledeskService,
42
+ public cannedResponsesService: CannedResponsesService,
41
43
  private menu: MenuController,
42
44
  public events: EventsService,
43
45
  private route: ActivatedRoute,
@@ -181,19 +183,17 @@ export class CreateCannedResponsePage implements OnInit {
181
183
  this.logger.log('[CREATE-CANNED-RES] - CREATE CANNED RESP - MSG ', canned_response_message);
182
184
  this.logger.log('[CREATE-CANNED-RES] - CREATE CANNED RESP - TITLE ', canned_response_title);
183
185
 
184
- this.tiledeskService.createCannedResponse(canned_response_message.trim(), canned_response_title.trim(), this.prjctID, this.tiledeskToken)
185
- .subscribe((responses: any) => {
186
- this.logger.log('[CREATE-CANNED-RES] - CREATE CANNED RESP - RES ', responses);
187
-
188
- }, (error) => {
189
- this.logger.error('[CREATE-CANNED-RES]- CREATE CANNED RESP - ERROR ', error);
190
- this.showSpinnerCreateCannedResponse = false;
191
- }, () => {
192
- this.logger.log('[CREATE-CANNED-RES] - CREATE CANNED RESP * COMPLETE *');
193
- this.showSpinnerCreateCannedResponse = false;
194
- this.closeModalCreateCannedResponseModal()
195
- this.events.publish('newcannedresponse:created', true);
196
- });
186
+ this.cannedResponsesService.add(this.tiledeskToken, this.prjctID, canned_response_title.trim(), canned_response_message.trim()).subscribe((responses: any) => {
187
+ this.logger.log('[CREATE-CANNED-RES] - CREATE CANNED RESP - RES ', responses);
188
+ }, (error) => {
189
+ this.logger.error('[CREATE-CANNED-RES]- CREATE CANNED RESP - ERROR ', error);
190
+ this.showSpinnerCreateCannedResponse = false;
191
+ }, () => {
192
+ this.logger.log('[CREATE-CANNED-RES] - CREATE CANNED RESP * COMPLETE *');
193
+ this.showSpinnerCreateCannedResponse = false;
194
+ this.closeModalCreateCannedResponseModal()
195
+ this.events.publish('newcannedresponse:created', true);
196
+ });
197
197
  }
198
198
 
199
199
  openAddPersonalisationMenu() {
@@ -1,5 +1,5 @@
1
1
  <ion-header>
2
- <ion-toolbar>
2
+ <ion-toolbar [class.mobile]="isMobile">
3
3
  <ion-title *ngIf="callerBtn !== 'pinbtn'" style="font-size: 16px;">
4
4
  {{translationMap?.get('UnassignedConversations') }}
5
5
  </ion-title>
@@ -1,3 +1,45 @@
1
+ ion-toolbar {
2
+ height: var(--header-height);
3
+ &:not(.mobile){
4
+ --background: var(--list-bkg-color);
5
+ border: none;
6
+ }
7
+ &.mobile{
8
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05);
9
+ }
10
+
11
+ ion-button{
12
+ --color: var(--basic-blue);
13
+ }
14
+ }
15
+
16
+ ion-content {
17
+ // overwrite inline styles
18
+ --overflow: hidden;
19
+ overflow: scroll;
20
+ &:not(.mobile){
21
+ background: var(--list-bkg-color);
22
+ }
23
+
24
+ &::-webkit-scrollbar {
25
+ width: 6px;
26
+ height: 8px;
27
+ display: none;
28
+ }
29
+
30
+ &::-webkit-scrollbar-track {
31
+ background: #f9f9f9;
32
+ }
33
+ &::-webkit-scrollbar-thumb {
34
+ background-color: #b9b9b9;
35
+ border-radius: 0px;
36
+ }
37
+ &::-webkit-scrollbar-thumb:hover {
38
+ background-color: #727272;
39
+ }
40
+ }
41
+
42
+
1
43
  .ion-content-black-background {
2
44
  --background: #2d323e;
3
45
  }
@@ -16,6 +16,7 @@ export class UnassignedConversationsPage implements OnInit {
16
16
 
17
17
  @Input() iframe_URL: any;
18
18
  @Input() callerBtn: string;
19
+ @Input() isMobile: boolean;
19
20
  // @Input() prjctsxpanel_url: any;
20
21
  // @Input() unassigned_convs_url: any;
21
22
 
@@ -43,6 +43,32 @@ export class CannedResponsesService {
43
43
  }))
44
44
  }
45
45
 
46
+ // -------------------------------------------------------------------------------------
47
+ // @ Create - Save (POST) new canned response
48
+ // -------------------------------------------------------------------------------------
49
+ public add(token: string, projectid: string, title: string, message: string) {
50
+ const url = this.apiUrl + projectid + '/canned/'
51
+ this.logger.log('[TILEDESK-SERVICE] - CREATE CANNED-RES - URL', url);
52
+
53
+ const httpOptions = {
54
+ headers: new HttpHeaders({
55
+ 'Content-Type': 'application/json',
56
+ Authorization: token
57
+ })
58
+ };
59
+
60
+ const body = {
61
+ title: title,
62
+ text: message
63
+ }
64
+
65
+ return this.http.post(url, JSON.stringify(body), httpOptions).pipe(map((res: any) => {
66
+ this.logger.log('[TILEDESK-SERVICE] - CREATE CANNED-RES - RES ', res);
67
+ return res
68
+ }))
69
+
70
+ }
71
+
46
72
  public edit(token: string, projectid: string, canned: any){
47
73
  const cannedResponsesURL = this.apiUrl + projectid + "/canned/"+ canned._id;
48
74
  this.logger.log('[CANNED-RESPONSES-SERVICE] editCannedResponses - URL ', cannedResponsesURL);
@@ -0,0 +1,12 @@
1
+ import { TestBed } from '@angular/core/testing';
2
+
3
+ import { ProjectsService } from './projects.service';
4
+
5
+ describe('ProjectsService', () => {
6
+ beforeEach(() => TestBed.configureTestingModule({}));
7
+
8
+ it('should be created', () => {
9
+ const service: ProjectsService = TestBed.get(ProjectsService);
10
+ expect(service).toBeTruthy();
11
+ });
12
+ });
@@ -0,0 +1,43 @@
1
+ import { HttpClient, HttpHeaders } from '@angular/common/http';
2
+ import { Injectable } from '@angular/core';
3
+ import { map } from 'rxjs/operators';
4
+ import { Project } from 'src/chat21-core/models/projects';
5
+ import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
6
+ import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
7
+ import { AppConfigProvider } from '../app-config';
8
+
9
+ @Injectable({
10
+ providedIn: 'root'
11
+ })
12
+ export class ProjectsService {
13
+
14
+ private apiUrl: string;
15
+ private logger: LoggerService = LoggerInstance.getInstance();
16
+
17
+ constructor(
18
+ public http: HttpClient,
19
+ public appConfigProvider: AppConfigProvider
20
+ ) {
21
+
22
+ this.logger.log('[PROJECTS-SERVICE] HELLO !');
23
+ this.apiUrl = appConfigProvider.getConfig().apiUrl;
24
+ this.logger.log('[PROJECTS-SERVICE] apiUrl ', this.apiUrl);
25
+ }
26
+
27
+ public getProjects(token: string) {
28
+ const url = this.apiUrl + "projects/";
29
+ this.logger.log('[PROJECTS-SERVICE] getProjects - URL ', url);
30
+
31
+ const httpOptions = {
32
+ headers: new HttpHeaders({
33
+ 'Content-Type': 'application/json',
34
+ Authorization: token
35
+ })
36
+ };
37
+
38
+ return this.http.get(url, httpOptions).pipe(map((res: Project[]) => {
39
+ this.logger.log('[PROJECTS-SERVICE] getProjects - RES ', res);
40
+ return res
41
+ }))
42
+ }
43
+ }
@@ -252,31 +252,7 @@ export class TiledeskService {
252
252
  }
253
253
 
254
254
 
255
- // -------------------------------------------------------------------------------------
256
- // @ Create - Save (POST) new canned response
257
- // -------------------------------------------------------------------------------------
258
- public createCannedResponse(message: string, title: string, project_id: string, token: string) {
259
- this.logger.log('[TILEDESK-SERVICE] - CREATE CANNED-RES - token', token);
260
- const url = this.apiUrl + project_id + '/canned/'
261
- this.logger.log('[TILEDESK-SERVICE] - CREATE CANNED-RES - URL', url);
262
-
263
- const httpOptions = {
264
- headers: new HttpHeaders({
265
- 'Content-Type': 'application/json',
266
- Authorization: token
267
- })
268
- };
269
-
270
- const body = { 'text': message, 'title': title };
271
-
272
- this.logger.log('[TILEDESK-SERVICE] CREATE CANNED-RES - BODY ', body);
273
-
274
- return this.http.post(url, JSON.stringify(body), httpOptions).pipe(map((res: any) => {
275
- this.logger.log('[TILEDESK-SERVICE] - CREATE CANNED-RES - RES ', res);
276
- return res
277
- }))
278
-
279
- }
255
+
280
256
 
281
257
  // .post(url, JSON.stringify(body), options)
282
258
  // .map((res) => res.json());
@@ -1,9 +1,9 @@
1
+ import { NavbarComponent } from './../components/navbar/navbar.component';
1
2
  import { FormsModule } from '@angular/forms';
2
3
  import { NgSelectModule } from '@ng-select/ng-select';
3
4
  import { NetworkOfflineComponent } from './../components/network-offline/network-offline.component';
4
5
  import { ContactsDirectoryComponent } from './../components/contacts-directory/contacts-directory.component';
5
6
  import { HtmlComponent } from './../chatlib/conversation-detail/message/html/html.component';
6
- import { BubbleOthersMessageComponent } from './../components/conversation-detail/bubble-others-message/bubble-others-message.component';
7
7
 
8
8
  import { TextComponent } from '../chatlib/conversation-detail/message/text/text.component';
9
9
  import { ReturnReceiptComponent } from '../chatlib/conversation-detail/message/return-receipt/return-receipt.component';
@@ -33,9 +33,6 @@ import { MarkedPipe } from 'src/app/directives/marked.pipe';
33
33
  import { AutofocusDirective } from 'src/app/directives/autofocus.directive';
34
34
  import { HtmlEntitiesEncodePipe } from 'src/app/directives/html-entities-encode.pipe';
35
35
  import { IonConversationDetailComponent } from 'src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component';
36
- import { BubbleMyMessageComponent } from 'src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component';
37
- import { BubbleDayMessageComponent } from 'src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component';
38
- import { BubbleSystemMessageComponent } from 'src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component';
39
36
  import { InfoContentComponent } from 'src/app/components/conversation-info/info-content/info-content.component';
40
37
  import { InfoSupportGroupComponent } from 'src/app/components/conversation-info/info-support-group/info-support-group.component';
41
38
  import { InfoDirectComponent } from 'src/app/components/conversation-info/info-direct/info-direct.component';
@@ -65,6 +62,7 @@ import { SafeHtmlPipe } from '../directives/safe-html.pipe';
65
62
  ListConversationsComponent,
66
63
  IonListConversationsComponent,
67
64
  ImageViewerComponent,
65
+ NavbarComponent,
68
66
  SidebarComponent,
69
67
  SidebarUserDetailsComponent,
70
68
  ProjectItemComponent,
@@ -82,10 +80,6 @@ import { SafeHtmlPipe } from '../directives/safe-html.pipe';
82
80
  ReturnReceiptComponent,
83
81
  TextComponent,
84
82
  HtmlComponent,
85
- BubbleDayMessageComponent,
86
- BubbleSystemMessageComponent,
87
- BubbleMyMessageComponent,
88
- BubbleOthersMessageComponent,
89
83
  InfoContentComponent,
90
84
  InfoSupportGroupComponent,
91
85
  InfoDirectComponent,
@@ -104,6 +98,7 @@ import { SafeHtmlPipe } from '../directives/safe-html.pipe';
104
98
  AvatarProfileComponent,
105
99
  HeaderConversationsList,
106
100
  ImageViewerComponent,
101
+ NavbarComponent,
107
102
  SidebarComponent,
108
103
  SidebarUserDetailsComponent,
109
104
  ProjectItemComponent,
@@ -123,10 +118,6 @@ import { SafeHtmlPipe } from '../directives/safe-html.pipe';
123
118
  InfoMessageComponent,
124
119
  ReturnReceiptComponent,
125
120
  TextComponent,
126
- BubbleDayMessageComponent,
127
- BubbleSystemMessageComponent,
128
- BubbleMyMessageComponent,
129
- BubbleOthersMessageComponent,
130
121
  InfoContentComponent,
131
122
  InfoSupportGroupComponent,
132
123
  InfoDirectComponent,
@@ -70,7 +70,7 @@
70
70
  "INFO_SUPPORT_CHAT_CLOSED": "الدردشة مغلقة",
71
71
  "INFO_SUPPORT_LEAD_UPDATED":"تحديث الرصاص",
72
72
  "INFO_SUPPORT_MEMBER_LEFT_GROUP":"تمت إزالته من المجموعة",
73
- "INFO_SUPPORT_MEMBER_ABANDONED_GROUP":"أنطونيو ترك المحادثة",
73
+ "INFO_SUPPORT_MEMBER_ABANDONED_GROUP":"وقد غادر المحادثة",
74
74
  "INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU": "تم تعيين طلب دعم جديد لك",
75
75
  "LABEL_PROFILE": "الملف الشخصي",
76
76
  "LABEL_CLOSE": "مغلق",
@@ -268,5 +268,13 @@
268
268
  "First_name_of_agent": "الاسم الأول للوكيل",
269
269
  "EnterCannedResponseTitle": "أدخل عنوان الرد الجاهز",
270
270
  "WriteMsgToSendToYourVisitors": "اكتب رسالة رد جاهزة لإرسالها إلى الزائرين",
271
- "EditProfile": "تعديل الملف الشخصي"
271
+ "EditProfile": "تعديل الملف الشخصي",
272
+ "NAVBAR":{
273
+ "SIMULATE_VISITOR":"محاكاة الزائر",
274
+ "PROJECT_SETTINGS":"إعدادات المشروع",
275
+ "VIEW_ALL_PROJECTS":"عرض جميع المشاريع",
276
+ "ADD_PROJECT":"أضف المشروع",
277
+ "RECENT_PROJECTS":"مشاريع حديثه",
278
+ "OTHER_PROJECTS":"مشاريع أخرى"
279
+ }
272
280
  }
@@ -268,5 +268,13 @@
268
268
  "First_name_of_agent": "Agentin adı",
269
269
  "EnterCannedResponseTitle": "Hazır cavab başlığını daxil edin",
270
270
  "WriteMsgToSendToYourVisitors": "Ziyarətçilərinizə göndərmək üçün konservləşdirilmiş cavab mesajı yazın",
271
- "EditProfile": "Profilə düzəliş et"
271
+ "EditProfile": "Profilə düzəliş et",
272
+ "NAVBAR":{
273
+ "SIMULATE_VISITOR":"Ziyarətçini simulyasiya edin",
274
+ "PROJECT_SETTINGS":"Layihə parametrləri",
275
+ "VIEW_ALL_PROJECTS":"Bütün layihələrə baxın",
276
+ "ADD_PROJECT":"Layihə əlavə edin",
277
+ "RECENT_PROJECTS":"Son layihələr",
278
+ "OTHER_PROJECTS":"Digər layihələr"
279
+ }
272
280
  }
@@ -70,7 +70,7 @@
70
70
  "INFO_SUPPORT_CHAT_CLOSED": "Chat geschlossen",
71
71
  "INFO_SUPPORT_LEAD_UPDATED":"Leitung aktualisiert",
72
72
  "INFO_SUPPORT_MEMBER_LEFT_GROUP":"aus der Gruppe entfernt",
73
- "INFO_SUPPORT_MEMBER_ABANDONED_GROUP":"verließ das Gespräch",
73
+ "INFO_SUPPORT_MEMBER_ABANDONED_GROUP":"hat die Unterhaltung verlassen",
74
74
  "INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU": "Ihnen wurde eine neue Support-Anfrage zugewiesen",
75
75
  "LABEL_PROFILE": "Profil",
76
76
  "LABEL_CLOSE": "Abgeschlossen",
@@ -268,5 +268,13 @@
268
268
  "First_name_of_agent": "Vorname des Betreuers",
269
269
  "EnterCannedResponseTitle": "Titel der Vordefinierten Anfrage eingeben",
270
270
  "WriteMsgToSendToYourVisitors": "Verfassen Sie eine vordefinierte Antwort für Ihre Besucher",
271
- "EditProfile": "Profil bearbeiten"
271
+ "EditProfile": "Profil bearbeiten",
272
+ "NAVBAR":{
273
+ "SIMULATE_VISITOR":"Besucher simulieren",
274
+ "PROJECT_SETTINGS":"Projekt Einstellungen",
275
+ "VIEW_ALL_PROJECTS":"Alle Projekte anzeigen",
276
+ "ADD_PROJECT":"Projekt hinzufügen",
277
+ "RECENT_PROJECTS":"Letzte Projekte",
278
+ "OTHER_PROJECTS":"Weitere Projekte"
279
+ }
272
280
  }
@@ -70,7 +70,7 @@
70
70
  "INFO_SUPPORT_CHAT_CLOSED": "Chat closed",
71
71
  "INFO_SUPPORT_LEAD_UPDATED":"Lead updated",
72
72
  "INFO_SUPPORT_MEMBER_LEFT_GROUP":"removed from group",
73
- "INFO_SUPPORT_MEMBER_ABANDONED_GROUP":"has left the conversations",
73
+ "INFO_SUPPORT_MEMBER_ABANDONED_GROUP":"has left the conversation",
74
74
  "INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU": "A new support request has been assigned to you",
75
75
  "LABEL_PROFILE": "Profile",
76
76
  "LABEL_CLOSE": "Closed",
@@ -268,5 +268,13 @@
268
268
  "First_name_of_agent": "First name of agent",
269
269
  "EnterCannedResponseTitle": "Enter canned response title",
270
270
  "WriteMsgToSendToYourVisitors": "Write a canned response message to send to your visitors",
271
- "EditProfile": "Edit profile"
271
+ "EditProfile": "Edit profile",
272
+ "NAVBAR":{
273
+ "SIMULATE_VISITOR":"Simulate visitor",
274
+ "PROJECT_SETTINGS":"Project settings",
275
+ "VIEW_ALL_PROJECTS":"View all projects",
276
+ "ADD_PROJECT":"Add project",
277
+ "RECENT_PROJECTS":"Recent projects",
278
+ "OTHER_PROJECTS":"Other projects"
279
+ }
272
280
  }
@@ -70,7 +70,7 @@
70
70
  "INFO_SUPPORT_CHAT_CLOSED": "Chat cerrado",
71
71
  "INFO_SUPPORT_LEAD_UPDATED":"Cliente potencial actualizado",
72
72
  "INFO_SUPPORT_MEMBER_LEFT_GROUP":"eliminado del grupo",
73
- "INFO_SUPPORT_MEMBER_ABANDONED_GROUP":"abandonó la conversación",
73
+ "INFO_SUPPORT_MEMBER_ABANDONED_GROUP":"ha abandonado la conversación",
74
74
  "INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU":"Se le ha asignado una nueva solicitud de soporte",
75
75
  "LABEL_PROFILE": "Perfil",
76
76
  "LABEL_CLOSE": "Cerrado",
@@ -268,5 +268,13 @@
268
268
  "First_name_of_agent": "Nombre del agente",
269
269
  "EnterCannedResponseTitle": "Introduzca el título de la respuesta predefinida",
270
270
  "WriteMsgToSendToYourVisitors": "Escribe un mensaje de respuesta enlatado para enviar a tus visitantes",
271
- "EditProfile": "Editar perfil"
271
+ "EditProfile": "Editar perfil",
272
+ "NAVBAR":{
273
+ "SIMULATE_VISITOR":"Simular visitante",
274
+ "PROJECT_SETTINGS":"Configuración del proyecto",
275
+ "VIEW_ALL_PROJECTS":"Ver todos los proyectos",
276
+ "ADD_PROJECT":"Agregar proyecto",
277
+ "RECENT_PROJECTS":"Proyectos recientes",
278
+ "OTHER_PROJECTS":"Otros proyectos"
279
+ }
272
280
  }
@@ -268,5 +268,13 @@
268
268
  "First_name_of_agent": "Prénom du mandataire",
269
269
  "EnterCannedResponseTitle": "Saisissez le titre de la réponse standardisée",
270
270
  "WriteMsgToSendToYourVisitors": "Rédigez un message de réponse standardisé à envoyer à vos visiteurs",
271
- "EditProfile": "Editer le profil"
271
+ "EditProfile": "Editer le profil",
272
+ "NAVBAR":{
273
+ "SIMULATE_VISITOR":"Simuler un visiteur",
274
+ "PROJECT_SETTINGS":"Paramètres du projet",
275
+ "VIEW_ALL_PROJECTS":"Voir tous les projets",
276
+ "ADD_PROJECT":"Ajouter un projet",
277
+ "RECENT_PROJECTS":"Les projets récents",
278
+ "OTHER_PROJECTS":"Autres projets"
279
+ }
272
280
  }
@@ -268,5 +268,13 @@
268
268
  "First_name_of_agent": "Nome dell'agente",
269
269
  "EnterCannedResponseTitle": "Inserisci il titolo della risposta predefinita",
270
270
  "WriteMsgToSendToYourVisitors": "Scrivi un messaggio di risposta predefinito da inviare ai tuoi visitatori",
271
- "EditProfile": "Cambia profilo"
271
+ "EditProfile": "Cambia profilo",
272
+ "NAVBAR":{
273
+ "SIMULATE_VISITOR":"Simula visitatore",
274
+ "PROJECT_SETTINGS":"Impostazioni progetto",
275
+ "VIEW_ALL_PROJECTS":"Visualizza tutti i progetti",
276
+ "ADD_PROJECT":"Aggiungi progetto",
277
+ "RECENT_PROJECTS":"Progetti recenti",
278
+ "OTHER_PROJECTS":"Altri progetti"
279
+ }
272
280
  }
@@ -70,7 +70,7 @@
70
70
  "INFO_SUPPORT_CHAT_CLOSED": "Чат жабылды",
71
71
  "INFO_SUPPORT_LEAD_UPDATED":"Жетекші жаңартылды",
72
72
  "INFO_SUPPORT_MEMBER_LEFT_GROUP":"топтан шығарылды",
73
- "INFO_SUPPORT_MEMBER_ABANDONED_GROUP":"әңгімені тастап кетті",
73
+ "INFO_SUPPORT_MEMBER_ABANDONED_GROUP":"әңгімеден шығып кетті",
74
74
  "INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU": "Сізге жаңа қолдау сұрауы тағайындалды",
75
75
  "LABEL_PROFILE": "Профиль",
76
76
  "LABEL_CLOSE": "Жабық",
@@ -268,5 +268,13 @@
268
268
  "First_name_of_agent": "Агенттің аты-жөні",
269
269
  "EnterCannedResponseTitle": "Сақталған жауап тақырыбын енгізіңіз",
270
270
  "WriteMsgToSendToYourVisitors": "Келушілеріңізге жіберу үшін консервіленген жауап хабарын жазыңыз",
271
- "EditProfile": "Профильді өңдеу"
271
+ "EditProfile": "Профильді өңдеу",
272
+ "NAVBAR":{
273
+ "SIMULATE_VISITOR":"Келушіге ұқсаңыз",
274
+ "PROJECT_SETTINGS":"Жоба параметрлері",
275
+ "VIEW_ALL_PROJECTS":"Барлық жобаларды көру",
276
+ "ADD_PROJECT":"Жоба қосу",
277
+ "RECENT_PROJECTS":"Соңғы жобалар",
278
+ "OTHER_PROJECTS":"Басқа жобалар"
279
+ }
272
280
  }
@@ -70,7 +70,7 @@
70
70
  "INFO_SUPPORT_CHAT_CLOSED": "Bate-papo fechado",
71
71
  "INFO_SUPPORT_LEAD_UPDATED":"Lead atualizado",
72
72
  "INFO_SUPPORT_MEMBER_LEFT_GROUP":"removido do grupo",
73
- "INFO_SUPPORT_MEMBER_ABANDONED_GROUP":"saiu da conversa",
73
+ "INFO_SUPPORT_MEMBER_ABANDONED_GROUP":"deixou a conversa",
74
74
  "INFO_A_NEW_SUPPORT_REQUEST_HAS_BEEN_ASSIGNED_TO_YOU": "Uma nova solicitação de suporte foi atribuída a você",
75
75
  "LABEL_PROFILE": "Perfil",
76
76
  "LABEL_CLOSE": "Fechadas",
@@ -268,5 +268,13 @@
268
268
  "First_name_of_agent": "Nome do agente",
269
269
  "EnterCannedResponseTitle": "Insira o título da resposta predeterminada",
270
270
  "WriteMsgToSendToYourVisitors": "Escreva uma mensagem de resposta pronta para enviar aos seus visitantes",
271
- "EditProfile": "Editar Perfil"
271
+ "EditProfile": "Editar Perfil",
272
+ "NAVBAR":{
273
+ "SIMULATE_VISITOR":"Simular visitante",
274
+ "PROJECT_SETTINGS":"Configurações do projeto",
275
+ "VIEW_ALL_PROJECTS":"Ver todos os projetos",
276
+ "ADD_PROJECT":"Adicionar projeto",
277
+ "RECENT_PROJECTS":"Projetos Recentes",
278
+ "OTHER_PROJECTS":"Outros projetos"
279
+ }
272
280
  }
@@ -268,5 +268,13 @@
268
268
  "First_name_of_agent": "Имя агента",
269
269
  "EnterCannedResponseTitle": "Введите готовый заголовок ответа",
270
270
  "WriteMsgToSendToYourVisitors": "Напишите готовое ответное сообщение для отправки своим посетителям",
271
- "EditProfile": "Редактировать профиль"
271
+ "EditProfile": "Редактировать профиль",
272
+ "NAVBAR":{
273
+ "SIMULATE_VISITOR":"Имитация посетителя",
274
+ "PROJECT_SETTINGS":"Настройки проекта",
275
+ "VIEW_ALL_PROJECTS":"Посмотреть все проекты",
276
+ "ADD_PROJECT":"Добавить проект",
277
+ "RECENT_PROJECTS":"Недавние Проекты",
278
+ "OTHER_PROJECTS":"Другие проекты"
279
+ }
272
280
  }