@chat21/chat21-ionic 3.0.80 → 3.0.81-rc.1
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/CHANGELOG.md +71 -3
- package/README.md +2 -2
- package/deploy_amazon_beta.sh +29 -0
- package/deploy_amazon_prod.sh +30 -0
- package/package.json +2 -2
- package/src/app/app.component.html +7 -1
- package/src/app/app.component.scss +18 -2
- package/src/app/app.component.ts +113 -17
- package/src/app/app.module.ts +3 -1
- package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.ts +8 -1
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +77 -23
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +168 -86
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.ts +39 -2
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.html +11 -24
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.scss +6 -10
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.spec.ts +2 -2
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +16 -25
- package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.html +5 -1
- package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.scss +22 -15
- package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.ts +25 -5
- package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.html +2 -1
- package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.scss +14 -15
- package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.ts +24 -5
- package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.html +6 -1
- package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.scss +12 -13
- package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.ts +26 -5
- package/src/app/chatlib/conversation-detail/message/frame/frame.component.html +8 -2
- package/src/app/chatlib/conversation-detail/message/frame/frame.component.scss +36 -0
- package/src/app/chatlib/conversation-detail/message/frame/frame.component.ts +2 -2
- package/src/app/chatlib/conversation-detail/message/html/html.component.ts +0 -1
- package/src/app/chatlib/conversation-detail/message/image/image.component.html +1 -1
- package/src/app/chatlib/conversation-detail/message/image/image.component.scss +17 -5
- package/src/app/chatlib/conversation-detail/message/image/image.component.ts +1 -1
- package/src/app/chatlib/conversation-detail/message/info-message/info-message.component.scss +3 -2
- package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.html +16 -6
- package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.scss +1 -3
- package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.ts +2 -0
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +78 -52
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +62 -20
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +14 -10
- package/src/app/components/canned-response/canned-response.component.html +4 -4
- package/src/app/components/canned-response/canned-response.component.scss +8 -2
- package/src/app/components/canned-response/canned-response.component.ts +4 -4
- package/src/app/components/contacts-directory/contacts-directory.component.html +22 -26
- package/src/app/components/contacts-directory/contacts-directory.component.scss +8 -6
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +61 -42
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +98 -61
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +9 -25
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component_2.html +116 -0
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +8 -6
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +4 -4
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +25 -87
- package/src/app/components/conversation-info/info-content/info-content.component.html +2 -1
- package/src/app/components/conversation-info/info-content/info-content.component.ts +3 -2
- package/src/app/components/conversation-info/info-direct/info-direct.component.html +1 -9
- package/src/app/components/conversation-info/info-direct/info-direct.component.ts +0 -2
- package/src/app/components/conversation-info/info-group/info-group.component.html +44 -108
- package/src/app/components/conversation-info/info-group/info-group.component.scss +101 -61
- package/src/app/components/conversation-info/info-group/info-group.component.ts +1 -0
- package/src/app/components/{ddp-header/ddp-header.component.html → conversations-list/header-conversations-list/header-conversations-list.component.html} +3 -3
- package/src/app/components/{ddp-header/ddp-header.component.scss → conversations-list/header-conversations-list/header-conversations-list.component.scss} +16 -4
- package/src/app/components/{conversation-detail/bubble-my-message/bubble-my-message.component.spec.ts → conversations-list/header-conversations-list/header-conversations-list.component.spec.ts} +6 -6
- package/src/app/components/{ddp-header/ddp-header.component.ts → conversations-list/header-conversations-list/header-conversations-list.component.ts} +7 -16
- package/src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.html +12 -0
- package/src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.scss +14 -0
- package/src/app/components/{conversation-detail/option-header/option-header.component.spec.ts → conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.spec.ts} +5 -5
- package/src/app/components/{conversation-detail/option-header/option-header.component.ts → conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.ts} +5 -4
- package/src/app/components/navbar/navbar.component.html +103 -0
- package/src/app/components/navbar/navbar.component.scss +249 -0
- package/src/app/components/{ddp-header/ddp-header.component.spec.ts → navbar/navbar.component.spec.ts} +6 -6
- package/src/app/components/navbar/navbar.component.ts +189 -0
- package/src/app/components/project-item/project-item.component.html +98 -149
- package/src/app/components/project-item/project-item.component.scss +42 -35
- package/src/app/components/project-item/project-item.component.ts +16 -4
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +3 -3
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +2 -7
- package/src/app/components/utils/user-presence/user-presence.component.html +7 -2
- package/src/app/components/utils/user-presence/user-presence.component.scss +35 -18
- package/src/app/components/utils/user-presence/user-presence.component.ts +6 -10
- package/src/app/pages/contacts-directory/contacts-directory.page.html +1 -1
- package/src/app/pages/contacts-directory/contacts-directory.page.scss +41 -0
- package/src/app/pages/contacts-directory/contacts-directory.page.ts +2 -0
- package/src/app/pages/conversation-detail/conversation-detail.module.ts +0 -8
- package/src/app/pages/conversation-detail/conversation-detail.page.html +40 -23
- package/src/app/pages/conversation-detail/conversation-detail.page.scss +40 -250
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +183 -81
- package/src/app/pages/conversations-list/conversations-list.page.html +11 -8
- package/src/app/pages/conversations-list/conversations-list.page.scss +11 -2
- package/src/app/pages/conversations-list/conversations-list.page.ts +25 -22
- package/src/app/pages/create-canned-response/create-canned-response.page.ts +13 -13
- package/src/app/pages/loader-preview/loader-preview.page.html +1 -1
- package/src/app/pages/loader-preview/loader-preview.page.scss +4 -0
- package/src/app/pages/loader-preview/loader-preview.page.ts +1 -2
- package/src/app/pages/profile-info/profile-info.page.html +2 -4
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +1 -1
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +42 -0
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +1 -0
- package/src/app/services/canned-responses/canned-responses.service.ts +26 -0
- package/src/app/services/projects/projects.service.spec.ts +12 -0
- package/src/app/services/projects/projects.service.ts +43 -0
- package/src/app/services/tiledesk/tiledesk.service.ts +2 -26
- package/src/app/shared/shared.module.ts +24 -33
- package/src/assets/i18n/ar.json +278 -265
- package/src/assets/i18n/az.json +14 -1
- package/src/assets/i18n/de.json +15 -2
- package/src/assets/i18n/en.json +15 -2
- package/src/assets/i18n/es.json +15 -2
- package/src/assets/i18n/fr.json +14 -1
- package/src/assets/i18n/it.json +14 -1
- package/src/assets/i18n/kk.json +15 -2
- package/src/assets/i18n/pt.json +15 -2
- package/src/assets/i18n/ru.json +14 -1
- package/src/assets/i18n/sr.json +277 -264
- package/src/assets/i18n/sv.json +15 -2
- package/src/assets/i18n/tr.json +15 -2
- package/src/assets/i18n/uk.json +15 -2
- package/src/assets/i18n/uz.json +14 -1
- package/src/assets/js/chat21client.js +177 -149
- package/src/assets/sounds/interface-start.mp3 +0 -0
- package/src/assets/sounds/wheep-wheep.mp3 +0 -0
- package/src/chat21-core/models/conversation.ts +0 -1
- package/src/chat21-core/models/projects.ts +27 -0
- package/src/chat21-core/providers/firebase/firebase-typing.service.ts +7 -9
- package/src/chat21-core/utils/constants.ts +6 -1
- package/src/chat21-core/utils/convertRequestToConversation.ts +41 -0
- package/src/chat21-core/utils/user-typing/user-typing.component.html +8 -5
- package/src/chat21-core/utils/user-typing/user-typing.component.scss +87 -17
- package/src/chat21-core/utils/user-typing/user-typing.component.ts +12 -94
- package/src/chat21-core/utils/utils.ts +38 -10
- package/src/global.scss +52 -56
- package/src/index.html +2 -2
- package/src/variables.scss +30 -10
- package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.html +0 -3
- package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.scss +0 -21
- package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.spec.ts +0 -24
- package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.ts +0 -14
- package/src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component.html +0 -54
- package/src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component.scss +0 -98
- package/src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component.ts +0 -84
- package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.html +0 -30
- package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.scss +0 -83
- package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.spec.ts +0 -24
- package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.ts +0 -68
- package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.html +0 -3
- package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.scss +0 -10
- package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.spec.ts +0 -24
- package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.ts +0 -14
- package/src/app/components/conversation-detail/option-header/option-header.component.html +0 -13
- package/src/app/components/conversation-detail/option-header/option-header.component.scss +0 -0
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { TYPE_DIRECT } from 'src/chat21-core/utils/constants';
|
|
2
|
-
import {
|
|
2
|
+
import { URL_SOUND_LIST_CONVERSATION } from './../../../chat21-core/utils/constants'
|
|
3
3
|
import {
|
|
4
4
|
Component,
|
|
5
5
|
OnInit,
|
|
@@ -115,16 +115,14 @@ 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
|
|
119
118
|
public isMobile = false
|
|
120
119
|
public isLessThan991px = false // nk added
|
|
121
|
-
public isTyping = false
|
|
122
|
-
public nameUserTypingNow: string
|
|
123
120
|
|
|
124
121
|
public heightMessageTextArea = ''
|
|
125
|
-
public
|
|
122
|
+
public translationsMap: Map<string, string> = new Map()
|
|
123
|
+
public translationsHeaderMap: Map<string, string> = new Map()
|
|
124
|
+
public translationsContentMap: Map<string, string> = new Map()
|
|
126
125
|
public conversationAvatar: any
|
|
127
|
-
public membersConversation: any
|
|
128
126
|
public member: UserModel
|
|
129
127
|
public urlConversationSupportGroup: any
|
|
130
128
|
public isFileSelected: boolean
|
|
@@ -150,7 +148,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
150
148
|
//SOUND
|
|
151
149
|
setTimeoutSound: any;
|
|
152
150
|
audio: any;
|
|
153
|
-
isOpenInfoConversation: boolean;
|
|
154
151
|
USER_HAS_OPENED_CLOSE_INFO_CONV: boolean = false;
|
|
155
152
|
isHovering: boolean = false;
|
|
156
153
|
conversation_count: number;
|
|
@@ -172,6 +169,15 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
172
169
|
public disableTextarea: boolean;
|
|
173
170
|
appsidebarIsWide: boolean;
|
|
174
171
|
|
|
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
|
+
|
|
175
181
|
/**
|
|
176
182
|
* Constructor
|
|
177
183
|
* @param route
|
|
@@ -240,21 +246,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
240
246
|
// -----------------------------------------------------------
|
|
241
247
|
ngOnInit() {
|
|
242
248
|
this.logger.log('[CONVS-DETAIL] > ngOnInit - window.location: ', window.location);
|
|
243
|
-
|
|
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
|
-
// });
|
|
249
|
+
|
|
258
250
|
this.getConversations();
|
|
259
251
|
this.watchToConnectionStatus();
|
|
260
252
|
this.getOSCODE();
|
|
@@ -275,21 +267,21 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
275
267
|
// console.log('[CONVS-DETAIL] HAS CLICKED ENLARGE SIDEBAR WIDE chatAreaEle ', chatAreaEle)
|
|
276
268
|
|
|
277
269
|
if (event && event.data && event.data.action && event.data.action === 'openAppsSidebarWideMode' && event.data.parameter === true) {
|
|
278
|
-
this.logger.log('[CONVS-DETAIL]
|
|
270
|
+
this.logger.log('[CONVS-DETAIL] openAppsSidebarWideMode EVENT-> open' )
|
|
279
271
|
this.appsidebarIsWide = true
|
|
280
272
|
// chat21InfoConversationEle.classList.add("info-convs-apps-sidebar-wide");
|
|
281
273
|
// chatAreaEle.classList.add("chat-area-apps-sidebar-wide");
|
|
282
274
|
}
|
|
283
275
|
|
|
284
276
|
if (event && event.data && event.data.action && event.data.action === 'openAppsSidebarWideMode' && event.data.parameter === false) {
|
|
285
|
-
this.logger.log('[CONVS-DETAIL]
|
|
277
|
+
this.logger.log('[CONVS-DETAIL] openAppsSidebarWideMode EVENT-> close')
|
|
286
278
|
this.appsidebarIsWide = false
|
|
287
279
|
// chat21InfoConversationEle.classList.remove("info-convs-apps-sidebar-wide");
|
|
288
280
|
// chatAreaEle.classList.remove("chat-area-apps-sidebar-wide");
|
|
289
281
|
}
|
|
290
282
|
|
|
291
283
|
if (event && event.data && event.data.action && event.data.action === 'closeAppsSidebarWideMode' && event.data.parameter === true) {
|
|
292
|
-
this.logger.log('[CONVS-DETAIL]
|
|
284
|
+
this.logger.log('[CONVS-DETAIL] closeAppsSidebarWideMode EVENT-> close')
|
|
293
285
|
this.appsidebarIsWide = false
|
|
294
286
|
// chat21InfoConversationEle.classList.remove("info-convs-apps-sidebar-wide");
|
|
295
287
|
// chatAreaEle.classList.remove("chat-area-apps-sidebar-wide");
|
|
@@ -339,7 +331,12 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
339
331
|
// this.updateConversationBadge()
|
|
340
332
|
// }
|
|
341
333
|
if(conv.uid && conv.uid === this.conversationWith){
|
|
342
|
-
this.conversationAvatar = setConversationAvatar(
|
|
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'])
|
|
343
340
|
}
|
|
344
341
|
|
|
345
342
|
}
|
|
@@ -477,6 +474,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
477
474
|
this.loggedUser = this.tiledeskAuthService.getCurrentUser()
|
|
478
475
|
this.logger.log('[CONVS-DETAIL] - initialize -> loggedUser: ', this.loggedUser)
|
|
479
476
|
this.translations()
|
|
477
|
+
this.setStyleMap()
|
|
480
478
|
// this.conversationSelected = localStorage.getItem('conversationSelected');
|
|
481
479
|
this.showButtonToBottom = false
|
|
482
480
|
this.showMessageWelcome = false
|
|
@@ -491,7 +489,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
491
489
|
|
|
492
490
|
this.messages = [] // list messages of conversation
|
|
493
491
|
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
|
|
495
492
|
|
|
496
493
|
if (checkPlatformIsMobile()) {
|
|
497
494
|
this.isMobile = true
|
|
@@ -507,13 +504,11 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
507
504
|
if (checkWindowWidthIsLessThan991px()) {
|
|
508
505
|
this.logger.log('[CONVS-DETAIL] - initialize -> checkWindowWidthIsLessThan991px ', checkWindowWidthIsLessThan991px())
|
|
509
506
|
this.openInfoConversation = false // indica se è aperto il box info conversazione
|
|
510
|
-
this.
|
|
511
|
-
this.logger.log('[CONVS-DETAIL] - initialize -> openInfoConversation ', this.openInfoConversation, ' -> isOpenInfoConversation ', this.isOpenInfoConversation)
|
|
507
|
+
this.logger.log('[CONVS-DETAIL] - initialize -> openInfoConversation ', this.openInfoConversation)
|
|
512
508
|
} else {
|
|
513
509
|
this.logger.log('[CONVS-DETAIL] - initialize -> checkWindowWidthIsLessThan991px ', checkWindowWidthIsLessThan991px())
|
|
514
510
|
this.openInfoConversation = true
|
|
515
|
-
this.
|
|
516
|
-
this.logger.log('[CONVS-DETAIL] - initialize -> openInfoConversation ', this.openInfoConversation, ' -> isOpenInfoConversation ', this.isOpenInfoConversation)
|
|
511
|
+
this.logger.log('[CONVS-DETAIL] - initialize -> openInfoConversation ', this.openInfoConversation)
|
|
517
512
|
}
|
|
518
513
|
}
|
|
519
514
|
|
|
@@ -532,6 +527,8 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
532
527
|
this.addEventsKeyboard()
|
|
533
528
|
this.startConversation()
|
|
534
529
|
this.updateConversationBadge() // AGGIORNO STATO DELLA CONVERSAZIONE A 'LETTA' (is_new = false)
|
|
530
|
+
|
|
531
|
+
this.initializeTyping();
|
|
535
532
|
}
|
|
536
533
|
|
|
537
534
|
_getProjectIdByConversationWith(conversationWith: string) {
|
|
@@ -566,22 +563,12 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
566
563
|
})
|
|
567
564
|
}
|
|
568
565
|
|
|
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
|
-
|
|
578
566
|
@HostListener('window:resize', ['$event'])
|
|
579
567
|
onResize(event: any) {
|
|
580
568
|
const newInnerWidth = event.target.innerWidth
|
|
581
569
|
if (newInnerWidth < 991) {
|
|
582
570
|
if (this.USER_HAS_OPENED_CLOSE_INFO_CONV === false) {
|
|
583
571
|
this.openInfoConversation = false
|
|
584
|
-
this.isOpenInfoConversation = false
|
|
585
572
|
}
|
|
586
573
|
}
|
|
587
574
|
}
|
|
@@ -600,7 +587,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
600
587
|
'LABEL_TO',
|
|
601
588
|
'LABEL_LAST_ACCESS',
|
|
602
589
|
'ARRAY_DAYS',
|
|
603
|
-
|
|
590
|
+
|
|
604
591
|
'LABEL_INFO_ADVANCED',
|
|
605
592
|
'ID_CONVERSATION',
|
|
606
593
|
'UPLOAD_FILE_ERROR',
|
|
@@ -619,11 +606,35 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
619
606
|
'THERE_ARE_NO_CANNED_RESPONSES_AVAILABLE',
|
|
620
607
|
'TO_CREATE_THEM_GO_TO_THE_PROJECT',
|
|
621
608
|
"AddNewCannedResponse",
|
|
622
|
-
"LABEL_LOADING"
|
|
609
|
+
"LABEL_LOADING",
|
|
610
|
+
"DIRECT_CHAT",
|
|
611
|
+
"GROUP_CHAT",
|
|
623
612
|
]
|
|
624
613
|
|
|
625
|
-
|
|
626
|
-
|
|
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',
|
|
632
|
+
]
|
|
633
|
+
|
|
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)
|
|
627
638
|
}
|
|
628
639
|
|
|
629
640
|
// --------------------------------------------------------
|
|
@@ -650,6 +661,19 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
650
661
|
return this.customTranslateService.translateLanguage(keys)
|
|
651
662
|
}
|
|
652
663
|
|
|
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
|
+
}
|
|
653
677
|
// -------------------------------------------------------------------------------------
|
|
654
678
|
// * retrieving the handler from chatManager
|
|
655
679
|
// * if it DOESN'T EXIST I create a handler and connect and store it in the chatmanager
|
|
@@ -739,6 +763,18 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
739
763
|
}
|
|
740
764
|
}
|
|
741
765
|
|
|
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
|
+
|
|
742
778
|
setHeaderContent() {
|
|
743
779
|
// this.logger.log('[CONVS-DETAIL] - setHeaderContent conversationWith', this.conversationWith)
|
|
744
780
|
// this.logger.log('[CONVS-DETAIL] - setHeaderContent conversationsHandlerService', this.conversationsHandlerService)
|
|
@@ -753,6 +789,8 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
753
789
|
conv.conversation_with,
|
|
754
790
|
conv.conversation_with_fullname,
|
|
755
791
|
conv.channel_type,
|
|
792
|
+
conv.attributes['projectId'],
|
|
793
|
+
conv.attributes['project_name']
|
|
756
794
|
)
|
|
757
795
|
}
|
|
758
796
|
if(!conv){
|
|
@@ -766,6 +804,8 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
766
804
|
conv.conversation_with,
|
|
767
805
|
conv.conversation_with_fullname,
|
|
768
806
|
conv.channel_type,
|
|
807
|
+
conv.attributes['projectId'],
|
|
808
|
+
conv.attributes['project_name']
|
|
769
809
|
)
|
|
770
810
|
let duration = getDateDifference(conv.timestamp, Date.now())
|
|
771
811
|
duration.days > 10? this.disableTextarea = true: this.disableTextarea = false
|
|
@@ -784,6 +824,8 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
784
824
|
conv.conversation_with,
|
|
785
825
|
conv.conversation_with_fullname,
|
|
786
826
|
conv.channel_type,
|
|
827
|
+
conv.attributes['projectId'],
|
|
828
|
+
conv.attributes['project_name']
|
|
787
829
|
)
|
|
788
830
|
let duration = getDateDifference(conv.timestamp, Date.now())
|
|
789
831
|
duration.days > 10? this.disableTextarea = true: this.disableTextarea = false
|
|
@@ -796,6 +838,8 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
796
838
|
conv.conversation_with,
|
|
797
839
|
conv.conversation_with_fullname,
|
|
798
840
|
conv.channel_type,
|
|
841
|
+
conv.attributes['projectId'],
|
|
842
|
+
conv.attributes['project_name']
|
|
799
843
|
)
|
|
800
844
|
}
|
|
801
845
|
this.logger.log('[CONVS-DETAIL] - setHeaderContent > conversationAvatar: ', this.conversationAvatar)
|
|
@@ -985,6 +1029,22 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
985
1029
|
this.subscriptions.push(subscribe)
|
|
986
1030
|
}
|
|
987
1031
|
|
|
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
|
+
|
|
988
1048
|
// subscriptionKey = 'onGroupChange';
|
|
989
1049
|
// subscription = this.subscriptions.find(item => item.key === subscriptionKey);
|
|
990
1050
|
// if (!subscription) {
|
|
@@ -1005,18 +1065,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1005
1065
|
// }
|
|
1006
1066
|
}
|
|
1007
1067
|
|
|
1008
|
-
onConversationLoaded(conversation): ConversationModel{
|
|
1009
|
-
if(conversation.attributes && conversation.attributes['projectId']){
|
|
1010
|
-
let project = localStorage.getItem(conversation.attributes['projectId'])
|
|
1011
|
-
if(project){
|
|
1012
|
-
project = JSON.parse(project)
|
|
1013
|
-
conversation.attributes.project_name = project['name']
|
|
1014
|
-
}
|
|
1015
|
-
}
|
|
1016
|
-
return conversation
|
|
1017
|
-
}
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
1068
|
// -------------------------------------------------
|
|
1021
1069
|
// addEventsKeyboard
|
|
1022
1070
|
// -------------------------------------------------
|
|
@@ -1044,7 +1092,9 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1044
1092
|
this.conversationAvatar = setConversationAvatar(
|
|
1045
1093
|
this.conversationWith,
|
|
1046
1094
|
this.conversationWithFullname,
|
|
1047
|
-
this.channelType
|
|
1095
|
+
this.channelType,
|
|
1096
|
+
this.conversation.attributes['projectId'],
|
|
1097
|
+
this.conversation.attributes['project_name']
|
|
1048
1098
|
)
|
|
1049
1099
|
|
|
1050
1100
|
}
|
|
@@ -1221,7 +1271,6 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1221
1271
|
this.logger.log('[CONVS-DETAIL] - returnChangeTextArea --> beforeSlash', beforeSlash)
|
|
1222
1272
|
this.logger.log('[CONVS-DETAIL] - returnChangeTextArea --> afterSlash', afterSlash)
|
|
1223
1273
|
|
|
1224
|
-
|
|
1225
1274
|
if(beforeSlash[beforeSlash.length-1].indexOf(' ') >= 0 && afterSlash === ''){
|
|
1226
1275
|
this.HIDE_CANNED_RESPONSES = false
|
|
1227
1276
|
} else if(beforeSlash[beforeSlash.length-1].indexOf(' ') < 0 && afterSlash === '' ){
|
|
@@ -1269,7 +1318,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1269
1318
|
|
|
1270
1319
|
replaceTagInMessage(canned, event?) {
|
|
1271
1320
|
const elTextArea = this.rowTextArea['el']
|
|
1272
|
-
const textArea = elTextArea.getElementsByTagName('ion-textarea')[0]
|
|
1321
|
+
const textArea = elTextArea.getElementsByTagName('ion-textarea')[0] as HTMLInputElement;
|
|
1273
1322
|
// console.log('[CONVS-DETAIL] replaceTagInMessage textArea ', textArea)
|
|
1274
1323
|
// console.log('[CONVS-DETAIL] replaceTagInMessage textArea value', textArea.value,)
|
|
1275
1324
|
|
|
@@ -1284,20 +1333,17 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1284
1333
|
// replace text
|
|
1285
1334
|
var strTEMP = textArea.value.replace(/\/.*/ig, canned.text)
|
|
1286
1335
|
strTEMP = this.replacePlaceholderInCanned(strTEMP)
|
|
1287
|
-
this.logger.log('[CONVS-DETAIL] replaceTagInMessage strSearch
|
|
1336
|
+
this.logger.log('[CONVS-DETAIL] replaceTagInMessage strSearch ', strTEMP)
|
|
1288
1337
|
// strTEMP = this.replacePlaceholderInCanned(strTEMP);
|
|
1289
1338
|
// textArea.value = '';
|
|
1290
1339
|
// that.messageString = strTEMP;
|
|
1291
1340
|
textArea.value = strTEMP
|
|
1292
|
-
this.logger.log('[CONVS-DETAIL] replaceTagInMessage strSearch after', strTEMP, textArea)
|
|
1293
1341
|
this.insertAtCursor(textArea, '')
|
|
1294
1342
|
this.setCaretPosition(textArea)
|
|
1295
1343
|
// setTimeout(() => {
|
|
1296
1344
|
// // textArea.focus();
|
|
1297
|
-
// textArea.selectionEnd = textArea.value.length;
|
|
1298
1345
|
// textArea.setFocus()
|
|
1299
1346
|
// // this.resizeTextArea()
|
|
1300
|
-
// // this.setCaretPosition(textArea)
|
|
1301
1347
|
// }, 200)
|
|
1302
1348
|
|
|
1303
1349
|
}
|
|
@@ -1338,11 +1384,10 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1338
1384
|
if(!this.HIDE_CANNED_RESPONSES){
|
|
1339
1385
|
const elTextArea = this.rowTextArea['el']
|
|
1340
1386
|
const textArea = elTextArea.getElementsByTagName('ion-textarea')[0]
|
|
1341
|
-
if(
|
|
1342
|
-
this.logger.log('[CONVS-DETAIL] onClickOpenCannedResponses textArea ', textArea)
|
|
1387
|
+
if(elTextArea){
|
|
1343
1388
|
// console.log("[CONVS-DETAIL] onClickOpenCannedResponses textArea value", textArea.value)
|
|
1344
1389
|
var lastChar = textArea.value[textArea.value.length - 1]
|
|
1345
|
-
|
|
1390
|
+
this.logger.log('[CONVS-DETAIL] onClickOpenCannedResponses lastChar --- textArea ', lastChar, textArea)
|
|
1346
1391
|
if (lastChar !== '/') {
|
|
1347
1392
|
this.insertAtCursor(textArea, '/')
|
|
1348
1393
|
}
|
|
@@ -1522,6 +1567,13 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1522
1567
|
}
|
|
1523
1568
|
}
|
|
1524
1569
|
|
|
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
|
+
|
|
1525
1577
|
// -------------- START SCROLL/RESIZE -------------- //
|
|
1526
1578
|
/** */
|
|
1527
1579
|
resizeTextArea() {
|
|
@@ -1623,6 +1675,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1623
1675
|
this.heightMessageTextArea = '57' // NK edited
|
|
1624
1676
|
}
|
|
1625
1677
|
}
|
|
1678
|
+
|
|
1626
1679
|
checkAcceptedFile(draggedFileMimeType) {
|
|
1627
1680
|
let isAcceptFile = false
|
|
1628
1681
|
this.logger.log('[CONVS-DETAIL] > checkAcceptedFile - fileUploadAccept: ',this.appConfigProvider.getConfig().fileUploadAccept)
|
|
@@ -1644,26 +1697,17 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1644
1697
|
if (accept_file_segment[1] === '*') {
|
|
1645
1698
|
if (draggedFileMimeType.startsWith(accept_file_segment[0])) {
|
|
1646
1699
|
isAcceptFile = true
|
|
1647
|
-
this.logger.log(
|
|
1648
|
-
'[CONVS-DETAIL] > checkAcceptedFile - fileUploadAccept isAcceptFile',
|
|
1649
|
-
isAcceptFile,
|
|
1650
|
-
)
|
|
1700
|
+
this.logger.log('[CONVS-DETAIL] > checkAcceptedFile - fileUploadAccept isAcceptFile',isAcceptFile)
|
|
1651
1701
|
return isAcceptFile
|
|
1652
1702
|
} else {
|
|
1653
1703
|
isAcceptFile = false
|
|
1654
|
-
this.logger.log(
|
|
1655
|
-
'[CONVS-DETAIL] > checkAcceptedFile - fileUploadAccept isAcceptFile',
|
|
1656
|
-
isAcceptFile,
|
|
1657
|
-
)
|
|
1704
|
+
this.logger.log('[CONVS-DETAIL] > checkAcceptedFile - fileUploadAccept isAcceptFile',isAcceptFile)
|
|
1658
1705
|
return isAcceptFile
|
|
1659
1706
|
}
|
|
1660
1707
|
} else if (accept_file_segment[1] !== '*') {
|
|
1661
1708
|
if (draggedFileMimeType === accept_file) {
|
|
1662
1709
|
isAcceptFile = true
|
|
1663
|
-
this.logger.log(
|
|
1664
|
-
'[CONVS-DETAIL] > checkAcceptedFile - fileUploadAccept isAcceptFile',
|
|
1665
|
-
isAcceptFile,
|
|
1666
|
-
)
|
|
1710
|
+
this.logger.log('[CONVS-DETAIL] > checkAcceptedFile - fileUploadAccept isAcceptFile',isAcceptFile)
|
|
1667
1711
|
return isAcceptFile
|
|
1668
1712
|
}
|
|
1669
1713
|
}
|
|
@@ -1673,6 +1717,64 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1673
1717
|
}
|
|
1674
1718
|
}
|
|
1675
1719
|
|
|
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
|
+
|
|
1676
1778
|
segmentNewAgentMessage(conversation: ConversationModel){
|
|
1677
1779
|
let user = this.loggedUser
|
|
1678
1780
|
try {
|
|
@@ -1719,7 +1821,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1719
1821
|
this.logger.error('Event:Message Sent [group] error', err);
|
|
1720
1822
|
}
|
|
1721
1823
|
}
|
|
1722
|
-
|
|
1824
|
+
|
|
1723
1825
|
// -------------------------------------------------------------
|
|
1724
1826
|
// DRAG FILE
|
|
1725
1827
|
// -------------------------------------------------------------
|
|
@@ -1779,7 +1881,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
|
|
|
1779
1881
|
|
|
1780
1882
|
async presentToastOnlyImageFilesAreAllowedToDrag() {
|
|
1781
1883
|
const toast = await this.toastController.create({
|
|
1782
|
-
message: this.
|
|
1884
|
+
message: this.translationsMap.get('FAILED_TO_UPLOAD_THE_FORMAT_IS_NOT_SUPPORTED'),
|
|
1783
1885
|
duration: 5000,
|
|
1784
1886
|
color: 'danger',
|
|
1785
1887
|
cssClass: 'toast-custom-class',
|
|
@@ -1,35 +1,38 @@
|
|
|
1
|
-
<ion-header no-border class="ion-no-border">
|
|
2
|
-
<
|
|
1
|
+
<ion-header no-border class="ion-no-border" [class.mobile]="isMobile">
|
|
2
|
+
<header-conversations-list *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"
|
|
8
9
|
(onSoundChange)="onSoundChange($event)"
|
|
9
10
|
(openContactsDirectory)=openContactsDirectory($event)
|
|
10
11
|
(openProfileInfo)=openProfileInfo($event)>
|
|
11
|
-
</
|
|
12
|
+
</header-conversations-list>
|
|
12
13
|
|
|
13
|
-
<
|
|
14
|
+
<header-conversations-list-archived *ngIf="conversationType !=='active'"
|
|
14
15
|
[headerTitle]=headerTitle
|
|
16
|
+
[isMobile]="isMobile"
|
|
15
17
|
(onBackButton)=onBackButtonFN($event)>
|
|
16
|
-
</
|
|
18
|
+
</header-conversations-list-archived>
|
|
17
19
|
</ion-header>
|
|
20
|
+
|
|
18
21
|
<!-- appScrollbarTheme -->
|
|
19
|
-
<ion-content id="convs-list" #ioncontentconvlist class="list-avatar-page" >
|
|
22
|
+
<ion-content id="convs-list" #ioncontentconvlist class="list-avatar-page" [class.mobile]="isMobile">
|
|
20
23
|
<!-- class="ps" style="position: relative; max-width: 600px; max-height: 100%;" [perfectScrollbar]="config" -->
|
|
21
24
|
<div id="scrollbar2">
|
|
22
25
|
<ion-list>
|
|
23
26
|
|
|
24
27
|
<!-- supportMode && -->
|
|
25
|
-
<ion-item *ngIf="displayNewConvsItem && conversationType !=='archived' && supportMode" class="ion-no-padding open-iframe-item">
|
|
28
|
+
<ion-item *ngIf="displayNewConvsItem && conversationType !=='archived' && supportMode" class="ion-no-padding open-iframe-item" lines="none">
|
|
26
29
|
<div tabindex="0"></div>
|
|
27
30
|
<!-- <ion-note class="pinned-project">
|
|
28
31
|
{{ 'PINNED_PROJECT' | translate }}
|
|
29
32
|
</ion-note> -->
|
|
30
33
|
|
|
31
34
|
<app-project-item
|
|
32
|
-
style="width: 100%;"
|
|
35
|
+
style="width: 100%; margin: 0px 8px; border-bottom: 1px dashed #d3dbe5;"
|
|
33
36
|
(openUnsevedConvsEvent)="openUnsevedConversationIframe($event)"
|
|
34
37
|
(projectIdEvent)="getLastProjectId($event)">
|
|
35
38
|
</app-project-item>
|
|
@@ -4,6 +4,10 @@ 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
|
+
}
|
|
7
11
|
}
|
|
8
12
|
|
|
9
13
|
ion-content {
|
|
@@ -11,6 +15,9 @@ ion-content {
|
|
|
11
15
|
--offset-bottom: auto!important;
|
|
12
16
|
--overflow: hidden;
|
|
13
17
|
overflow: scroll;
|
|
18
|
+
&:not(.mobile){
|
|
19
|
+
background: var(--list-bkg-color);
|
|
20
|
+
}
|
|
14
21
|
|
|
15
22
|
&::-webkit-scrollbar {
|
|
16
23
|
width: 6px;
|
|
@@ -40,10 +47,11 @@ ion-list {
|
|
|
40
47
|
list-style-type: none;
|
|
41
48
|
margin: 0;
|
|
42
49
|
padding: 0;
|
|
50
|
+
background: transparent;
|
|
43
51
|
|
|
44
52
|
ion-item {
|
|
45
53
|
cursor: pointer;
|
|
46
|
-
height: 64px;
|
|
54
|
+
// height: 64px;
|
|
47
55
|
position: relative;
|
|
48
56
|
display: flex;
|
|
49
57
|
text-decoration: none;
|
|
@@ -51,6 +59,7 @@ ion-list {
|
|
|
51
59
|
padding-right: 8px;
|
|
52
60
|
--padding-start: 0;
|
|
53
61
|
--inner-padding-end: 0;
|
|
62
|
+
--background: transparent;
|
|
54
63
|
.selected {
|
|
55
64
|
border-radius: 10px;
|
|
56
65
|
padding-left: 8px;
|
|
@@ -324,7 +333,7 @@ ion-list {
|
|
|
324
333
|
padding-left: 0px !important ;
|
|
325
334
|
padding-right: 0px !important;
|
|
326
335
|
// height: 55px !important;
|
|
327
|
-
border-bottom: 1px solid rgba(0, 0, 0, 0.05);
|
|
336
|
+
// border-bottom: 1px solid rgba(0, 0, 0, 0.05);
|
|
328
337
|
--background-hover: #ffffff;
|
|
329
338
|
cursor:default !important;
|
|
330
339
|
}
|