@chat21/chat21-ionic 3.0.78 → 3.0.79-rc.2

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 (97) hide show
  1. package/CHANGELOG.md +41 -1
  2. package/package.json +1 -1
  3. package/src/app/app.component.scss +2 -1
  4. package/src/app/app.component.ts +52 -7
  5. package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.ts +8 -1
  6. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +36 -10
  7. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +110 -38
  8. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.ts +15 -2
  9. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.html +1 -1
  10. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +3 -1
  11. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.html +5 -1
  12. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.scss +22 -15
  13. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.ts +25 -5
  14. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.html +2 -1
  15. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.scss +14 -15
  16. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.ts +24 -5
  17. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.html +6 -1
  18. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.scss +12 -13
  19. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.ts +26 -5
  20. package/src/app/chatlib/conversation-detail/message/info-message/info-message.component.scss +2 -2
  21. package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.html +16 -6
  22. package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.ts +2 -0
  23. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +78 -52
  24. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +62 -20
  25. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +14 -10
  26. package/src/app/components/canned-response/canned-response.component.html +4 -4
  27. package/src/app/components/canned-response/canned-response.component.scss +1 -1
  28. package/src/app/components/canned-response/canned-response.component.ts +1 -0
  29. package/src/app/components/contacts-directory/contacts-directory.component.html +22 -26
  30. package/src/app/components/contacts-directory/contacts-directory.component.scss +8 -6
  31. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +61 -42
  32. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +98 -61
  33. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +9 -25
  34. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +4 -4
  35. package/src/app/components/conversation-info/info-content/info-content.component.html +2 -1
  36. package/src/app/components/conversation-info/info-content/info-content.component.ts +3 -2
  37. package/src/app/components/conversation-info/info-direct/info-direct.component.html +1 -9
  38. package/src/app/components/conversation-info/info-direct/info-direct.component.ts +0 -2
  39. package/src/app/components/conversation-info/info-group/info-group.component.html +44 -108
  40. package/src/app/components/conversation-info/info-group/info-group.component.scss +101 -61
  41. package/src/app/components/conversation-info/info-group/info-group.component.ts +1 -0
  42. package/src/app/components/{ddp-header/ddp-header.component.html → conversations-list/header-conversations-list/header-conversations-list.component.html} +2 -2
  43. package/src/app/components/{ddp-header/ddp-header.component.scss → conversations-list/header-conversations-list/header-conversations-list.component.scss} +16 -4
  44. package/src/app/components/{ddp-header/ddp-header.component.spec.ts → conversations-list/header-conversations-list/header-conversations-list.component.spec.ts} +6 -6
  45. package/src/app/components/{ddp-header/ddp-header.component.ts → conversations-list/header-conversations-list/header-conversations-list.component.ts} +7 -16
  46. package/src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.html +12 -0
  47. package/src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.scss +14 -0
  48. 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
  49. 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
  50. package/src/app/components/project-item/project-item.component.html +98 -149
  51. package/src/app/components/project-item/project-item.component.scss +39 -32
  52. package/src/app/components/project-item/project-item.component.ts +5 -3
  53. package/src/app/components/utils/user-presence/user-presence.component.html +7 -2
  54. package/src/app/components/utils/user-presence/user-presence.component.scss +35 -18
  55. package/src/app/components/utils/user-presence/user-presence.component.ts +6 -10
  56. package/src/app/pages/contacts-directory/contacts-directory.page.html +1 -1
  57. package/src/app/pages/contacts-directory/contacts-directory.page.scss +41 -0
  58. package/src/app/pages/contacts-directory/contacts-directory.page.ts +2 -0
  59. package/src/app/pages/conversation-detail/conversation-detail.page.html +40 -23
  60. package/src/app/pages/conversation-detail/conversation-detail.page.scss +40 -250
  61. package/src/app/pages/conversation-detail/conversation-detail.page.ts +165 -46
  62. package/src/app/pages/conversations-list/conversations-list.page.html +11 -8
  63. package/src/app/pages/conversations-list/conversations-list.page.scss +10 -2
  64. package/src/app/pages/conversations-list/conversations-list.page.ts +22 -17
  65. package/src/app/pages/loader-preview/loader-preview.page.html +1 -1
  66. package/src/app/pages/loader-preview/loader-preview.page.scss +4 -0
  67. package/src/app/pages/profile-info/profile-info.page.html +2 -4
  68. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +1 -1
  69. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +42 -0
  70. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +1 -0
  71. package/src/app/shared/shared.module.ts +24 -24
  72. package/src/assets/i18n/ar.json +270 -265
  73. package/src/assets/i18n/az.json +5 -0
  74. package/src/assets/i18n/de.json +5 -0
  75. package/src/assets/i18n/en.json +5 -0
  76. package/src/assets/i18n/es.json +5 -0
  77. package/src/assets/i18n/fr.json +5 -0
  78. package/src/assets/i18n/it.json +5 -0
  79. package/src/assets/i18n/kk.json +5 -0
  80. package/src/assets/i18n/pt.json +5 -0
  81. package/src/assets/i18n/ru.json +5 -0
  82. package/src/assets/i18n/sr.json +5 -0
  83. package/src/assets/i18n/sv.json +5 -0
  84. package/src/assets/i18n/tr.json +5 -0
  85. package/src/assets/i18n/uk.json +5 -0
  86. package/src/assets/i18n/uz.json +5 -0
  87. package/src/assets/sounds/wheep-wheep.mp3 +0 -0
  88. package/src/chat21-core/providers/firebase/firebase-typing.service.ts +7 -9
  89. package/src/chat21-core/utils/constants.ts +5 -1
  90. package/src/chat21-core/utils/user-typing/user-typing.component.html +8 -5
  91. package/src/chat21-core/utils/user-typing/user-typing.component.scss +87 -17
  92. package/src/chat21-core/utils/user-typing/user-typing.component.ts +12 -94
  93. package/src/chat21-core/utils/utils.ts +9 -1
  94. package/src/global.scss +47 -43
  95. package/src/variables.scss +26 -9
  96. package/src/app/components/conversation-detail/option-header/option-header.component.html +0 -13
  97. package/src/app/components/conversation-detail/option-header/option-header.component.scss +0 -0
@@ -9,8 +9,8 @@
9
9
  }
10
10
  ion-item {
11
11
  cursor: pointer;
12
- height: 70px;
13
- --min-height: 70px;
12
+ height: 90px; //70px;
13
+ --min-height: 90px; //70px;
14
14
  position: relative;
15
15
  display: flex;
16
16
  text-decoration: none;
@@ -19,6 +19,14 @@ ion-item {
19
19
  --padding-start: 0;
20
20
  --inner-padding-end: 0;
21
21
  --background-hover: #000000 !important;
22
+ --background: transparent;
23
+ border-radius: var(--border-radius-item);
24
+ margin: 4px 5px;
25
+ .conv-container{
26
+ width: 84%;
27
+ height: 100%;
28
+ padding: 12px 0;
29
+ }
22
30
  .selected {
23
31
  // border-radius: 10px;
24
32
  // padding-left: 8px;
@@ -33,12 +41,13 @@ ion-item {
33
41
  ion-avatar {
34
42
  position: relative;
35
43
  padding: 0;
36
- margin: 0 12px 0 8px;
37
- height: 50px;
38
- width: 50px;
39
- min-width: 50px;
40
- min-height: 50px;
41
- line-height: 50px;
44
+ margin: 20px 8px 0px 8px;//0 12px 0 8px;
45
+ height: 40px; //50px;
46
+ width: 40px; //50px;
47
+ min-width: 40px; //50px;
48
+ min-height: 40px; //50px;
49
+ line-height: 40px; //50px;
50
+ align-self: end;
42
51
  .avatar-placeholder {
43
52
  position: absolute;
44
53
  top: 0;
@@ -47,7 +56,7 @@ ion-item {
47
56
  height: 100%;
48
57
  border-radius: 50%;
49
58
  text-align: center;
50
- font-size: 20px;
59
+ font-size: 15px; //20px;
51
60
  color: #ffffff;
52
61
  font-weight: 500;
53
62
  }
@@ -70,22 +79,47 @@ ion-item {
70
79
  justify-content: center;
71
80
  min-width: 0;
72
81
  padding: 0;
82
+ margin: 0;
73
83
  font-family: Helvetica, Helvetica, Arial, sans-serif;
74
84
  line-height: 1.28;
75
85
  text-rendering: optimizeLegibility;
86
+ .conversation_project{
87
+ display: inline-flex;
88
+ align-items: center;
89
+ line-height: 1.2rem;
90
+ font-weight: 500;
91
+ color: #779bbb;
92
+ font-size: 10px;
93
+ max-width: 90%;
94
+ svg {
95
+ fill:#779bbb;
96
+ vertical-align: sub;
97
+ }
98
+ span{
99
+ padding-left: 5px
100
+ }
101
+ }
76
102
  .conversation_with {
77
103
  color: rgba(0, 0, 0, 1);
78
104
  font-size: 15px;
79
105
  font-weight: 400;
80
106
  line-height: 1.4;
107
+ width: 70% !important;
108
+ &.not-read {
109
+ font-weight: 600;
110
+ color: #3c4858; //#1876f2;
111
+ }
81
112
  }
113
+
82
114
  .conversation_message {
115
+ margin: 5px 0px;
83
116
  p {
84
- color: rgba(153, 153, 153, 1);
85
- font-size: 13px;
117
+ color: #6e6f73; //#3c4858;
118
+ font-size: 15px;
86
119
  font-weight: 400;
87
120
  height: 18px;
88
121
  vertical-align: middle;
122
+ align-self: center;
89
123
  &.not-read {
90
124
  font-weight: 600;
91
125
  color: #1876f2;
@@ -93,13 +127,13 @@ ion-item {
93
127
  }
94
128
 
95
129
  span {
96
- color: rgba(153, 153, 153, 1);
97
- font-size: 13px;
130
+ color: rgb(60, 72, 88);
131
+ font-size: 12px;
98
132
  font-weight: 400;
99
133
  height: 18px;
100
134
  &.not-read {
101
135
  font-weight: 600;
102
- color: #1876f2;
136
+ color: #3c4858; //#1876f2;
103
137
  }
104
138
  }
105
139
  }
@@ -107,8 +141,15 @@ ion-item {
107
141
  ion-note {
108
142
  position: absolute;
109
143
  right: 8px;
110
- top: 4px;
144
+ top: 40px;
111
145
  font-size: 10px;
146
+ display: flex;
147
+ flex-direction: column;
148
+ color: #6e6f73;
149
+
150
+ &.is-on-mobile{
151
+ top: 10px;
152
+ }
112
153
  }
113
154
  ion-buttons {
114
155
  margin: 0;
@@ -120,7 +161,7 @@ ion-item {
120
161
  font-size: 10px;
121
162
  --padding-start: 0px;
122
163
  --padding-end: 0px;
123
- color: rgba(153, 153, 153, 1);
164
+ color: var(--basic-blue);//rgba(153, 153, 153, 1);
124
165
  background-color: transparent;
125
166
  border-radius: 50%; // nk
126
167
  &:hover {
@@ -133,17 +174,17 @@ ion-item {
133
174
  width: 10px;
134
175
  height: 10px;
135
176
  border-radius: 50%;
136
- background-color: rgb(22, 92, 238);
177
+ background-color: var(--basic-blue);
137
178
  position: absolute;
138
179
  right: 6px;
139
180
  bottom: 8px;
140
181
  }
141
182
 
142
183
  .notification_point-on-desktop {
143
- bottom: 29px !important;
184
+ bottom: 22px !important;
144
185
  }
145
186
  .notification_point-on-mobile {
146
- bottom: 29px !important;
187
+ bottom: 22px !important;
147
188
  right: 8px;
148
189
  }
149
190
  }
@@ -209,7 +250,8 @@ ion-item:hover {
209
250
  }
210
251
 
211
252
  .ion-selected {
212
- --background: rgb(231, 241, 255);
253
+ background: var(--list-bkg-color-selected);
254
+ border-right: 4px solid var(--basic-blue);
213
255
  }
214
256
 
215
257
  .time-in-archived {
@@ -1,3 +1,5 @@
1
+ import { TYPE_GROUP, TYPE_SUPPORT_GROUP } from './../../../../chat21-core/utils/constants';
2
+ import { TYPE_DIRECT } from 'src/chat21-core/utils/constants';
1
3
  import { Component, EventEmitter, Input, IterableDiffers, KeyValueDiffers, OnInit, Output, SimpleChange } from '@angular/core';
2
4
  import { ConversationModel } from 'src/chat21-core/models/conversation';
3
5
  import { ImageRepoService } from 'src/chat21-core/providers/abstract/image-repo.service';
@@ -14,6 +16,7 @@ import { AppConfigProvider } from 'src/app/services/app-config';
14
16
  import { DomSanitizer } from '@angular/platform-browser'
15
17
  import { TiledeskAuthService } from 'src/chat21-core/providers/tiledesk/tiledesk-auth.service';
16
18
  import { AlertController } from '@ionic/angular';
19
+ import { CustomTranslateService } from 'src/chat21-core/providers/custom-translate.service';
17
20
  // import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
18
21
  // import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
19
22
 
@@ -35,6 +38,8 @@ export class IonListConversationsComponent extends ListConversationsComponent im
35
38
  public currentYear: any;
36
39
  public browserLang: string;
37
40
 
41
+ public translationsMap: Map<string, string> = new Map()
42
+
38
43
  public PROJECT_FOR_PANEL: any;
39
44
  public archive_btn_tooltip: string;
40
45
  public resolve_btn_tooltip: string;
@@ -52,6 +57,10 @@ export class IonListConversationsComponent extends ListConversationsComponent im
52
57
  'hideDelayAfterClick': 3000,
53
58
  'hide-delay': 100
54
59
  };
60
+
61
+ TYPE_DIRECT = TYPE_DIRECT;
62
+ TYPE_GROUP = TYPE_GROUP;
63
+ TYPE_SUPPORT_GROUP = TYPE_SUPPORT_GROUP;
55
64
  /**
56
65
  *
57
66
  * @param iterableDiffers
@@ -63,6 +72,7 @@ export class IonListConversationsComponent extends ListConversationsComponent im
63
72
  public kvDiffers: KeyValueDiffers,
64
73
  public platform: Platform,
65
74
  private translate: TranslateService,
75
+ private translateService: CustomTranslateService,
66
76
  private networkService: NetworkService,
67
77
  private appConfigProvider: AppConfigProvider,
68
78
  private sanitizer: DomSanitizer,
@@ -73,7 +83,6 @@ export class IonListConversationsComponent extends ListConversationsComponent im
73
83
  super(iterableDiffers, kvDiffers)
74
84
  this.setMomentLocale();
75
85
 
76
-
77
86
  // if (this.browserLang) {
78
87
 
79
88
  // moment.locale(this.browserLang)
@@ -123,16 +132,11 @@ export class IonListConversationsComponent extends ListConversationsComponent im
123
132
  'ALERT_TITLE',
124
133
  'ActionNotAllowed',
125
134
  'CLOSE_ALERT_CONFIRM_LABEL',
126
- 'YouAreNoLongerAmongTheTeammatesManagingThisConversation'
135
+ 'YouAreNoLongerAmongTheTeammatesManagingThisConversation',
136
+ 'GROUP_CHAT',
137
+ 'DIRECT_CHAT'
127
138
  ]
128
- this.translate.get(['Resolve', 'Archive', 'ALERT_TITLE']).subscribe((translations: string) => {
129
- this.resolve_btn_tooltip = translations['Resolve'];
130
- this.archive_btn_tooltip = translations['Archive'];
131
- this.alert_lbl = translations['ALERT_TITLE']
132
- this.actionNotAllowed_lbl = translations['ActionNotAllowed']
133
- this.ok_lbl = translations['CLOSE_ALERT_CONFIRM_LABEL']
134
- this.youAreNoLongerAmongTheTeammatesManagingThisConversation_lbl = translations['YouAreNoLongerAmongTheTeammatesManagingThisConversation']
135
- });
139
+ this.translationsMap = this.translateService.translateLanguage(translationKeys)
136
140
  }
137
141
 
138
142
  setMomentLocale() {
@@ -22,10 +22,10 @@
22
22
  <div class="loader" *ngIf="tagsCannedFilter.length === 0">
23
23
  <div class="box">
24
24
  <div class="container">
25
- <span class="circle"></span>
26
- <span class="circle"></span>
27
- <span class="circle"></span>
28
- <span class="circle"></span>
25
+ <span class="circle" [ngStyle]="{'background-color': stylesMap?.get('themeColor')}"></span>
26
+ <span class="circle" [ngStyle]="{'background-color': stylesMap?.get('themeColor')}"></span>
27
+ <span class="circle" [ngStyle]="{'background-color': stylesMap?.get('themeColor')}"></span>
28
+ <span class="circle" [ngStyle]="{'background-color': stylesMap?.get('themeColor')}"></span>
29
29
  </div>
30
30
  <div class="label">{{translationMap.get('LABEL_LOADING')}}</div>
31
31
  </div>
@@ -179,7 +179,7 @@ ion-item {
179
179
  width: 15px;
180
180
  height: 15px;
181
181
  border-radius: 50%;
182
- background-color: #1877f2;
182
+ background-color: var(--basic-blue);
183
183
  animation: move 500ms linear 0ms infinite;
184
184
  margin-right: 30px;
185
185
 
@@ -20,6 +20,7 @@ export class CannedResponseComponent implements OnInit {
20
20
  @Input() conversationWith: string;
21
21
  @Input() conversationWithFullname: string;
22
22
  @Input() currentString: string;
23
+ @Input() stylesMap: Map<string, string>;
23
24
  @Input() translationMap: Map<string, string>;
24
25
  @Output() onLoadedCannedResponses = new EventEmitter<[any]>();
25
26
  @Output() onClickCanned = new EventEmitter<any>();
@@ -1,28 +1,24 @@
1
1
 
2
- <ion-content padding>
3
- <ion-searchbar id="contacts-searchbar" debounce="500" (ionInput)="onSearchInput($event)"></ion-searchbar>
4
- <ion-list>
5
-
6
- <ion-item button="true" lines="none" class="ion-no-padding" *ngFor="let user of contacts" (click)="goToChat(user)">
7
- <div tabindex="0"></div>
8
- <!-- <div [class.selected]="user.uid === uidUserSelected"></div> [style.background-color]="user.color"-->
9
- <ion-avatar slot="start">
10
- <div #avatarPlaceholder class="avatar-placeholder" [ngStyle]="{'background': 'linear-gradient(rgb(255,255,255) -125%,' + user.color + ')'}" [innerHTML]="user.avatar"></div>
11
- <div *ngIf="user.imageurl" #avatarImage class="avatar-profile" [style.background-image]="'url(' + user.imageurl + ')'"></div>
12
- <!-- <div *ngIf="getImageAvatar(conversation.sender)" #avatarImage class="avatar-profile" [style.background-image]="'url(' + getImageAvatar(conversation.sender) + ')'"></div> -->
13
- <div class="user-presence">
14
- <app-presence
15
- [isOnline]="user.online">
16
- </app-presence>
17
- </div>
18
- </ion-avatar>
19
-
20
- <ion-label>
21
- <h2>{{ user.fullname }}</h2>
22
- <!-- <p>{{ user.uid }}</p> -->
23
- </ion-label>
24
-
25
- </ion-item>
2
+ <ion-searchbar id="contacts-searchbar" debounce="500" (ionInput)="onSearchInput($event)"></ion-searchbar>
3
+
4
+ <ion-item button="true" lines="none" class="ion-no-padding" *ngFor="let user of contacts" (click)="goToChat(user)">
5
+ <div tabindex="0"></div>
6
+ <!-- <div [class.selected]="user.uid === uidUserSelected"></div> [style.background-color]="user.color"-->
7
+ <ion-avatar slot="start">
8
+ <div #avatarPlaceholder class="avatar-placeholder" [ngStyle]="{'background': 'linear-gradient(rgb(255,255,255) -125%,' + user.color + ')'}" [innerHTML]="user.avatar"></div>
9
+ <div *ngIf="user.imageurl" #avatarImage class="avatar-profile" [style.background-image]="'url(' + user.imageurl + ')'"></div>
10
+ <!-- <div *ngIf="getImageAvatar(conversation.sender)" #avatarImage class="avatar-profile" [style.background-image]="'url(' + getImageAvatar(conversation.sender) + ')'"></div> -->
11
+ <div class="user-presence">
12
+ <app-presence
13
+ [isOnline]="user.online">
14
+ </app-presence>
15
+ </div>
16
+ </ion-avatar>
17
+
18
+ <ion-label>
19
+ <h2>{{ user.fullname }}</h2>
20
+ <!-- <p>{{ user.uid }}</p> -->
21
+ </ion-label>
22
+
23
+ </ion-item>
26
24
 
27
- </ion-list>
28
- </ion-content>
@@ -1,22 +1,24 @@
1
1
  ion-item {
2
2
  cursor: pointer;
3
3
  height: 64px;
4
+ --min-height: 64px;
4
5
  position: relative;
5
6
  display: flex;
6
7
  text-decoration: none;
7
- padding-left: 8px;
8
- padding-right: 8px;
8
+ margin: 4px 5px;
9
9
  --padding-start: 0;
10
10
  --inner-padding-end: 0;
11
+ --background: transparent;
12
+ --background-hover: #000000 !important;
13
+ border-radius: var(--border-radius-item);
14
+
11
15
  .selected {
12
- border-radius: 10px;
13
- padding-left: 8px;
14
- padding-right: 8px;
15
16
  position: absolute;
16
17
  width: 100%;
17
18
  height: 100%;
18
19
  z-index:-1;
19
- background-color: rgba(0, 0, 0, .05);
20
+ background: var(--list-bkg-color-selected);
21
+ border-right: 4px solid var(--basic-blue);
20
22
  }
21
23
  ion-avatar {
22
24
  position: relative;
@@ -1,51 +1,73 @@
1
- <ion-header no-border class="ion-no-border">
2
- <ion-toolbar>
1
+ <ion-header no-border class="ion-no-border" [class.mobile]="isMobile">
2
+ <ion-toolbar [class.mobile]="isMobile">
3
3
  <ion-buttons slot="start" style="height:60px" *ngIf="isMobile">
4
4
  <!-- (click)="pushPage('conversations-list')" defaultHref="/conversations-list" -->
5
5
  <ion-back-button style="display: block;" text="" (click)="goBackToConversationList()">
6
6
  </ion-back-button>
7
7
  </ion-buttons>
8
8
 
9
- <ion-title [class.info-open]="openInfoConversation || openInfoMessage">
9
+ <ion-title>
10
10
 
11
- <div *ngIf="conversationAvatar" class="avatar-and-typing-wpr" >
11
+ <div *ngIf="conversationAvatar" class="avatar-and-typing-wpr" [ngClass]="{'mobile': isMobile}">
12
12
  <!-- [ngStyle] = "{ 'left': platformName === 'ios' ? '55px' : '' }" -->
13
- <div *ngIf="conversationAvatar" class="avatar-container" (click)="onOpenCloseInfoConversation()" style="cursor: pointer"
14
- [ngClass]="{ 'avatar-container-ios': platformName === 'ios' }">
13
+ <div class="avatar-container" [ngClass]="{ 'avatar-container-ios': platformName === 'ios' }">
15
14
  <app-avatar-profile
16
15
  [itemAvatar]=conversationAvatar>
17
16
  </app-avatar-profile>
18
17
  </div>
19
- <!-- [ngStyle] = "{ 'left': platformName === 'ios' ? '63px' : '' }" -->
20
- <div *ngIf="isDirect" class="user-presence" [ngClass]="{ 'user-presence-ios': platformName === 'ios' }">
21
- <app-user-presence
22
- [idUser]=conversationAvatar.conversation_with
23
- [translationMap]=translationMap
24
- [borderColor]=borderColor
25
- [fontColor]=fontColor>
26
- </app-user-presence>
27
- </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
+ <!-- [ngStyle] = "{ 'left': platformName === 'ios' ? '63px' : '' }" -->
29
+ <!-- <div *ngIf="isDirect" class="user-presence" [ngClass]="{ 'user-presence-ios': platformName === 'ios' }">
30
+ <app-user-presence
31
+ [idUser]=conversationAvatar.conversation_with
32
+ [translationMap]=translationsMap
33
+ [borderColor]=borderColor
34
+ [fontColor]=fontColor>
35
+ </app-user-presence>
36
+ </div> -->
37
+
38
+ <div class="subtitle-info">
39
+ <div class="conversation_project">
40
+ <!-- DIRECT CONV -->
41
+ <div *ngIf="isDirect">
42
+ <app-user-presence
43
+ [idUser]="conversationAvatar.conversation_with"
44
+ [isMobile]="isMobile"
45
+ [translationMap]="translationsMap">
46
+ </app-user-presence>
47
+ <!-- <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>
48
+ <span class="truncate">{{translationsMap.get('DIRECT_CHAT')}}</span> -->
49
+ </div>
50
+ <!-- GROUP CONV -->
51
+ <div *ngIf="conversationUid?.startsWith(TYPE_GROUP)">
52
+ <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>
53
+ <span class="truncate">{{translationsMap.get('GROUP_CHAT')}}</span>
54
+ </div>
55
+ <!-- SUPPORT-GROUP CONV -->
56
+ <div *ngIf="conversationUid?.startsWith(TYPE_SUPPORT_GROUP)">
57
+ <svg xmlns="http://www.w3.org/2000/svg" data-v-78d18411="" width="15" height="15" fill="none" viewBox="0 0 24 24" class="inbox-icon"><path d="M22.002 12C22.002 6.477 17.524 2 12 2 6.476 1.999 2 6.477 2 12.001c0 5.186 3.947 9.45 9.001 9.952V20.11c-.778-.612-1.478-1.905-1.939-3.61h1.94V15H8.737a18.969 18.969 0 0 1-.135-5h6.794c.068.64.105 1.31.105 2h1.5c0-.684-.033-1.353-.095-2h3.358c.154.64.237 1.31.237 2h1.5ZM4.786 16.5h2.722l.102.396c.317 1.17.748 2.195 1.27 3.015a8.532 8.532 0 0 1-4.094-3.41ZM3.736 10h3.358a20.847 20.847 0 0 0-.095 2c0 1.043.075 2.051.217 3H4.043a8.483 8.483 0 0 1-.544-3c0-.682.08-1.347.232-1.983L3.736 10Zm5.122-5.902.023-.008C8.16 5.222 7.611 6.748 7.298 8.5H4.25c.905-2 2.56-3.587 4.608-4.402Zm3.026-.594L12 3.5l.126.006c1.262.126 2.48 2.125 3.045 4.995H8.83c.568-2.878 1.79-4.88 3.055-4.996Zm3.343.76-.107-.174.291.121a8.533 8.533 0 0 1 4.339 4.29h-3.048c-.298-1.665-.806-3.125-1.475-4.237Z M12 19a1 1 0 0 0 1 1h3v2h-.5a.5.5 0 1 0 0 1h4a.5.5 0 0 0 0-1H19v-2h3a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1h-9a1 1 0 0 0-1 1v5Z" fill="currentColor"/></svg>
58
+ <span *ngIf="conversationAvatar?.project_name" class="truncate">{{conversationAvatar?.project_name}}</span>
59
+ <span *ngIf="!conversationAvatar?.project_name" class="truncate">{{conversationAvatar?.projectId}}</span>
60
+ </div>
61
+ </div>
28
62
 
29
- <div *ngIf="conversationAvatar" class="user-typing">
30
- <app-user-typing
31
- [idConversation]=conversationAvatar.uid
32
- [idCurrentUser]=idLoggedUser
33
- [isDirect]=isDirect
34
- [translationMap]=translationMap
35
- [color]=fontColor
36
- [membersConversation]=membersConversation>
37
- </app-user-typing>
63
+ </div>
38
64
  </div>
65
+
39
66
 
40
- </div>
41
- <!-- [ngClass] = "{ 'tile-info-with-ios': platformName === 'ios' ? '82px' : ''82px'' }" -->
42
- <!-- (click)="onOpenCloseInfoConversation()" -->
43
- <div *ngIf="conversationAvatar" class="tile-info-with"
44
- [ngClass]="{ 'tile-info-with-ios': platformName === 'ios' }">
45
- <span class="tile-username">{{ conversationAvatar.conversation_with_fullname | truncate:50 }} </span>
46
- <!-- <span class="tile-username">{{ conversation_with_fullname }} </span> -->
67
+
47
68
 
48
69
  </div>
70
+
49
71
 
50
72
  <!-- <div *ngIf="conversationWithFullname" class="tile-info-with" (click)="onOpenCloseInfoConversation()">
51
73
  <span class="tile-username">{{ conversationWithFullname }} </span>
@@ -60,23 +82,20 @@
60
82
  <span style="text-transform: capitalize; margin-left: 5px;"> {{ 'Crea ticket' | translate}} </span>
61
83
  </ion-button> -->
62
84
 
63
- <ion-button *ngIf="conversationUid?.startsWith('support-group') && conv_type !== 'archived'" ion-button fill="clear" color="primary" size="small"
64
- (click)="closeConversation()" [ngClass]="{'resolve-conv-margin-right': !isMobile}" [disabled]="conv_closed === true">
85
+ <ion-button *ngIf="conversationUid?.startsWith('support-group') && conv_type !== 'archived'" ion-button fill="clear" size="small"
86
+ (click)="closeConversation()" [disabled]="conv_closed === true">
65
87
  <!-- <ion-icon slot="icon-only" name="alert-circle-outline"></ion-icon> -->
66
88
  <ion-icon name="archive-outline"></ion-icon>
67
89
  <!-- <ion-icon slot="icon-only" name="information-outline"></ion-icon> -->
68
- <span style="text-transform: capitalize; margin-left: 5px;"> {{ 'Resolve' | translate}} </span>
90
+ <span style="text-transform: capitalize; margin-left: 5px;"> {{translationsMap?.get('Resolve')}} </span>
69
91
  </ion-button>
70
92
 
71
- <ion-button *ngIf="!openInfoConversation" ion-button fill="clear" (click)="onOpenCloseInfoConversation()">
72
- <!-- <ion-icon slot="icon-only" name="alert-circle-outline"></ion-icon> -->
73
- <ion-icon slot="icon-only" name="information-circle-outline"></ion-icon>
74
- <!-- <ion-icon slot="icon-only" name="information-outline"></ion-icon> -->
75
-
76
- </ion-button>
77
- <ion-button *ngIf="openInfoConversation" ion-button fill="clear" (click)="onOpenCloseInfoConversation()">
93
+ <!-- <ion-button *ngIf="!openInfoConversation" ion-button fill="clear" (click)="onOpenCloseInfoConversation()">
94
+ <ion-icon slot="icon-only" name="information-circle-outline"></ion-icon>
95
+ </ion-button> -->
96
+ <!-- <ion-button *ngIf="openInfoConversation" ion-button fill="clear" (click)="onOpenCloseInfoConversation()">
78
97
  <ion-icon slot="icon-only" name="close-circle-outline"></ion-icon>
79
- </ion-button>
98
+ </ion-button> -->
80
99
 
81
100
  </ion-buttons>
82
101