@chat21/chat21-ionic 3.0.81-rc.1 → 3.0.81

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 (151) hide show
  1. package/CHANGELOG.md +6 -71
  2. package/README.md +2 -2
  3. package/angular.json +1 -0
  4. package/package.json +2 -2
  5. package/src/app/app.component.html +1 -7
  6. package/src/app/app.component.scss +2 -18
  7. package/src/app/app.component.ts +17 -113
  8. package/src/app/app.module.ts +1 -3
  9. package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.ts +1 -8
  10. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +23 -77
  11. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +86 -168
  12. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.ts +2 -39
  13. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.html +24 -11
  14. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.scss +10 -6
  15. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.spec.ts +2 -2
  16. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +25 -16
  17. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.html +1 -5
  18. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.scss +15 -22
  19. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.ts +5 -25
  20. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.html +1 -2
  21. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.scss +15 -14
  22. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.ts +5 -24
  23. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.html +1 -6
  24. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.scss +13 -12
  25. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.ts +5 -26
  26. package/src/app/chatlib/conversation-detail/message/frame/frame.component.html +2 -8
  27. package/src/app/chatlib/conversation-detail/message/frame/frame.component.scss +0 -36
  28. package/src/app/chatlib/conversation-detail/message/frame/frame.component.ts +2 -2
  29. package/src/app/chatlib/conversation-detail/message/html/html.component.ts +1 -0
  30. package/src/app/chatlib/conversation-detail/message/image/image.component.html +1 -1
  31. package/src/app/chatlib/conversation-detail/message/image/image.component.scss +5 -17
  32. package/src/app/chatlib/conversation-detail/message/image/image.component.ts +1 -1
  33. package/src/app/chatlib/conversation-detail/message/info-message/info-message.component.scss +2 -3
  34. package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.html +6 -16
  35. package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.scss +3 -1
  36. package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.ts +0 -2
  37. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +52 -78
  38. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +20 -62
  39. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +10 -14
  40. package/src/app/components/canned-response/canned-response.component.html +9 -8
  41. package/src/app/components/canned-response/canned-response.component.scss +18 -8
  42. package/src/app/components/canned-response/canned-response.component.ts +2 -2
  43. package/src/app/components/contacts-directory/contacts-directory.component.html +26 -22
  44. package/src/app/components/contacts-directory/contacts-directory.component.scss +6 -8
  45. package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.html +3 -0
  46. package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.scss +21 -0
  47. package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.spec.ts +24 -0
  48. package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.ts +14 -0
  49. package/src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component.html +54 -0
  50. package/src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component.scss +98 -0
  51. package/src/app/components/{conversations-list/header-conversations-list/header-conversations-list.component.spec.ts → conversation-detail/bubble-my-message/bubble-my-message.component.spec.ts} +6 -6
  52. package/src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component.ts +84 -0
  53. package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.html +30 -0
  54. package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.scss +83 -0
  55. package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.spec.ts +24 -0
  56. package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.ts +68 -0
  57. package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.html +3 -0
  58. package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.scss +10 -0
  59. package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.spec.ts +24 -0
  60. package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.ts +14 -0
  61. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +42 -61
  62. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +61 -98
  63. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +25 -9
  64. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +6 -8
  65. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +4 -4
  66. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +84 -24
  67. package/src/app/components/conversation-detail/option-header/option-header.component.html +13 -0
  68. package/src/app/components/conversation-detail/option-header/option-header.component.scss +0 -0
  69. package/src/app/components/{conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.spec.ts → conversation-detail/option-header/option-header.component.spec.ts} +5 -5
  70. package/src/app/components/{conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.ts → conversation-detail/option-header/option-header.component.ts} +4 -5
  71. package/src/app/components/conversation-info/info-content/info-content.component.html +1 -2
  72. package/src/app/components/conversation-info/info-content/info-content.component.ts +2 -3
  73. package/src/app/components/conversation-info/info-direct/info-direct.component.html +9 -1
  74. package/src/app/components/conversation-info/info-direct/info-direct.component.ts +2 -0
  75. package/src/app/components/conversation-info/info-group/info-group.component.html +108 -44
  76. package/src/app/components/conversation-info/info-group/info-group.component.scss +61 -101
  77. package/src/app/components/conversation-info/info-group/info-group.component.ts +0 -1
  78. package/src/app/components/{conversations-list/header-conversations-list/header-conversations-list.component.html → ddp-header/ddp-header.component.html} +3 -3
  79. package/src/app/components/{conversations-list/header-conversations-list/header-conversations-list.component.scss → ddp-header/ddp-header.component.scss} +4 -16
  80. package/src/app/components/{navbar/navbar.component.spec.ts → ddp-header/ddp-header.component.spec.ts} +6 -6
  81. package/src/app/components/{conversations-list/header-conversations-list/header-conversations-list.component.ts → ddp-header/ddp-header.component.ts} +16 -7
  82. package/src/app/components/project-item/project-item.component.html +149 -98
  83. package/src/app/components/project-item/project-item.component.scss +35 -42
  84. package/src/app/components/project-item/project-item.component.ts +4 -16
  85. package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +3 -3
  86. package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +7 -2
  87. package/src/app/components/utils/user-presence/user-presence.component.html +2 -7
  88. package/src/app/components/utils/user-presence/user-presence.component.scss +18 -35
  89. package/src/app/components/utils/user-presence/user-presence.component.ts +10 -6
  90. package/src/app/pages/contacts-directory/contacts-directory.page.html +1 -1
  91. package/src/app/pages/contacts-directory/contacts-directory.page.scss +0 -41
  92. package/src/app/pages/contacts-directory/contacts-directory.page.ts +0 -2
  93. package/src/app/pages/conversation-detail/conversation-detail.module.ts +8 -0
  94. package/src/app/pages/conversation-detail/conversation-detail.page.html +23 -40
  95. package/src/app/pages/conversation-detail/conversation-detail.page.scss +250 -40
  96. package/src/app/pages/conversation-detail/conversation-detail.page.ts +80 -187
  97. package/src/app/pages/conversations-list/conversations-list.page.html +8 -11
  98. package/src/app/pages/conversations-list/conversations-list.page.scss +2 -11
  99. package/src/app/pages/conversations-list/conversations-list.page.ts +22 -25
  100. package/src/app/pages/create-canned-response/create-canned-response.page.ts +13 -13
  101. package/src/app/pages/loader-preview/loader-preview.page.html +1 -1
  102. package/src/app/pages/loader-preview/loader-preview.page.scss +0 -4
  103. package/src/app/pages/loader-preview/loader-preview.page.ts +2 -1
  104. package/src/app/pages/profile-info/profile-info.page.html +4 -2
  105. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +1 -1
  106. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +0 -42
  107. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +0 -1
  108. package/src/app/services/canned-responses/canned-responses.service.ts +0 -26
  109. package/src/app/services/tiledesk/tiledesk.service.ts +26 -2
  110. package/src/app/shared/shared.module.ts +33 -24
  111. package/src/assets/i18n/ar.json +265 -278
  112. package/src/assets/i18n/az.json +1 -14
  113. package/src/assets/i18n/de.json +2 -15
  114. package/src/assets/i18n/en.json +2 -15
  115. package/src/assets/i18n/es.json +2 -15
  116. package/src/assets/i18n/fr.json +1 -14
  117. package/src/assets/i18n/it.json +1 -14
  118. package/src/assets/i18n/kk.json +2 -15
  119. package/src/assets/i18n/pt.json +2 -15
  120. package/src/assets/i18n/ru.json +1 -14
  121. package/src/assets/i18n/sr.json +264 -277
  122. package/src/assets/i18n/sv.json +2 -15
  123. package/src/assets/i18n/tr.json +2 -15
  124. package/src/assets/i18n/uk.json +2 -15
  125. package/src/assets/i18n/uz.json +1 -14
  126. package/src/assets/js/chat21client.js +149 -177
  127. package/src/chat-config-native-mqtt.json +2 -1
  128. package/src/chat21-core/models/conversation.ts +1 -0
  129. package/src/chat21-core/providers/firebase/firebase-typing.service.ts +9 -7
  130. package/src/chat21-core/utils/constants.ts +1 -6
  131. package/src/chat21-core/utils/user-typing/user-typing.component.html +5 -8
  132. package/src/chat21-core/utils/user-typing/user-typing.component.scss +17 -87
  133. package/src/chat21-core/utils/user-typing/user-typing.component.ts +94 -12
  134. package/src/chat21-core/utils/utils.ts +10 -38
  135. package/src/global.scss +56 -52
  136. package/src/index.html +2 -2
  137. package/src/variables.scss +10 -30
  138. package/deploy_amazon_beta.sh +0 -29
  139. package/deploy_amazon_prod.sh +0 -30
  140. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component_2.html +0 -116
  141. package/src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.html +0 -12
  142. package/src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.scss +0 -14
  143. package/src/app/components/navbar/navbar.component.html +0 -103
  144. package/src/app/components/navbar/navbar.component.scss +0 -249
  145. package/src/app/components/navbar/navbar.component.ts +0 -189
  146. package/src/app/services/projects/projects.service.spec.ts +0 -12
  147. package/src/app/services/projects/projects.service.ts +0 -43
  148. package/src/assets/sounds/interface-start.mp3 +0 -0
  149. package/src/assets/sounds/wheep-wheep.mp3 +0 -0
  150. package/src/chat21-core/models/projects.ts +0 -27
  151. package/src/chat21-core/utils/convertRequestToConversation.ts +0 -41
@@ -1,5 +1,5 @@
1
1
  import { TYPE_DIRECT } from 'src/chat21-core/utils/constants';
2
- import { URL_SOUND_LIST_CONVERSATION } from './../../../chat21-core/utils/constants'
2
+ import { TYPE_SUPPORT_GROUP, URL_SOUND_LIST_CONVERSATION } from './../../../chat21-core/utils/constants'
3
3
  import {
4
4
  Component,
5
5
  OnInit,
@@ -115,14 +115,16 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
115
115
  public lastConnectionDate: string
116
116
  public showMessageWelcome: boolean
117
117
  public openInfoConversation = false
118
+ public openInfoMessage: boolean // check is open info message
118
119
  public isMobile = false
119
120
  public isLessThan991px = false // nk added
121
+ public isTyping = false
122
+ public nameUserTypingNow: string
120
123
 
121
124
  public heightMessageTextArea = ''
122
- public translationsMap: Map<string, string> = new Map()
123
- public translationsHeaderMap: Map<string, string> = new Map()
124
- public translationsContentMap: Map<string, string> = new Map()
125
+ public translationMap: Map<string, string>
125
126
  public conversationAvatar: any
127
+ public membersConversation: any
126
128
  public member: UserModel
127
129
  public urlConversationSupportGroup: any
128
130
  public isFileSelected: boolean
@@ -148,6 +150,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
148
150
  //SOUND
149
151
  setTimeoutSound: any;
150
152
  audio: any;
153
+ isOpenInfoConversation: boolean;
151
154
  USER_HAS_OPENED_CLOSE_INFO_CONV: boolean = false;
152
155
  isHovering: boolean = false;
153
156
  conversation_count: number;
@@ -169,15 +172,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
169
172
  public disableTextarea: boolean;
170
173
  appsidebarIsWide: boolean;
171
174
 
172
- // ========== begin:: typying =======
173
- public isTypings = false;
174
- public isDirect = false;
175
- public idUserTypingNow: string;
176
- public nameUserTypingNow: string;
177
- private setTimeoutWritingMessages;
178
- membersConversation = ['SYSTEM'];
179
- // ========== end:: typying =======
180
-
181
175
  /**
182
176
  * Constructor
183
177
  * @param route
@@ -246,7 +240,21 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
246
240
  // -----------------------------------------------------------
247
241
  ngOnInit() {
248
242
  this.logger.log('[CONVS-DETAIL] > ngOnInit - window.location: ', window.location);
249
-
243
+ // this.logger.log('[CONVS-DETAIL] > ngOnInit - fileUploadAccept: ', this.appConfigProvider.getConfig().fileUploadAccept);
244
+ // const accept_files = this.appConfigProvider.getConfig().fileUploadAccept;
245
+ // this.logger.log('[CONVS-DETAIL] > ngOnInit - fileUploadAccept typeof accept_files ', typeof accept_files);
246
+ // const accept_files_array = accept_files.split(',')
247
+ // this.logger.log('[CONVS-DETAIL] > ngOnInit - fileUploadAccept accept_files_array ', accept_files_array);
248
+ // this.logger.log('[CONVS-DETAIL] > ngOnInit - fileUploadAccept accept_files_array typeof: ', typeof accept_files_array);
249
+
250
+ // accept_files_array.forEach(accept_file => {
251
+ // this.logger.log('[CONVS-DETAIL] > ngOnInit - fileUploadAccept accept_file ', accept_file);
252
+ // const accept_file_segment = accept_file.split('/')
253
+ // this.logger.log('[CONVS-DETAIL] > ngOnInit - fileUploadAccept accept_file_segment ', accept_file_segment);
254
+ // if (accept_file_segment[1] === '*') {
255
+
256
+ // }
257
+ // });
250
258
  this.getConversations();
251
259
  this.watchToConnectionStatus();
252
260
  this.getOSCODE();
@@ -267,21 +275,21 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
267
275
  // console.log('[CONVS-DETAIL] HAS CLICKED ENLARGE SIDEBAR WIDE chatAreaEle ', chatAreaEle)
268
276
 
269
277
  if (event && event.data && event.data.action && event.data.action === 'openAppsSidebarWideMode' && event.data.parameter === true) {
270
- this.logger.log('[CONVS-DETAIL] openAppsSidebarWideMode EVENT-> open' )
278
+ this.logger.log('[CONVS-DETAIL] HERE YES 1')
271
279
  this.appsidebarIsWide = true
272
280
  // chat21InfoConversationEle.classList.add("info-convs-apps-sidebar-wide");
273
281
  // chatAreaEle.classList.add("chat-area-apps-sidebar-wide");
274
282
  }
275
283
 
276
284
  if (event && event.data && event.data.action && event.data.action === 'openAppsSidebarWideMode' && event.data.parameter === false) {
277
- this.logger.log('[CONVS-DETAIL] openAppsSidebarWideMode EVENT-> close')
285
+ this.logger.log('[CONVS-DETAIL] HERE YES 2')
278
286
  this.appsidebarIsWide = false
279
287
  // chat21InfoConversationEle.classList.remove("info-convs-apps-sidebar-wide");
280
288
  // chatAreaEle.classList.remove("chat-area-apps-sidebar-wide");
281
289
  }
282
290
 
283
291
  if (event && event.data && event.data.action && event.data.action === 'closeAppsSidebarWideMode' && event.data.parameter === true) {
284
- this.logger.log('[CONVS-DETAIL] closeAppsSidebarWideMode EVENT-> close')
292
+ this.logger.log('[CONVS-DETAIL] HERE YES 3')
285
293
  this.appsidebarIsWide = false
286
294
  // chat21InfoConversationEle.classList.remove("info-convs-apps-sidebar-wide");
287
295
  // chatAreaEle.classList.remove("chat-area-apps-sidebar-wide");
@@ -331,12 +339,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
331
339
  // this.updateConversationBadge()
332
340
  // }
333
341
  if(conv.uid && conv.uid === this.conversationWith){
334
- this.conversationAvatar = setConversationAvatar(
335
- conv.conversation_with,
336
- conv.conversation_with_fullname,
337
- conv.channel_type,
338
- conv.attributes['projectId'],
339
- conv.attributes['project_name'])
342
+ this.conversationAvatar = setConversationAvatar(conv.conversation_with,conv.conversation_with_fullname,conv.channel_type)
340
343
  }
341
344
 
342
345
  }
@@ -474,7 +477,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
474
477
  this.loggedUser = this.tiledeskAuthService.getCurrentUser()
475
478
  this.logger.log('[CONVS-DETAIL] - initialize -> loggedUser: ', this.loggedUser)
476
479
  this.translations()
477
- this.setStyleMap()
478
480
  // this.conversationSelected = localStorage.getItem('conversationSelected');
479
481
  this.showButtonToBottom = false
480
482
  this.showMessageWelcome = false
@@ -489,6 +491,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
489
491
 
490
492
  this.messages = [] // list messages of conversation
491
493
  this.isFileSelected = false // indicates if a file has been selected (image to upload)
494
+ this.openInfoMessage = false // indicates whether the info message panel is open
492
495
 
493
496
  if (checkPlatformIsMobile()) {
494
497
  this.isMobile = true
@@ -504,11 +507,13 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
504
507
  if (checkWindowWidthIsLessThan991px()) {
505
508
  this.logger.log('[CONVS-DETAIL] - initialize -> checkWindowWidthIsLessThan991px ', checkWindowWidthIsLessThan991px())
506
509
  this.openInfoConversation = false // indica se è aperto il box info conversazione
507
- this.logger.log('[CONVS-DETAIL] - initialize -> openInfoConversation ', this.openInfoConversation)
510
+ this.isOpenInfoConversation = false
511
+ this.logger.log('[CONVS-DETAIL] - initialize -> openInfoConversation ', this.openInfoConversation, ' -> isOpenInfoConversation ', this.isOpenInfoConversation)
508
512
  } else {
509
513
  this.logger.log('[CONVS-DETAIL] - initialize -> checkWindowWidthIsLessThan991px ', checkWindowWidthIsLessThan991px())
510
514
  this.openInfoConversation = true
511
- this.logger.log('[CONVS-DETAIL] - initialize -> openInfoConversation ', this.openInfoConversation)
515
+ this.isOpenInfoConversation = true
516
+ this.logger.log('[CONVS-DETAIL] - initialize -> openInfoConversation ', this.openInfoConversation, ' -> isOpenInfoConversation ', this.isOpenInfoConversation)
512
517
  }
513
518
  }
514
519
 
@@ -527,8 +532,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
527
532
  this.addEventsKeyboard()
528
533
  this.startConversation()
529
534
  this.updateConversationBadge() // AGGIORNO STATO DELLA CONVERSAZIONE A 'LETTA' (is_new = false)
530
-
531
- this.initializeTyping();
532
535
  }
533
536
 
534
537
  _getProjectIdByConversationWith(conversationWith: string) {
@@ -563,12 +566,22 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
563
566
  })
564
567
  }
565
568
 
569
+ returnOpenCloseInfoConversation(openInfoConversation: boolean) {
570
+ this.logger.log('[CONVS-DETAIL] returnOpenCloseInfoConversation - openInfoConversation ', openInfoConversation)
571
+ this.resizeTextArea()
572
+ this.openInfoMessage = false
573
+ this.openInfoConversation = openInfoConversation
574
+ this.isOpenInfoConversation = openInfoConversation
575
+ this.USER_HAS_OPENED_CLOSE_INFO_CONV = true
576
+ }
577
+
566
578
  @HostListener('window:resize', ['$event'])
567
579
  onResize(event: any) {
568
580
  const newInnerWidth = event.target.innerWidth
569
581
  if (newInnerWidth < 991) {
570
582
  if (this.USER_HAS_OPENED_CLOSE_INFO_CONV === false) {
571
583
  this.openInfoConversation = false
584
+ this.isOpenInfoConversation = false
572
585
  }
573
586
  }
574
587
  }
@@ -587,7 +600,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
587
600
  'LABEL_TO',
588
601
  'LABEL_LAST_ACCESS',
589
602
  'ARRAY_DAYS',
590
-
603
+ 'LABEL_IS_WRITING',
591
604
  'LABEL_INFO_ADVANCED',
592
605
  'ID_CONVERSATION',
593
606
  'UPLOAD_FILE_ERROR',
@@ -606,35 +619,11 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
606
619
  'THERE_ARE_NO_CANNED_RESPONSES_AVAILABLE',
607
620
  'TO_CREATE_THEM_GO_TO_THE_PROJECT',
608
621
  "AddNewCannedResponse",
609
- "LABEL_LOADING",
610
- "DIRECT_CHAT",
611
- "GROUP_CHAT",
612
- ]
613
-
614
- const keysHeader = [
615
- 'DIRECT_CHAT',
616
- 'GROUP_CHAT',
617
- 'LABEL_IS_WRITING',
618
- 'LABEL_ONLINE',
619
- 'LABEL_OFFLINE',
620
- 'LABEL_TODAY',
621
- 'LABEL_TOMORROW',
622
- 'LABEL_TO',
623
- 'LABEL_LAST_ACCESS',
624
- 'ARRAY_DAYS',
625
- 'Resolve',
626
- ]
627
-
628
- const keysContentDetail = [
629
- 'LABEL_OPEN_INFO_CONVERSATION',
630
- 'LABEL_CLOSE_GROUP',
631
- 'LABEL_IS_WRITING',
622
+ "LABEL_LOADING"
632
623
  ]
633
624
 
634
- this.translationsMap = this.customTranslateService.translateLanguage(keys)
635
- this.translationsHeaderMap = this.customTranslateService.translateLanguage(keysHeader)
636
- this.translationsContentMap = this.customTranslateService.translateLanguage(keysContentDetail)
637
- this.logger.log('[CONVS-DETAIL] x this.translationMap ',this.translationsMap)
625
+ this.translationMap = this.customTranslateService.translateLanguage(keys)
626
+ this.logger.log('[CONVS-DETAIL] x this.translationMap ',this.translationMap)
638
627
  }
639
628
 
640
629
  // --------------------------------------------------------
@@ -661,19 +650,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
661
650
  return this.customTranslateService.translateLanguage(keys)
662
651
  }
663
652
 
664
- private setStyleMap(){
665
- this.styleMap.set('themeColor', 'var(--basic-blue)')
666
- .set('bubbleReceivedBackground','var(--bck-msg-received)')
667
- .set('bubbleReceivedTextColor', 'var(--col-msg-received)')
668
- .set('bubbleSentBackground', 'var(--bck-msg-sent)')
669
- .set('bubbleSentTextColor', 'var(--col-msg-sent)')
670
- .set('buttonFontSize','var(--button-in-msg-font-size)')
671
- .set('buttonBackgroundColor', 'var(--buttonBackgroundColor)')
672
- .set('buttonTextColor', 'var(--buttonTextColor)')
673
- .set('buttonHoverBackgroundColor', 'var(--buttonHoverBackgroundColor)')
674
- .set('buttonHoverTextColor', 'var(--buttonHoverTextColor)')
675
-
676
- }
677
653
  // -------------------------------------------------------------------------------------
678
654
  // * retrieving the handler from chatManager
679
655
  // * if it DOESN'T EXIST I create a handler and connect and store it in the chatmanager
@@ -720,14 +696,10 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
720
696
  this.logger.log('[CONVS-DETAIL] - initConversationHandler (else) - this.messages: ', this.messages)
721
697
  this.logger.log('[CONVS-DETAIL] - initConversationHandler (else) - this.showMessageWelcome: ', this.showMessageWelcome)
722
698
  }
723
- this.logger.log('[CONVS-DETAIL] - initConversationHandler (else) - message ', this.messages, ' showIonContent', this.showIonContent)
724
699
  }
725
700
 
726
701
  initGroupsHandler() {
727
- if (
728
- this.conversationWith.startsWith('support-group') ||
729
- this.conversationWith.startsWith('group-')
730
- ) {
702
+ if (this.conversationWith.startsWith('support-group') || this.conversationWith.startsWith('group-')) {
731
703
  this.groupService.initialize(this.tenant, this.loggedUser.uid)
732
704
  this.logger.log('[CONVS-DETAIL] - initGroupsHandler - tenant', this.tenant, ' loggedUser UID', this.loggedUser.uid)
733
705
  }
@@ -763,18 +735,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
763
735
  }
764
736
  }
765
737
 
766
- onConversationLoaded(conversation): ConversationModel{
767
- if(conversation.attributes && conversation.attributes['projectId']){
768
- let project = localStorage.getItem(conversation.attributes['projectId'])
769
- if(project){
770
- project = JSON.parse(project)
771
- conversation.attributes.project_name = project['name']
772
- }
773
-
774
- }
775
- return conversation
776
- }
777
-
778
738
  setHeaderContent() {
779
739
  // this.logger.log('[CONVS-DETAIL] - setHeaderContent conversationWith', this.conversationWith)
780
740
  // this.logger.log('[CONVS-DETAIL] - setHeaderContent conversationsHandlerService', this.conversationsHandlerService)
@@ -789,8 +749,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
789
749
  conv.conversation_with,
790
750
  conv.conversation_with_fullname,
791
751
  conv.channel_type,
792
- conv.attributes['projectId'],
793
- conv.attributes['project_name']
794
752
  )
795
753
  }
796
754
  if(!conv){
@@ -804,8 +762,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
804
762
  conv.conversation_with,
805
763
  conv.conversation_with_fullname,
806
764
  conv.channel_type,
807
- conv.attributes['projectId'],
808
- conv.attributes['project_name']
809
765
  )
810
766
  let duration = getDateDifference(conv.timestamp, Date.now())
811
767
  duration.days > 10? this.disableTextarea = true: this.disableTextarea = false
@@ -824,8 +780,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
824
780
  conv.conversation_with,
825
781
  conv.conversation_with_fullname,
826
782
  conv.channel_type,
827
- conv.attributes['projectId'],
828
- conv.attributes['project_name']
829
783
  )
830
784
  let duration = getDateDifference(conv.timestamp, Date.now())
831
785
  duration.days > 10? this.disableTextarea = true: this.disableTextarea = false
@@ -838,8 +792,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
838
792
  conv.conversation_with,
839
793
  conv.conversation_with_fullname,
840
794
  conv.channel_type,
841
- conv.attributes['projectId'],
842
- conv.attributes['project_name']
843
795
  )
844
796
  }
845
797
  this.logger.log('[CONVS-DETAIL] - setHeaderContent > conversationAvatar: ', this.conversationAvatar)
@@ -1029,22 +981,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1029
981
  this.subscriptions.push(subscribe)
1030
982
  }
1031
983
 
1032
- subscriptionKey = 'conversationTyping';
1033
- subscription = this.subscriptions.find(item => item.key === subscriptionKey);
1034
- if (!subscription) {
1035
- subscription = this.typingService.BSIsTyping.pipe(takeUntil(this.unsubscribe$)).subscribe((data: any) => {
1036
- this.logger.debug('[CONVS-DETAIL] ***** BSIsTyping *****', data);
1037
- if (data) {
1038
- const isTypingUid = data.uid; //support-group-...
1039
- if (this.conversationWith === isTypingUid) {
1040
- that.subscribeTypings(data);
1041
- }
1042
- }
1043
- });
1044
- const subscribe = {key: subscriptionKey, value: subscription };
1045
- this.subscriptions.push(subscribe);
1046
- }
1047
-
1048
984
  // subscriptionKey = 'onGroupChange';
1049
985
  // subscription = this.subscriptions.find(item => item.key === subscriptionKey);
1050
986
  // if (!subscription) {
@@ -1065,6 +1001,18 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1065
1001
  // }
1066
1002
  }
1067
1003
 
1004
+ onConversationLoaded(conversation): ConversationModel{
1005
+ if(conversation.attributes && conversation.attributes['projectId']){
1006
+ let project = localStorage.getItem(conversation.attributes['projectId'])
1007
+ if(project){
1008
+ project = JSON.parse(project)
1009
+ conversation.attributes.project_name = project['name']
1010
+ }
1011
+ }
1012
+ return conversation
1013
+ }
1014
+
1015
+
1068
1016
  // -------------------------------------------------
1069
1017
  // addEventsKeyboard
1070
1018
  // -------------------------------------------------
@@ -1092,9 +1040,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1092
1040
  this.conversationAvatar = setConversationAvatar(
1093
1041
  this.conversationWith,
1094
1042
  this.conversationWithFullname,
1095
- this.channelType,
1096
- this.conversation.attributes['projectId'],
1097
- this.conversation.attributes['project_name']
1043
+ this.channelType
1098
1044
  )
1099
1045
 
1100
1046
  }
@@ -1271,6 +1217,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1271
1217
  this.logger.log('[CONVS-DETAIL] - returnChangeTextArea --> beforeSlash', beforeSlash)
1272
1218
  this.logger.log('[CONVS-DETAIL] - returnChangeTextArea --> afterSlash', afterSlash)
1273
1219
 
1220
+
1274
1221
  if(beforeSlash[beforeSlash.length-1].indexOf(' ') >= 0 && afterSlash === ''){
1275
1222
  this.HIDE_CANNED_RESPONSES = false
1276
1223
  } else if(beforeSlash[beforeSlash.length-1].indexOf(' ') < 0 && afterSlash === '' ){
@@ -1318,7 +1265,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1318
1265
 
1319
1266
  replaceTagInMessage(canned, event?) {
1320
1267
  const elTextArea = this.rowTextArea['el']
1321
- const textArea = elTextArea.getElementsByTagName('ion-textarea')[0] as HTMLInputElement;
1268
+ const textArea = elTextArea.getElementsByTagName('ion-textarea')[0]
1322
1269
  // console.log('[CONVS-DETAIL] replaceTagInMessage textArea ', textArea)
1323
1270
  // console.log('[CONVS-DETAIL] replaceTagInMessage textArea value', textArea.value,)
1324
1271
 
@@ -1333,17 +1280,20 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1333
1280
  // replace text
1334
1281
  var strTEMP = textArea.value.replace(/\/.*/ig, canned.text)
1335
1282
  strTEMP = this.replacePlaceholderInCanned(strTEMP)
1336
- this.logger.log('[CONVS-DETAIL] replaceTagInMessage strSearch ', strTEMP)
1283
+ this.logger.log('[CONVS-DETAIL] replaceTagInMessage strSearch before', strTEMP, textArea)
1337
1284
  // strTEMP = this.replacePlaceholderInCanned(strTEMP);
1338
1285
  // textArea.value = '';
1339
1286
  // that.messageString = strTEMP;
1340
1287
  textArea.value = strTEMP
1288
+ this.logger.log('[CONVS-DETAIL] replaceTagInMessage strSearch after', strTEMP, textArea)
1341
1289
  this.insertAtCursor(textArea, '')
1342
1290
  this.setCaretPosition(textArea)
1343
1291
  // setTimeout(() => {
1344
1292
  // // textArea.focus();
1293
+ // textArea.selectionEnd = textArea.value.length;
1345
1294
  // textArea.setFocus()
1346
1295
  // // this.resizeTextArea()
1296
+ // // this.setCaretPosition(textArea)
1347
1297
  // }, 200)
1348
1298
 
1349
1299
  }
@@ -1387,7 +1337,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1387
1337
  if(elTextArea){
1388
1338
  // console.log("[CONVS-DETAIL] onClickOpenCannedResponses textArea value", textArea.value)
1389
1339
  var lastChar = textArea.value[textArea.value.length - 1]
1390
- this.logger.log('[CONVS-DETAIL] onClickOpenCannedResponses lastChar --- textArea ', lastChar, textArea)
1340
+ this.logger.log('[CONVS-DETAIL] onClickOpenCannedResponses lastChar --- textArea ', lastChar, textArea)
1391
1341
  if (lastChar !== '/') {
1392
1342
  this.insertAtCursor(textArea, '/')
1393
1343
  }
@@ -1567,13 +1517,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1567
1517
  }
1568
1518
  }
1569
1519
 
1570
- onOpenCloseInfoConversation(event){
1571
- this.logger.log('[CONVS-DETAIL] onOpenCloseInfoConversation - openInfoConversation ', event)
1572
- this.resizeTextArea()
1573
- this.openInfoConversation = event
1574
- this.USER_HAS_OPENED_CLOSE_INFO_CONV = true
1575
- }
1576
-
1577
1520
  // -------------- START SCROLL/RESIZE -------------- //
1578
1521
  /** */
1579
1522
  resizeTextArea() {
@@ -1675,7 +1618,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1675
1618
  this.heightMessageTextArea = '57' // NK edited
1676
1619
  }
1677
1620
  }
1678
-
1679
1621
  checkAcceptedFile(draggedFileMimeType) {
1680
1622
  let isAcceptFile = false
1681
1623
  this.logger.log('[CONVS-DETAIL] > checkAcceptedFile - fileUploadAccept: ',this.appConfigProvider.getConfig().fileUploadAccept)
@@ -1697,17 +1639,26 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1697
1639
  if (accept_file_segment[1] === '*') {
1698
1640
  if (draggedFileMimeType.startsWith(accept_file_segment[0])) {
1699
1641
  isAcceptFile = true
1700
- this.logger.log('[CONVS-DETAIL] > checkAcceptedFile - fileUploadAccept isAcceptFile',isAcceptFile)
1642
+ this.logger.log(
1643
+ '[CONVS-DETAIL] > checkAcceptedFile - fileUploadAccept isAcceptFile',
1644
+ isAcceptFile,
1645
+ )
1701
1646
  return isAcceptFile
1702
1647
  } else {
1703
1648
  isAcceptFile = false
1704
- this.logger.log('[CONVS-DETAIL] > checkAcceptedFile - fileUploadAccept isAcceptFile',isAcceptFile)
1649
+ this.logger.log(
1650
+ '[CONVS-DETAIL] > checkAcceptedFile - fileUploadAccept isAcceptFile',
1651
+ isAcceptFile,
1652
+ )
1705
1653
  return isAcceptFile
1706
1654
  }
1707
1655
  } else if (accept_file_segment[1] !== '*') {
1708
1656
  if (draggedFileMimeType === accept_file) {
1709
1657
  isAcceptFile = true
1710
- this.logger.log('[CONVS-DETAIL] > checkAcceptedFile - fileUploadAccept isAcceptFile',isAcceptFile)
1658
+ this.logger.log(
1659
+ '[CONVS-DETAIL] > checkAcceptedFile - fileUploadAccept isAcceptFile',
1660
+ isAcceptFile,
1661
+ )
1711
1662
  return isAcceptFile
1712
1663
  }
1713
1664
  }
@@ -1717,64 +1668,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1717
1668
  }
1718
1669
  }
1719
1670
 
1720
-
1721
- initializeTyping() {
1722
- this.logger.debug('[CONVS-DETAIL] membersconversation', this.membersConversation)
1723
- if(this.loggedUser){
1724
- this.membersConversation.push(this.loggedUser.uid)
1725
- //this.setSubscriptions();
1726
- this.typingService.isTyping(this.conversationWith, this.loggedUser.uid, this.isDirect);
1727
- }
1728
- }
1729
-
1730
- /** */
1731
- subscribeTypings(data: any) {
1732
- const that = this;
1733
- try {
1734
- const key = data.uidUserTypingNow;
1735
- const waitTime = data.waitTime
1736
- this.nameUserTypingNow = null;
1737
- this.idUserTypingNow = null;
1738
-
1739
- if (data.nameUserTypingNow) {
1740
- this.nameUserTypingNow = data.nameUserTypingNow;
1741
- }
1742
- if (data.uidUserTypingNow){
1743
- this.idUserTypingNow = data.uidUserTypingNow
1744
- }
1745
- this.logger.debug('[CONV-COMP] subscribeTypings data:', data);
1746
- const userTyping = this.membersConversation.includes(key);
1747
- if ( !userTyping && key) {
1748
- this.isTypings = true;
1749
- setTimeout(function () {
1750
- that.scrollBottom(0)
1751
- }, 0);
1752
- // clearTimeout(this.setTimeoutWritingMessages);
1753
- this.setTimeoutWritingMessages = setTimeout(() => {
1754
- that.isTypings = false;
1755
- }, waitTime);
1756
- // this.initiTimeout(waitTime)
1757
- }
1758
- } catch (error) {
1759
- this.logger.error('[CONV-COMP] error: ', error);
1760
- }
1761
-
1762
- }
1763
-
1764
- initiTimeout(waitTime){
1765
- const that = this;
1766
- this.setTimeoutWritingMessages = setTimeout(() => {
1767
- that.isTypings = false;
1768
- }, waitTime);
1769
- }
1770
-
1771
- resetTimeout(){
1772
- this.isTypings = false
1773
- this.setTimeoutWritingMessages = null;
1774
- clearTimeout(this.setTimeoutWritingMessages)
1775
- }
1776
-
1777
-
1778
1671
  segmentNewAgentMessage(conversation: ConversationModel){
1779
1672
  let user = this.loggedUser
1780
1673
  try {
@@ -1821,7 +1714,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1821
1714
  this.logger.error('Event:Message Sent [group] error', err);
1822
1715
  }
1823
1716
  }
1824
-
1717
+
1825
1718
  // -------------------------------------------------------------
1826
1719
  // DRAG FILE
1827
1720
  // -------------------------------------------------------------
@@ -1881,7 +1774,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1881
1774
 
1882
1775
  async presentToastOnlyImageFilesAreAllowedToDrag() {
1883
1776
  const toast = await this.toastController.create({
1884
- message: this.translationsMap.get('FAILED_TO_UPLOAD_THE_FORMAT_IS_NOT_SUPPORTED'),
1777
+ message: this.translationMap.get('FAILED_TO_UPLOAD_THE_FORMAT_IS_NOT_SUPPORTED'),
1885
1778
  duration: 5000,
1886
1779
  color: 'danger',
1887
1780
  cssClass: 'toast-custom-class',
@@ -1,38 +1,35 @@
1
- <ion-header no-border class="ion-no-border" [class.mobile]="isMobile">
2
- <header-conversations-list *ngIf="conversationType ==='active'"
1
+ <ion-header no-border class="ion-no-border">
2
+ <app-ddp-header *ngIf="conversationType ==='active'"
3
3
  [numberOpenConv]="numberOpenConv"
4
4
  [supportMode]="supportMode"
5
5
  [archived_btn]="archived_btn"
6
6
  [writeto_btn]="writeto_btn"
7
7
  [sound_btn]="sound_btn"
8
- [isMobile]="isMobile"
9
8
  (onSoundChange)="onSoundChange($event)"
10
9
  (openContactsDirectory)=openContactsDirectory($event)
11
10
  (openProfileInfo)=openProfileInfo($event)>
12
- </header-conversations-list>
11
+ </app-ddp-header>
13
12
 
14
- <header-conversations-list-archived *ngIf="conversationType !=='active'"
13
+ <app-option-header *ngIf="conversationType !=='active'"
15
14
  [headerTitle]=headerTitle
16
- [isMobile]="isMobile"
17
15
  (onBackButton)=onBackButtonFN($event)>
18
- </header-conversations-list-archived>
16
+ </app-option-header>
19
17
  </ion-header>
20
-
21
18
  <!-- appScrollbarTheme -->
22
- <ion-content id="convs-list" #ioncontentconvlist class="list-avatar-page" [class.mobile]="isMobile">
19
+ <ion-content id="convs-list" #ioncontentconvlist class="list-avatar-page" >
23
20
  <!-- class="ps" style="position: relative; max-width: 600px; max-height: 100%;" [perfectScrollbar]="config" -->
24
21
  <div id="scrollbar2">
25
22
  <ion-list>
26
23
 
27
24
  <!-- supportMode && -->
28
- <ion-item *ngIf="displayNewConvsItem && conversationType !=='archived' && supportMode" class="ion-no-padding open-iframe-item" lines="none">
25
+ <ion-item *ngIf="displayNewConvsItem && conversationType !=='archived' && supportMode" class="ion-no-padding open-iframe-item">
29
26
  <div tabindex="0"></div>
30
27
  <!-- <ion-note class="pinned-project">
31
28
  {{ 'PINNED_PROJECT' | translate }}
32
29
  </ion-note> -->
33
30
 
34
31
  <app-project-item
35
- style="width: 100%; margin: 0px 8px; border-bottom: 1px dashed #d3dbe5;"
32
+ style="width: 100%;"
36
33
  (openUnsevedConvsEvent)="openUnsevedConversationIframe($event)"
37
34
  (projectIdEvent)="getLastProjectId($event)">
38
35
  </app-project-item>
@@ -4,10 +4,6 @@ ion-header {
4
4
  border-bottom-style: solid;
5
5
  border-color: var(--light-gray);
6
6
  border-bottom-width: thin;
7
- &:not(.mobile){
8
- border: none;
9
- background: var(--list-bkg-color);
10
- }
11
7
  }
12
8
 
13
9
  ion-content {
@@ -15,9 +11,6 @@ ion-content {
15
11
  --offset-bottom: auto!important;
16
12
  --overflow: hidden;
17
13
  overflow: scroll;
18
- &:not(.mobile){
19
- background: var(--list-bkg-color);
20
- }
21
14
 
22
15
  &::-webkit-scrollbar {
23
16
  width: 6px;
@@ -47,11 +40,10 @@ ion-list {
47
40
  list-style-type: none;
48
41
  margin: 0;
49
42
  padding: 0;
50
- background: transparent;
51
43
 
52
44
  ion-item {
53
45
  cursor: pointer;
54
- // height: 64px;
46
+ height: 64px;
55
47
  position: relative;
56
48
  display: flex;
57
49
  text-decoration: none;
@@ -59,7 +51,6 @@ ion-list {
59
51
  padding-right: 8px;
60
52
  --padding-start: 0;
61
53
  --inner-padding-end: 0;
62
- --background: transparent;
63
54
  .selected {
64
55
  border-radius: 10px;
65
56
  padding-left: 8px;
@@ -333,7 +324,7 @@ ion-list {
333
324
  padding-left: 0px !important ;
334
325
  padding-right: 0px !important;
335
326
  // height: 55px !important;
336
- // border-bottom: 1px solid rgba(0, 0, 0, 0.05);
327
+ border-bottom: 1px solid rgba(0, 0, 0, 0.05);
337
328
  --background-hover: #ffffff;
338
329
  cursor:default !important;
339
330
  }