@chat21/chat21-ionic 3.4.15 → 3.4.16-rc1

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 CHANGED
@@ -1,14 +1,15 @@
1
- # **CHAT21 IONIC - Changelog**
1
+ # ** CHAT21 IONIC - Changelog**
2
2
 
3
3
  ### **Authors**:
4
4
  *Gabriele Panico* <br>
5
- *Dario De Pascalis* <br>
6
- *Giovanni Troisi* <br>
7
- *Nicola Lanzilotto* <br>
8
5
  ### **Copyrigth**:
9
6
  *Tiledesk SRL*
10
7
 
11
8
 
9
+ # 3.4.16-rc1
10
+ - **added**: moved copilot from bubble-message to external rigth side
11
+ - **bug-fixed**: internal note note visible for message-sent section (rigth side)
12
+
12
13
  # 3.4.15 in PROD
13
14
 
14
15
  # 3.4.14 in PROD
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@chat21/chat21-ionic",
3
3
  "author": "Tiledesk SRL",
4
- "version": "3.4.15",
4
+ "version": "3.4.16-rc1",
5
5
  "license": "MIT License",
6
6
  "homepage": "https://tiledesk.com/",
7
7
  "repository": {
@@ -1242,9 +1242,9 @@ export class AppComponent implements OnInit {
1242
1242
  }
1243
1243
 
1244
1244
  goToDashboardLogin(){
1245
- let DASHBOARD_URL = this.appConfigProvider.getConfig().dashboardUrl + '#/login'
1246
- const myWindow = window.open(DASHBOARD_URL, '_self');
1247
- myWindow.focus();
1245
+ // let DASHBOARD_URL = this.appConfigProvider.getConfig().dashboardUrl + '#/login'
1246
+ // const myWindow = window.open(DASHBOARD_URL, '_self');
1247
+ // myWindow.focus();
1248
1248
  }
1249
1249
 
1250
1250
 
@@ -110,9 +110,10 @@
110
110
 
111
111
  <!--backgroundColor non viene ancora usato -->
112
112
  <chat-bubble-message class="messages msg_sent" id="message_msg_sent" style="position: relative;"
113
- [ngClass]="{'has-metadata': (isImage(message) || isFrame(message)), 'privateMsg': (message?.attributes && message?.attributes?.subtype === 'private')}"
114
113
  [class.no-background]="(isImage(message) || isFrame(message)) && message?.text && message?.text.trim() === '' "
115
114
  [class.emoticon]="isEmojii(message?.text)"
115
+ [class.has-metadata]="(isImage(message) || isFrame(message))"
116
+ [class.privateMsg]="(message?.attributes && message?.attributes?.subtype === 'private')"
116
117
  [ngStyle]="{'background': stylesMap.get('bubbleSentBackground'), 'color': stylesMap.get('bubbleSentTextColor')}"
117
118
  [ngClass]="{'button-in-msg' : message.metadata && message.metadata.button}"
118
119
  [message]="message"
@@ -154,9 +155,10 @@
154
155
  <div class="bubble-container">
155
156
  <!--backgroundColor non viene ancora usato -->
156
157
  <chat-bubble-message class="messages msg_receive" id="message_msg_receive"
157
- [ngClass]="{'has-metadata': (isImage(message) || isFrame(message)), 'privateMsg': (message?.attributes && message?.attributes?.subtype === 'private')}"
158
158
  [class.no-background]="(isImage(message) || isFrame(message)) && message?.text && message?.text.trim() === '' "
159
159
  [class.emoticon]="isEmojii(message?.text)"
160
+ [class.has-metadata]="(isImage(message) || isFrame(message))"
161
+ [class.privateMsg]="(message?.attributes && message?.attributes?.subtype === 'private')"
160
162
  [ngStyle]="{'background': stylesMap?.get('bubbleReceivedBackground'), 'color': stylesMap.get('bubbleReceivedTextColor')}"
161
163
  [isSameSender]="isSameSender(message?.sender, i)"
162
164
  [message]="message"
@@ -164,7 +166,6 @@
164
166
  [fontSize]="stylesMap?.get('fontSize')"
165
167
  [fontFamily]="stylesMap?.get('fontFamily')"
166
168
  [stylesMap]="stylesMap"
167
- [isCopilotEnabled]="isCopilotEnabled"
168
169
  (onBeforeMessageRender)="onBeforeMessageRenderFN($event)"
169
170
  (onAfterMessageRender)="onAfterMessageRenderFN($event)"
170
171
  (onElementRendered)="onElementRenderedFN($event)"
@@ -180,6 +181,13 @@
180
181
  </ion-button>
181
182
  </ng-container>
182
183
 
184
+ <ng-container *ngIf="isCopilotEnabled">
185
+ <ion-button shape="round" size="small" class="btn-info-msg btn-copilot" ion-button fill="clear"
186
+ (click)="onClickOptionsCopilot(message, i)">
187
+ <ion-icon id="copilot" src="assets/images/icons/copilot.svg"></ion-icon>
188
+ </ion-button>
189
+ </ng-container>
190
+
183
191
  <div class="message-date-hover" *ngIf="isChannelTypeGroup(channelType)"> {{message.timestamp | date:'HH:mm' }} </div>
184
192
  </div>
185
193
 
@@ -287,6 +287,7 @@ ion-item {
287
287
 
288
288
 
289
289
  &:hover .message-date-hover,
290
+ &:hover .btn-copilot,
290
291
  &:hover .btn-add-msg,
291
292
  &:hover .btn-options-msg,
292
293
  &:hover .options-container{
@@ -349,6 +350,11 @@ ion-item {
349
350
  }
350
351
 
351
352
 
353
+ .btn-copilot {
354
+ display: none;
355
+ }
356
+
357
+
352
358
  }
353
359
 
354
360
  .sourcePage-container{
@@ -408,6 +414,17 @@ ion-item {
408
414
  display: block;
409
415
  height: 25px;
410
416
  width: 25px;
417
+
418
+ &:hover{
419
+ cursor: pointer;
420
+ ion-icon#copilot{
421
+
422
+ transition: transform 1s ease-in-out;
423
+ transform: rotate(180deg);
424
+ color: #ac87eb;
425
+
426
+ }
427
+ }
411
428
  }
412
429
 
413
430
  /* LOADING */
@@ -18,6 +18,7 @@ import { AppConfigProvider } from 'src/app/services/app-config';
18
18
  import { ModalController, PopoverController, ToastController } from '@ionic/angular';
19
19
  import { CreateCannedResponsePage } from 'src/app/modals/create-canned-response/create-canned-response.page';
20
20
  import { EventsService } from 'src/app/services/events-service';
21
+ import { CopilotPopoverComponent } from 'src/app/components/copilot-popover/copilot-popover.component';
21
22
 
22
23
  @Component({
23
24
  selector: 'ion-conversation-detail',
@@ -166,9 +167,6 @@ export class IonConversationDetailComponent extends ConversationContentComponent
166
167
  }
167
168
  }else if(event.option === 'jsonInfo'){
168
169
  this.presentJsonMessageModal(event.data.message)
169
- } else if(event.option === 'copilot_question'){
170
- this.eventService.publish('copilot:new_question', {text: event.data.text})
171
-
172
170
  }
173
171
  }
174
172
 
@@ -185,6 +183,11 @@ export class IonConversationDetailComponent extends ConversationContentComponent
185
183
  }
186
184
  }
187
185
 
186
+ onClickOptionsCopilot(message: MessageModel, index: number){
187
+ this.logger.log('[CONVS-DETAIL][ION-CONVS-DETAIL] - onClickOptionsCopilot', message);
188
+ this.presentCopilotPopover(message)
189
+ }
190
+
188
191
  onElementRenderedFN(event) {
189
192
  this.logger.log('[CONVS-DETAIL][ION-CONVS-DETAIL] - onElementRenderedFN:::ionic', event)
190
193
  this.onElementRendered.emit(event)
@@ -262,4 +265,27 @@ export class IonConversationDetailComponent extends ConversationContentComponent
262
265
  });
263
266
  toast.present();
264
267
  }
268
+
269
+ async presentCopilotPopover(message: MessageModel,) {
270
+ const attributes = {
271
+ message: message,
272
+ conversationWith: message.recipient
273
+ }
274
+ const popover = await this.popoverController.create({
275
+ component: CopilotPopoverComponent,
276
+ cssClass: 'copilot-popover',
277
+ componentProps: attributes,
278
+ translucent: true,
279
+ keyboardClose: true,
280
+ showBackdrop: false,
281
+ });
282
+ popover.onDidDismiss().then((dataReturned: any) => {
283
+ this.logger.log('[BUBBLE-MESSAGE] presentCopilotPopover dismissed. Returned value::', dataReturned.data)
284
+ if(dataReturned.data){
285
+ this.eventService.publish('copilot:new_question', {text: dataReturned.data.text})
286
+ }
287
+ })
288
+
289
+ return await popover.present();
290
+ }
265
291
  }
@@ -11,7 +11,6 @@
11
11
  </div> -->
12
12
  <chat-options
13
13
  [message]="message"
14
- [isCopilotEnabled]="isCopilotEnabled"
15
14
  [logLevel]="logger.getLoggerConfig().logLevel"
16
15
  (onOptionsDataReturned)="onOptionsDataReturnedFN($event)">
17
16
  </chat-options>
@@ -26,7 +26,6 @@ export class BubbleMessageComponent implements OnInit, OnChanges {
26
26
  @Input() fontFamily: string;
27
27
  @Input() stylesMap: Map<string, string>;
28
28
  @Input() supportMode: boolean;
29
- @Input() isCopilotEnabled: boolean = false;
30
29
  @Output() onBeforeMessageRender = new EventEmitter();
31
30
  @Output() onAfterMessageRender = new EventEmitter();
32
31
  @Output() onElementRendered = new EventEmitter<{element: string, status: boolean}>();
@@ -2,7 +2,4 @@
2
2
  <div class="options-logo" (click)="onClickOptionsMessage($event)" >
3
3
  <ion-icon name="chevron-down"></ion-icon>
4
4
  </div>
5
- <div *ngIf="isCopilotEnabled" class="options-logo" (click)="onClickOptionsCopilot($event)">
6
- <ion-icon id="copilot" src="assets/images/icons/copilot.svg"></ion-icon>
7
- </div>
8
5
  </div>
@@ -14,7 +14,6 @@ import { CopilotPopoverComponent } from 'src/app/components/copilot-popover/copi
14
14
  export class OptionsComponent implements OnInit {
15
15
 
16
16
  @Input() message: MessageModel;
17
- @Input() isCopilotEnabled: boolean = false;
18
17
  @Input() logLevel: number;
19
18
  @Output() onOptionsDataReturned = new EventEmitter<{option: string, data: any}>();
20
19
 
@@ -28,13 +27,6 @@ export class OptionsComponent implements OnInit {
28
27
  this.logger.log('[BUBBLE-MESSAGE] - onClickOptionsMessage', this.message);
29
28
  this.presentPopover(event)
30
29
  }
31
-
32
- onClickOptionsCopilot(event){
33
- this.logger.log('[BUBBLE-MESSAGE] - onClickOptionsCopilot', this.message);
34
- this.presentCopilotPopover(event)
35
- }
36
-
37
-
38
30
 
39
31
  async presentPopover(ev: any) {
40
32
  const attributes = {
@@ -61,29 +53,4 @@ export class OptionsComponent implements OnInit {
61
53
  return await popover.present();
62
54
  }
63
55
 
64
- async presentCopilotPopover(ev: any) {
65
- const attributes = {
66
- message: this.message,
67
- logLevel: this.logLevel,
68
- conversationWith: this.message.recipient
69
- }
70
- const popover = await this.popoverController.create({
71
- component: CopilotPopoverComponent,
72
- cssClass: 'copilot-popover',
73
- componentProps: attributes,
74
- event: ev,
75
- translucent: true,
76
- keyboardClose: true,
77
- showBackdrop: false,
78
- });
79
- popover.onDidDismiss().then((dataReturned: any) => {
80
- this.logger.log('[BUBBLE-MESSAGE] presentCopilotPopover dismissed. Returned value::', dataReturned.data)
81
- if(dataReturned.data){
82
- this.onOptionsDataReturned.emit({option: 'copilot_question', data: {text: dataReturned.data.text}})
83
- }
84
- })
85
-
86
- return await popover.present();
87
- }
88
-
89
56
  }
@@ -7,78 +7,82 @@
7
7
  </ion-buttons>
8
8
 
9
9
  <ion-title>
10
-
11
- <div *ngIf="conversationAvatar" class="avatar-and-typing-wpr" [ngClass]="{'mobile': isMobile}">
12
- <!-- [ngStyle] = "{ 'left': platformName === 'ios' ? '55px' : '' }" -->
13
- <div class="avatar-container" [ngClass]="{ 'avatar-container-ios': platformName === 'ios' }">
14
- <app-avatar-profile
15
- [itemAvatar]=conversationAvatar>
16
- </app-avatar-profile>
17
- </div>
18
- <div class="info-container">
19
-
20
- <!-- [ngClass] = "{ 'tile-info-with-ios': platformName === 'ios' ? '82px' : ''82px'' }" -->
21
- <!-- (click)="onOpenCloseInfoConversation()" -->
22
- <div class="tile-info-with"
23
- [ngClass]="{ 'tile-info-with-ios': platformName === 'ios' }">
24
- <span class="tile-username truncate">{{ conversationAvatar.conversation_with_fullname}} </span>
25
- <!-- <span class="tile-username">{{ conversation_with_fullname }} </span> -->
26
- </div>
27
-
28
- <div class="subtitle-info">
29
- <div class="conversation_project">
30
- <!-- DIRECT CONV -->
31
- <div *ngIf="isDirect">
32
- <app-user-presence
33
- [idUser]="conversationAvatar.conversation_with"
34
- [isMobile]="isMobile"
35
- [translationMap]="translationsMap">
36
- </app-user-presence>
37
- <!-- <svg xmlns="http://www.w3.org/2000/svg" height="15" width="15" viewBox="0 0 24 24" fill="#000000"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>
38
- <span class="truncate">{{translationsMap.get('DIRECT_CHAT')}}</span> -->
10
+ <ion-grid class="ion-no-padding ion-no-margin">
11
+ <ion-row>
12
+ <ion-col>
13
+ <div *ngIf="conversationAvatar" class="avatar-and-typing-wpr" [ngClass]="{'mobile': isMobile}">
14
+ <!-- [ngStyle] = "{ 'left': platformName === 'ios' ? '55px' : '' }" -->
15
+ <div class="avatar-container" [ngClass]="{ 'avatar-container-ios': platformName === 'ios' }">
16
+ <app-avatar-profile
17
+ [itemAvatar]=conversationAvatar>
18
+ </app-avatar-profile>
39
19
  </div>
40
- <!-- GROUP CONV -->
41
- <div *ngIf="conversationUid?.startsWith(CHANNEL_TYPE.GROUP)">
42
- <svg xmlns="http://www.w3.org/2000/svg" height="15" width="15" viewBox="0 0 24 24" fill="#000000"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></svg>
43
- <span class="truncate">{{translationsMap.get('GROUP_CHAT')}}</span>
20
+ <div class="info-container">
21
+
22
+ <!-- [ngClass] = "{ 'tile-info-with-ios': platformName === 'ios' ? '82px' : ''82px'' }" -->
23
+ <!-- (click)="onOpenCloseInfoConversation()" -->
24
+ <div class="tile-info-with"
25
+ [ngClass]="{ 'tile-info-with-ios': platformName === 'ios' }">
26
+ <span class="tile-username truncate">{{ conversationAvatar.conversation_with_fullname}} </span>
27
+ <!-- <span class="tile-username">{{ conversation_with_fullname }} </span> -->
28
+ </div>
29
+
30
+ <div class="subtitle-info">
31
+ <div class="conversation_project">
32
+ <!-- DIRECT CONV -->
33
+ <div *ngIf="isDirect">
34
+ <app-user-presence
35
+ [idUser]="conversationAvatar.conversation_with"
36
+ [isMobile]="isMobile"
37
+ [translationMap]="translationsMap">
38
+ </app-user-presence>
39
+ <!-- <svg xmlns="http://www.w3.org/2000/svg" height="15" width="15" viewBox="0 0 24 24" fill="#000000"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>
40
+ <span class="truncate">{{translationsMap.get('DIRECT_CHAT')}}</span> -->
41
+ </div>
42
+ <!-- GROUP CONV -->
43
+ <div *ngIf="conversationUid?.startsWith(CHANNEL_TYPE.GROUP)">
44
+ <svg xmlns="http://www.w3.org/2000/svg" height="15" width="15" viewBox="0 0 24 24" fill="#000000"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></svg>
45
+ <span class="truncate">{{translationsMap.get('GROUP_CHAT')}}</span>
46
+ </div>
47
+ <!-- SUPPORT-GROUP CONV -->
48
+ <div *ngIf="conversationUid?.startsWith(CHANNEL_TYPE.SUPPORT_GROUP) && !IS_ON_MOBILE_DEVICE">
49
+ <img class="channel-icon" src="assets/images/channel_icons/chat21.svg" *ngIf="( (conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.CHAT21) || !conversationAvatar?.request_channel) " >
50
+ <img class="channel-icon" src="assets/images/channel_icons/email-logo.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.EMAIL" >
51
+ <img class="channel-icon" src="assets/images/channel_icons/form-logo_v2.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.FORM" >
52
+ <img class="channel-icon" src="assets/images/channel_icons/messenger-logo.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.MESSENGER" >
53
+ <img class="channel-icon" src="assets/images/channel_icons/whatsapp-logo.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.WHATSAPP" >
54
+ <img class="channel-icon" src="assets/images/channel_icons/telegram-logo.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.TELEGRAM" >
55
+ <img class="channel-icon" src="assets/images/channel_icons/voice.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel.startsWith(CHANNEL_TYPE.VOICE)" >
56
+ <span *ngIf="conversationAvatar?.project_name" class="truncate">{{conversationAvatar?.project_name}}</span>
57
+ <span *ngIf="!conversationAvatar?.project_name" class="truncate">{{conversationAvatar?.projectId}}</span>
58
+ </div>
59
+ </div>
60
+
61
+ </div>
44
62
  </div>
45
- <!-- SUPPORT-GROUP CONV -->
46
- <div *ngIf="conversationUid?.startsWith(CHANNEL_TYPE.SUPPORT_GROUP) && !IS_ON_MOBILE_DEVICE">
47
- <img class="channel-icon" src="assets/images/channel_icons/chat21.svg" *ngIf="( (conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.CHAT21) || !conversationAvatar?.request_channel) " >
48
- <img class="channel-icon" src="assets/images/channel_icons/email-logo.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.EMAIL" >
49
- <img class="channel-icon" src="assets/images/channel_icons/form-logo_v2.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.FORM" >
50
- <img class="channel-icon" src="assets/images/channel_icons/messenger-logo.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.MESSENGER" >
51
- <img class="channel-icon" src="assets/images/channel_icons/whatsapp-logo.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.WHATSAPP" >
52
- <img class="channel-icon" src="assets/images/channel_icons/telegram-logo.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel === CHANNEL_TYPE.TELEGRAM" >
53
- <img class="channel-icon" src="assets/images/channel_icons/voice.svg" *ngIf="conversationAvatar?.request_channel && conversationAvatar?.request_channel.startsWith(CHANNEL_TYPE.VOICE)" >
54
- <span *ngIf="conversationAvatar?.project_name" class="truncate">{{conversationAvatar?.project_name}}</span>
55
- <span *ngIf="!conversationAvatar?.project_name" class="truncate">{{conversationAvatar?.projectId}}</span>
63
+ <!-- COPILOT-OPTION -->
64
+ <div *ngIf="isCopilotEnabled" class="copilot-container" id="copilot" tooltip="{{translationsMap?.get('COPILOT.SOLVE_WITH_AI')}}" placement="top">
65
+ <ion-button id="copilot" fill="clear" (click)="onOpenSection('copilot')">
66
+ <ion-icon class="channel-icon" src="assets/images/icons/copilot.svg"></ion-icon>
67
+ {{translationsMap?.get('COPILOT.SOLVE_WITH_AI')}}
68
+ </ion-button>
56
69
  </div>
57
- </div>
58
-
59
- </div>
60
- </div>
61
- <!-- COPILOT-OPTION -->
62
- <div *ngIf="isCopilotEnabled" class="copilot-container" id="copilot" tooltip="{{translationsMap?.get('COPILOT.SOLVE_WITH_AI')}}" placement="top">
63
- <ion-button id="copilot" fill="clear" (click)="onOpenSection('copilot')">
64
- <ion-icon class="channel-icon" src="assets/images/icons/copilot.svg"></ion-icon>
65
- {{translationsMap?.get('COPILOT.SOLVE_WITH_AI')}}
66
- </ion-button>
67
- </div>
68
-
69
- <!-- <div>
70
- <ion-button class="live" ion-button color="danger">
71
- <span class="live-icon"></span>
72
- <span class="live-text">{{translationsMap.get('LIVE')}}</span>
73
- <span class="live-content">source page</span>
74
- </ion-button>
75
- </div> -->
76
-
77
-
78
- </div>
79
-
80
-
70
+
71
+ <!-- <div>
72
+ <ion-button class="live" ion-button color="danger">
73
+ <span class="live-icon"></span>
74
+ <span class="live-text">{{translationsMap.get('LIVE')}}</span>
75
+ <span class="live-content">source page</span>
76
+ </ion-button>
77
+ </div> -->
78
+
81
79
 
80
+ </div>
81
+ </ion-col>
82
+ <ion-col>
83
+ </ion-col>
84
+ </ion-row>
85
+ </ion-grid>
82
86
 
83
87
  <!-- <div *ngIf="conversationWithFullname" class="tile-info-with" (click)="onOpenCloseInfoConversation()">
84
88
  <span class="tile-username">{{ conversationWithFullname }} </span>
@@ -33,10 +33,15 @@ ion-header {
33
33
  ion-title {
34
34
  text-align: left;
35
35
  padding-inline: unset;
36
- margin: 0px 10px;
37
- // height: 40px;
36
+ padding: 0 var(--padding-conversation-detail);
37
+ height: var(--header-height);
38
38
  width: 100%;
39
39
  }
40
+ ion-grid{
41
+ ion-col:first-child{
42
+ min-width: calc(100% - 320px);
43
+ }
44
+ }
40
45
  ion-avatar {
41
46
  position: relative;
42
47
  display: inline-block;
@@ -94,6 +94,9 @@
94
94
  margin-right: 4px;
95
95
  margin-left: 4px;
96
96
  }
97
+ &:hover{
98
+ opacity: 0.8;
99
+ }
97
100
  }
98
101
  }
99
102
 
@@ -1,56 +1,27 @@
1
1
  import { TooltipDirective } from './../directives/tooltip.directive';
2
- import { OptionsComponent } from './../chatlib/conversation-detail/message/options/options.component';
3
- import { HeaderConversationsListUnassigned } from './../components/conversations-list/header-conversations-list-unassigned/header-conversations-list-unassigned.component';
4
2
  import { NavbarComponent } from './../components/navbar/navbar.component';
5
3
  import { FormsModule } from '@angular/forms';
6
4
  import { NgSelectModule } from '@ng-select/ng-select';
7
5
  import { NetworkOfflineComponent } from './../components/network-offline/network-offline.component';
8
- import { ContactsDirectoryComponent } from './../components/contacts-directory/contacts-directory.component';
9
- import { HtmlComponent } from './../chatlib/conversation-detail/message/html/html.component';
10
6
 
11
- import { TextComponent } from '../chatlib/conversation-detail/message/text/text.component';
12
- import { ReturnReceiptComponent } from '../chatlib/conversation-detail/message/return-receipt/return-receipt.component';
13
- import { InfoMessageComponent } from '../chatlib/conversation-detail/message/info-message/info-message.component';
14
- import { ImageComponent } from '../chatlib/conversation-detail/message/image/image.component';
15
- import { FrameComponent } from '../chatlib/conversation-detail/message/frame/frame.component';
16
- import { ActionButtonComponent } from '../chatlib/conversation-detail/message/buttons/action-button/action-button.component';
17
- import { LinkButtonComponent } from '../chatlib/conversation-detail/message/buttons/link-button/link-button.component';
18
- import { TextButtonComponent } from '../chatlib/conversation-detail/message/buttons/text-button/text-button.component';
19
- import { BubbleMessageComponent } from '../chatlib/conversation-detail/message/bubble-message/bubble-message.component';
20
- import { ConversationContentComponent } from '../chatlib/conversation-detail/conversation-content/conversation-content.component';
21
- import { IonListConversationsComponent } from '../chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component';
22
7
  import { NgModule, CUSTOM_ELEMENTS_SCHEMA, NO_ERRORS_SCHEMA } from '@angular/core';
23
8
  import { CommonModule } from '@angular/common';
24
9
  import { IonicModule } from '@ionic/angular';
25
10
 
26
11
  import { AvatarProfileComponent } from 'src/app/components/utils/avatar-profile/avatar-profile.component';
27
- import { HeaderConversationsList } from 'src/app/components/conversations-list/header-conversations-list/header-conversations-list.component';
28
- import { HeaderConversationsListArchived } from 'src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component';
29
12
 
30
13
  import { UserPresenceComponent } from 'src/app/components/utils/user-presence/user-presence.component';
31
- import { UserTypingComponent } from 'src/chat21-core/utils/user-typing/user-typing.component';
32
- import { ListConversationsComponent } from '../chatlib/list-conversations-component/list-conversations/list-conversations.component';
33
14
  import { MomentModule } from 'ngx-moment';
34
- import { AvatarComponent } from 'src/app/chatlib/conversation-detail/message/avatar/avatar.component';
35
15
  import { MarkedPipe } from 'src/app/directives/marked.pipe';
36
16
  import { AutofocusDirective } from 'src/app/directives/autofocus.directive';
37
17
  import { HtmlEntitiesEncodePipe } from 'src/app/directives/html-entities-encode.pipe';
38
- import { IonConversationDetailComponent } from 'src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component';
39
- import { InfoContentComponent } from 'src/app/components/conversation-info/info-content/info-content.component';
40
- import { InfoSupportGroupComponent } from 'src/app/components/conversation-info/info-support-group/info-support-group.component';
41
- import { InfoDirectComponent } from 'src/app/components/conversation-info/info-direct/info-direct.component';
42
- import { AdvancedInfoAccordionComponent } from 'src/app/components/conversation-info/advanced-info-accordion/advanced-info-accordion.component';
43
- import { InfoGroupComponent } from 'src/app/components/conversation-info/info-group/info-group.component';
44
- import { MessageAttachmentComponent } from 'src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component';
45
18
  import { ImageViewerComponent } from 'src/app/components/image-viewer/image-viewer.component';
46
19
  import { SidebarComponent } from 'src/app/components/sidebar/sidebar.component';
47
20
  import { SidebarUserDetailsComponent } from 'src/app/components/sidebar-user-details/sidebar-user-details.component';
48
- import { ProjectItemComponent } from 'src/app/components/project-item/project-item.component';
49
21
  import { MatTooltipModule } from '@angular/material/tooltip';
50
22
  import { MatSnackBarModule } from '@angular/material/snack-bar';
51
23
  import { MatSlideToggleModule } from '@angular/material/slide-toggle';
52
24
  import { SafeHtmlPipe } from '../directives/safe-html.pipe';
53
- import { AudioComponent } from '../chatlib/conversation-detail/message/audio/audio.component';
54
25
 
55
26
  // import { MessageTextAreaComponent } from '../components/conversation-detail/message-text-area/message-text-area.component'; // MessageTextAreaComponent is part of the declarations ConversationDetailPageModule
56
27