@chat21/chat21-ionic 3.0.78-rc.4 → 3.0.78

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 (69) hide show
  1. package/CHANGELOG.md +1 -22
  2. package/package.json +1 -1
  3. package/src/app/app.component.scss +1 -2
  4. package/src/app/app.component.ts +1 -1
  5. package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.ts +1 -8
  6. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +10 -36
  7. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +38 -106
  8. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.ts +2 -15
  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 +1 -3
  11. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.html +1 -5
  12. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.scss +15 -22
  13. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.ts +5 -25
  14. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.html +1 -2
  15. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.scss +15 -14
  16. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.ts +5 -24
  17. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.html +1 -6
  18. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.scss +13 -12
  19. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.ts +5 -26
  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 +6 -16
  22. package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.ts +0 -2
  23. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +52 -78
  24. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +20 -60
  25. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +10 -14
  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 +0 -1
  29. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +39 -54
  30. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +30 -61
  31. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +25 -9
  32. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +4 -4
  33. package/src/app/components/ddp-header/ddp-header.component.html +1 -1
  34. package/src/app/components/ddp-header/ddp-header.component.scss +0 -4
  35. package/src/app/components/project-item/project-item.component.html +149 -98
  36. package/src/app/components/project-item/project-item.component.scss +32 -39
  37. package/src/app/components/project-item/project-item.component.ts +3 -5
  38. package/src/app/components/utils/user-presence/user-presence.component.html +1 -1
  39. package/src/app/pages/conversation-detail/conversation-detail.page.html +14 -24
  40. package/src/app/pages/conversation-detail/conversation-detail.page.scss +3 -1
  41. package/src/app/pages/conversation-detail/conversation-detail.page.ts +43 -163
  42. package/src/app/pages/conversations-list/conversations-list.page.html +2 -2
  43. package/src/app/pages/conversations-list/conversations-list.page.scss +2 -2
  44. package/src/app/pages/conversations-list/conversations-list.page.ts +17 -8
  45. package/src/app/pages/loader-preview/loader-preview.page.html +1 -1
  46. package/src/app/pages/loader-preview/loader-preview.page.scss +0 -4
  47. package/src/assets/i18n/ar.json +265 -268
  48. package/src/assets/i18n/az.json +0 -3
  49. package/src/assets/i18n/de.json +0 -3
  50. package/src/assets/i18n/en.json +0 -3
  51. package/src/assets/i18n/es.json +0 -3
  52. package/src/assets/i18n/fr.json +0 -3
  53. package/src/assets/i18n/it.json +0 -3
  54. package/src/assets/i18n/kk.json +0 -3
  55. package/src/assets/i18n/pt.json +0 -3
  56. package/src/assets/i18n/ru.json +0 -3
  57. package/src/assets/i18n/sr.json +0 -3
  58. package/src/assets/i18n/sv.json +0 -3
  59. package/src/assets/i18n/tr.json +0 -3
  60. package/src/assets/i18n/uk.json +0 -3
  61. package/src/assets/i18n/uz.json +0 -3
  62. package/src/chat21-core/providers/firebase/firebase-typing.service.ts +9 -7
  63. package/src/chat21-core/utils/constants.ts +0 -4
  64. package/src/chat21-core/utils/user-typing/user-typing.component.html +5 -8
  65. package/src/chat21-core/utils/user-typing/user-typing.component.scss +17 -87
  66. package/src/chat21-core/utils/user-typing/user-typing.component.ts +94 -12
  67. package/src/chat21-core/utils/utils.ts +1 -5
  68. package/src/global.scss +43 -47
  69. package/src/variables.scss +8 -19
@@ -1,4 +1,4 @@
1
- import { Component, ElementRef, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';
1
+ import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';
2
2
 
3
3
  @Component({
4
4
  selector: 'chat-link-button-attachment',
@@ -8,35 +8,16 @@ import { Component, ElementRef, EventEmitter, Input, OnInit, Output, SimpleChang
8
8
  export class LinkButtonComponent implements OnInit {
9
9
 
10
10
  @Input() button: any;
11
- @Input() fontSize: string;
12
- @Input() backgroundColor: string;
13
- @Input() textColor: string;
14
- @Input() hoverBackgroundColor: string;
15
- @Input() hoverTextColor: string;
11
+ @Input() themeColor: string;
12
+ @Input() foregroundColor: string;
16
13
  @Output() onButtonClicked = new EventEmitter();
17
14
  public type: string = "url"
18
15
  constructor(private elementRef: ElementRef) { }
19
16
 
20
17
  ngOnInit() {
21
- }
22
-
23
- ngOnChanges(changes: SimpleChanges){
24
18
  //decomment if element should have same color of themeColor and fregroundColor
25
- if(this.fontSize) this.elementRef.nativeElement.querySelector('.url').style.setProperty('--buttonFontSize', this.fontSize);
26
- if(this.backgroundColor) this.elementRef.nativeElement.querySelector('.url').style.setProperty('--backgroundColor', this.backgroundColor);
27
- if(this.textColor) this.elementRef.nativeElement.querySelector('.url').style.setProperty('--textColor', this.textColor);
28
- if(this.hoverBackgroundColor) this.elementRef.nativeElement.querySelector('.url').style.setProperty('--hoverBackgroundColor', this.hoverBackgroundColor);
29
- if(this.hoverTextColor) this.elementRef.nativeElement.querySelector('.url').style.setProperty('--hoverTextColor', this.hoverTextColor);
30
- }
31
-
32
- onMouseOver(event){
33
- // if(this.themeColor) this.elementRef.nativeElement.querySelector('.url').style.background = this.themeColor
34
- // if(this.foregroundColor) this.elementRef.nativeElement.querySelector('.url').style.color = this.foregroundColor
35
- }
36
-
37
- onMouseOut(event){
38
- // this.elementRef.nativeElement.querySelector('.url').style.color = '';
39
- // this.elementRef.nativeElement.querySelector('.url').style.background = ''
19
+ // this.elementRef.nativeElement.style.setProperty('--themeColor', this.themeColor);
20
+ // this.elementRef.nativeElement.style.setProperty('--foregroundColor', this.foregroundColor);
40
21
  }
41
22
 
42
23
  actionButtonUrl(){
@@ -1,8 +1,3 @@
1
- <div class="button-in-msg text"
2
- [ngClass]="{'disabled': isConversationArchived}"
3
- title="{{button?.value}}"
4
- (click)="actionButtonText()"
5
- (mouseover)="onMouseOver($event)"
6
- (mouseout)="onMouseOut($event)">
1
+ <div class="button-in-msg text" (click)="actionButtonText()" title="{{button?.value}}">
7
2
  {{button?.value}}
8
3
  </div>
@@ -1,10 +1,11 @@
1
1
  // @import '../../../../../sass/variables';
2
2
  div {
3
- --backgroundColor: --basic-blue;
4
- --textColor: --bck-msg-sent;
5
- --hoverBackgroundColor: --bck-msg-sent;
6
- --hoverTextColor: --basic-blue;
7
- --buttonFontSize: --button-in-msg-font-size;
3
+ --bck-msg-sent: #62a8ea;
4
+ --col-msg-sent:#ffffff;
5
+ --light-white: #f7f7f7;
6
+ --black: #1a1a1a;
7
+ --gray: #aaaaaa;
8
+ --blue: rgb(42, 106, 193);
8
9
  }
9
10
 
10
11
 
@@ -14,19 +15,19 @@ div {
14
15
  max-width: 300px;
15
16
  min-width: inherit;
16
17
  cursor: pointer;
17
- border: 1px solid var(--textColor); //$blue
18
+ border: 1px solid var(--blue);
18
19
  border-radius: 20px;
19
20
  margin: 3px;
20
- background: var(--backgroundColor);
21
+ background: transparent;
21
22
  overflow: hidden;
22
23
  font-family: 'Muli', sans-serif;
23
- font-size: var(--buttonFontSize);
24
+ font-size: 15px;
24
25
  -o-text-overflow: ellipsis;
25
26
  text-overflow: ellipsis;
26
27
  white-space: nowrap;
27
28
  letter-spacing: -0.24px;
28
29
  -webkit-font-smoothing: antialiased;
29
- color: var(--textColor); //$blue
30
+ color: var(--blue);
30
31
  line-height: 16px;
31
32
  }
32
33
 
@@ -35,11 +36,11 @@ div {
35
36
  transition: background-color .6s ease;
36
37
  &:focus,
37
38
  &:hover {
38
- color: var(--hoverTextColor);
39
- background: var(--hoverBackgroundColor);
39
+ color: white;
40
+ background: var(--blue);
40
41
  .icon-button-action {
41
42
  svg {
42
- fill: --black;
43
+ fill: var(--black);
43
44
  }
44
45
  }
45
46
  }
@@ -1,4 +1,4 @@
1
- import { Component, ElementRef, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';
1
+ import { Component, ElementRef, EventEmitter, Input, OnInit, Output } from '@angular/core';
2
2
 
3
3
 
4
4
  @Component({
@@ -9,37 +9,16 @@ import { Component, ElementRef, EventEmitter, Input, OnInit, Output, SimpleChang
9
9
  export class TextButtonComponent implements OnInit {
10
10
 
11
11
  @Input() button: any;
12
- @Input() isConversationArchived: boolean;
13
- @Input() fontSize: string;
14
- @Input() backgroundColor: string;
15
- @Input() textColor: string;
16
- @Input() hoverBackgroundColor: string;
17
- @Input() hoverTextColor: string;
12
+ @Input() themeColor: string;
13
+ @Input() foregroundColor: string;
18
14
  @Output() onButtonClicked = new EventEmitter();
19
-
20
15
  public type: string = "text"
21
16
  constructor(private elementRef: ElementRef) { }
22
17
 
23
18
  ngOnInit() {
24
- }
25
-
26
- ngOnChanges(changes: SimpleChanges){
27
19
  //decomment if element should have same color of themeColor and fregroundColor
28
- if(this.fontSize) this.elementRef.nativeElement.querySelector('.text').style.setProperty('--buttonFontSize', this.fontSize);
29
- if(this.backgroundColor) this.elementRef.nativeElement.querySelector('.text').style.setProperty('--backgroundColor', this.backgroundColor);
30
- if(this.textColor) this.elementRef.nativeElement.querySelector('.text').style.setProperty('--textColor', this.textColor);
31
- if(this.hoverBackgroundColor) this.elementRef.nativeElement.querySelector('.text').style.setProperty('--hoverBackgroundColor', this.hoverBackgroundColor);
32
- if(this.hoverTextColor) this.elementRef.nativeElement.querySelector('.text').style.setProperty('--hoverTextColor', this.hoverTextColor);
33
- }
34
-
35
- onMouseOver(event){
36
- // if(this.backgroundColor) this.elementRef.nativeElement.querySelector('.text').style.background = this.textColor
37
- // if(this.textColor) this.elementRef.nativeElement.querySelector('.text').style.color = this.backgroundColor
38
- }
39
-
40
- onMouseOut(event){
41
- // this.elementRef.nativeElement.querySelector('.text').style.color = '';
42
- // this.elementRef.nativeElement.querySelector('.text').style.background = ''
20
+ // this.elementRef.nativeElement.style.setProperty('--themeColor', this.themeColor);
21
+ // this.elementRef.nativeElement.style.setProperty('--foregroundColor', this.foregroundColor);
43
22
  }
44
23
 
45
24
  actionButtonText(){
@@ -6,12 +6,12 @@
6
6
 
7
7
  .base_info {
8
8
  border-radius: 14px;
9
- // border: 1px solid rgba(24, 119, 242, 0.1);
9
+ border: 1px solid #C9E4F6;
10
10
  padding-left: 4px;
11
11
  padding-right: 4px;
12
12
  padding: 6px 10px;
13
13
  display: inline-block;
14
- background: rgba(24, 119, 242, 0.1);
14
+ background: #C9E4F6;
15
15
  font-size: 0.70em;
16
16
  color: var(--basic-gray);
17
17
  margin-left: 5px; //32px;
@@ -4,32 +4,22 @@
4
4
 
5
5
  <chat-text-button-attachment *ngIf="button.type === 'text' && isLastMessage === true" class="div-button"
6
6
  [button]="button"
7
- [isConversationArchived]="isConversationArchived"
8
- [fontSize]="stylesMap.get('buttonFontSize')"
9
- [backgroundColor]="stylesMap.get('buttonBackgroundColor')"
10
- [textColor]="stylesMap.get('buttonTextColor')"
11
- [hoverBackgroundColor]="stylesMap.get('buttonHoverBackgroundColor')"
12
- [hoverTextColor]="stylesMap.get('buttonHoverTextColor')"
7
+ [themeColor]="stylesMap.get('themeColor')"
8
+ [foregroundColor]="stylesMap.get('foregroundColor')"
13
9
  (onButtonClicked)="returnOnAttachmentButtonClicked($event)">
14
10
  </chat-text-button-attachment>
15
11
 
16
12
  <chat-link-button-attachment *ngIf="button.type === 'url'" class="div-button"
17
13
  [button]="button"
18
- [fontSize]="stylesMap.get('buttonFontSize')"
19
- [backgroundColor]="stylesMap.get('buttonBackgroundColor')"
20
- [textColor]="stylesMap.get('buttonTextColor')"
21
- [hoverBackgroundColor]="stylesMap.get('buttonHoverBackgroundColor')"
22
- [hoverTextColor]="stylesMap.get('buttonHoverTextColor')"
14
+ [themeColor]="stylesMap.get('themeColor')"
15
+ [foregroundColor]="stylesMap.get('foregroundColor')"
23
16
  (onButtonClicked)="returnOnAttachmentButtonClicked($event)">
24
17
  </chat-link-button-attachment>
25
18
 
26
19
  <chat-action-button-attachment *ngIf="button.type === 'action' && isLastMessage === true" class="div-button"
27
20
  [button]="button"
28
- [fontSize]="stylesMap.get('buttonFontSize')"
29
- [backgroundColor]="stylesMap.get('buttonBackgroundColor')"
30
- [textColor]="stylesMap.get('buttonTextColor')"
31
- [hoverBackgroundColor]="stylesMap.get('buttonHoverBackgroundColor')"
32
- [hoverTextColor]="stylesMap.get('buttonHoverTextColor')"
21
+ [themeColor]="stylesMap.get('themeColor')"
22
+ [foregroundColor]="stylesMap.get('foregroundColor')"
33
23
  (onButtonClicked)="returnOnAttachmentButtonClicked($event)">
34
24
  </chat-action-button-attachment>
35
25
 
@@ -12,9 +12,7 @@ export class MessageAttachmentComponent implements OnInit {
12
12
 
13
13
  // ========= begin:: Input/Output values ============//
14
14
  @Input() message: MessageModel;
15
- @Input() isConversationArchived: boolean;
16
15
  @Input() isLastMessage: boolean;
17
- @Input() fullscreenMode: boolean;
18
16
  @Input() stylesMap: Map<string, string>;
19
17
  @Output() onAttachmentButtonClicked = new EventEmitter<any>();
20
18
  @Output() onElementRendered = new EventEmitter<{element: string, status: boolean}>()
@@ -80,92 +80,55 @@
80
80
  <div tabindex="0"></div>
81
81
 
82
82
  <!-- <div [class.selected]="conversation.uid === uidConvSelected"></div> -->
83
- <div>
84
- <ion-avatar item-start>
85
- <!-- [style.background-color]="conversation.color" -->
86
- <div #avatarPlaceholder class="avatar-placeholder"
87
- [ngStyle]="{'background': 'linear-gradient(rgb(255,255,255) -125%,' + conversation.color + ')'}"
88
- [innerHTML]="conversation.avatar"></div>
89
- <div *ngIf="conversation.image" #avatarImage class="avatar-profile"
90
- [style.background-image]="'url(' + conversation.image + ')'"></div>
91
- <!-- <div *ngIf="getImageAvatar(conversation.sender)" #avatarImage class="avatar-profile" [style.background-image]="'url(' + getImageAvatar(conversation.sender) + ')'"></div> -->
92
- </ion-avatar>
93
- </div>
94
- <div class="conv-container">
95
- <ion-label>
96
- <div class="conversation_project truncate">
97
- <!-- DIRECT CONV -->
98
- <div *ngIf="conversation.channel_type === TYPE_DIRECT">
99
- <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>
100
- <span class="truncate">{{translationsMap.get('DIRECT_CHAT')}}</span>
101
- </div>
102
- <!-- GROUP CONV -->
103
- <div *ngIf="conversation.uid.startsWith(TYPE_GROUP)">
104
- <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>
105
- <span class="truncate">{{translationsMap.get('GROUP_CHAT')}}</span>
106
- </div>
107
- <!-- SUPPORT-GROUP CONV -->
108
- <div *ngIf="conversation.uid.startsWith(TYPE_SUPPORT_GROUP)">
109
- <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>
110
- <span *ngIf="conversation?.attributes?.project_name" class="truncate">{{conversation?.attributes?.project_name}}</span>
111
- <span *ngIf="!conversation?.attributes?.project_name" class="truncate">{{conversation?.attributes?.projectId}}</span>
112
- </div>
113
- </div>
114
- <div style="display: flex;">
115
- <span class="conversation_with truncate" [class.not-read]="conversation.is_new">
116
- {{conversation.conversation_with_fullname}}
117
- </span>
118
- </div>
119
- <div class="conversation_message truncate-conv-msg" [ngClass]="{'truncate-on-desktop': !isApp}">
120
-
121
- <!-- -------------------------------------------------------------------------- -->
122
- <!-- if conversation type is image display the image icon before the message -->
123
- <!-- -------------------------------------------------------------------------- -->
124
- <!-- <div *ngIf="conversation.type === 'image'" class="icon-image-before-msg-wpr">
125
- <ion-icon name="image-outline" class="icon-image-before-msg"></ion-icon>
126
- </div>
127
- <p [class.not-read]="conversation.is_new" class="truncate" [ngClass]="{'truncate-on-desktop': !isApp}"
128
- [innerHTML]="conversation.last_message_text"></p> -->
129
-
130
- <!-- <div *ngIf="conversation.type === 'image'" class="icon-image-before-msg-wpr"> -->
131
- <ion-icon *ngIf="conversation.type === 'image' && conversation.type !== 'file' " name="image-outline"
132
- class="icon-image-before-msg"></ion-icon>
133
- <ion-icon *ngIf="conversation.type === 'file' && conversation.type !== 'image'" name="attach-outline"
134
- class="icon-attach-before-msg"></ion-icon>
135
- <!-- </div> -->
136
- <!-- [innerHTML]="conversation.last_message_text" -->
137
- <span [class.not-read]="conversation.is_new">
138
- {{ conversation.last_message_text }}
139
- </span>
83
+ <ion-avatar item-start>
84
+ <!-- [style.background-color]="conversation.color" -->
85
+ <div #avatarPlaceholder class="avatar-placeholder"
86
+ [ngStyle]="{'background': 'linear-gradient(rgb(255,255,255) -125%,' + conversation.color + ')'}"
87
+ [innerHTML]="conversation.avatar"></div>
88
+ <div *ngIf="conversation.image" #avatarImage class="avatar-profile"
89
+ [style.background-image]="'url(' + conversation.image + ')'"></div>
90
+ <!-- <div *ngIf="getImageAvatar(conversation.sender)" #avatarImage class="avatar-profile" [style.background-image]="'url(' + getImageAvatar(conversation.sender) + ')'"></div> -->
91
+ </ion-avatar>
92
+ <ion-label>
93
+ <div class="conversation_with truncate">{{conversation.conversation_with_fullname}}</div>
94
+ <div class="conversation_message truncate-conv-msg" [ngClass]="{'truncate-on-desktop': !isApp}">
95
+
96
+ <!-- -------------------------------------------------------------------------- -->
97
+ <!-- if conversation type is image display the image icon before the message -->
98
+ <!-- -------------------------------------------------------------------------- -->
99
+ <!-- <div *ngIf="conversation.type === 'image'" class="icon-image-before-msg-wpr">
100
+ <ion-icon name="image-outline" class="icon-image-before-msg"></ion-icon>
140
101
  </div>
141
- </ion-label>
142
- </div>
102
+ <p [class.not-read]="conversation.is_new" class="truncate" [ngClass]="{'truncate-on-desktop': !isApp}"
103
+ [innerHTML]="conversation.last_message_text"></p> -->
143
104
 
144
- <ion-note *ngIf="!conversation.archived" class="conversation_time" [ngClass]="{'is-on-mobile': isApp}">
145
- {{conversation.timestamp | amTimeAgo}}
146
- </ion-note>
147
- <ion-note item-end *ngIf="conversation?.archived" class="conversation_time">
148
- <span *ngIf="(conversation.timestamp | amDateFormat:'YYYY') === currentYear">
149
- {{browserLang === 'en' ? (conversation.timestamp | amDateFormat:'MMM DD') : (conversation.timestamp| amDateFormat:'DD MMM')}}
150
- <!-- {{conversation.timestamp | amDateFormat:'DD MMM'}} -->
151
- </span>
152
- <span *ngIf="(conversation.timestamp | amDateFormat:'YYYY') !== currentYear">
153
- {{browserLang === 'en' ? (conversation.timestamp | amDateFormat:'MMM DD YYYY') : (conversation.timestamp| amDateFormat:'DD MMM YYYY') }}
154
- <!-- {{conversation.timestamp | amDateFormat:'DD MMM YYYY'}} -->
155
- </span>
156
- </ion-note>
105
+ <!-- <div *ngIf="conversation.type === 'image'" class="icon-image-before-msg-wpr"> -->
106
+ <ion-icon *ngIf="conversation.type === 'image' && conversation.type !== 'file' " name="image-outline"
107
+ class="icon-image-before-msg"></ion-icon>
108
+ <ion-icon *ngIf="conversation.type === 'file' && conversation.type !== 'image'" name="attach-outline"
109
+ class="icon-attach-before-msg"></ion-icon>
110
+ <!-- </div> -->
111
+ <!-- [innerHTML]="conversation.last_message_text" -->
112
+ <span [class.not-read]="conversation.is_new">
113
+ {{ conversation.last_message_text }}
114
+ </span>
115
+ </div>
116
+ </ion-label>
117
+
118
+ <ion-note *ngIf="!conversation.archived" class="conversation_time">{{conversation.timestamp | amTimeAgo}}</ion-note>
157
119
 
158
120
  <ion-buttons slot="end">
159
121
  <ion-button *ngIf="!conversation.archived" [tooltip]="archiveTooltip" [options]="tooltip_options" placement="bottom" content-type="template"
160
122
  [ngClass]="{'hide': !isApp, 'button-on-desktop': !isApp, 'button-on-mobile': isApp }"
161
123
  id="{{ 'close_conversation_button' + conversation.uid }}" class="close-conversation-button" ion-button clear
162
124
  item-end (click)="closeConversation(conversation);$event.stopPropagation();" padding>
163
- <ion-icon slot="icon-only" style="display:block;" id="{{ 'close_button_icon' + conversation.uid }}" name="archive-outline" item-end></ion-icon>
125
+ <ion-icon slot="icon-only" style="display:block;" id="{{ 'close_button_icon' + conversation.uid }}"
126
+ color="close-conversation" name="archive-outline" item-end></ion-icon>
164
127
 
165
- <ng-template #archiveTooltip>
166
- <span *ngIf="conversation?.recipient.startsWith('support-group')"> {{ translationsMap?.get('Resolve')}} </span>
167
- <span *ngIf="!conversation?.recipient.startsWith('support-group')"> {{ translationsMap?.get('Archive') }} </span>
168
- </ng-template>
128
+ <ng-template #archiveTooltip>
129
+ <span *ngIf="conversation?.recipient.startsWith('support-group')"> {{ resolve_btn_tooltip}} </span>
130
+ <span *ngIf="!conversation?.recipient.startsWith('support-group')"> {{ archive_btn_tooltip }} </span>
131
+ </ng-template>
169
132
  </ion-button>
170
133
  <!-- <ion-button *ngIf="conversation.archived" class="close-conversation-button" ion-button clear item-end disabled padding>
171
134
  <!- - <ion-icon style="display:block;" id="{{ 'close_button_icon' + conversation.uid }}" color="close-conversation" name="archive-outline" item-end></ion-icon> - ->
@@ -174,7 +137,18 @@
174
137
  </ion-button> -->
175
138
  </ion-buttons>
176
139
 
177
-
140
+ <div item-end *ngIf="conversation?.archived" class="achived-icon-wpr">
141
+ <span *ngIf="(conversation.timestamp | amDateFormat:'YYYY') === currentYear" class="time-in-archived">
142
+ {{browserLang === 'en' ? (conversation.timestamp | amDateFormat:'MMM DD') : (conversation.timestamp| amDateFormat:'DD MMM')}}
143
+
144
+ <!-- {{conversation.timestamp | amDateFormat:'DD MMM'}} -->
145
+ </span>
146
+ <span *ngIf="(conversation.timestamp | amDateFormat:'YYYY') !== currentYear" class="time-in-archived">
147
+ {{browserLang === 'en' ? (conversation.timestamp | amDateFormat:'MMM DD YYYY') : (conversation.timestamp| amDateFormat:'DD MMM YYYY') }}
148
+ <!-- {{conversation.timestamp | amDateFormat:'DD MMM YYYY'}} -->
149
+ </span>
150
+ <!-- <i class="material-icons" item-end style="font-size: 15px;font-weight: 400;color: #666666;"> history </i> -->
151
+ </div>
178
152
 
179
153
  <!-- && !conversation?.archived -->
180
154
  <div item-end class="notification_point"
@@ -9,8 +9,8 @@
9
9
  }
10
10
  ion-item {
11
11
  cursor: pointer;
12
- height: 90px; //70px;
13
- --min-height: 90px; //70px;
12
+ height: 70px;
13
+ --min-height: 70px;
14
14
  position: relative;
15
15
  display: flex;
16
16
  text-decoration: none;
@@ -19,13 +19,6 @@ ion-item {
19
19
  --padding-start: 0;
20
20
  --inner-padding-end: 0;
21
21
  --background-hover: #000000 !important;
22
- border-radius: 16px;
23
- margin: 4px 5px;
24
- .conv-container{
25
- width: 84%;
26
- height: 100%;
27
- padding: 12px 0;
28
- }
29
22
  .selected {
30
23
  // border-radius: 10px;
31
24
  // padding-left: 8px;
@@ -40,13 +33,12 @@ ion-item {
40
33
  ion-avatar {
41
34
  position: relative;
42
35
  padding: 0;
43
- margin: 20px 8px 0px 8px;//0 12px 0 8px;
44
- height: 40px; //50px;
45
- width: 40px; //50px;
46
- min-width: 40px; //50px;
47
- min-height: 40px; //50px;
48
- line-height: 40px; //50px;
49
- align-self: end;
36
+ margin: 0 12px 0 8px;
37
+ height: 50px;
38
+ width: 50px;
39
+ min-width: 50px;
40
+ min-height: 50px;
41
+ line-height: 50px;
50
42
  .avatar-placeholder {
51
43
  position: absolute;
52
44
  top: 0;
@@ -55,7 +47,7 @@ ion-item {
55
47
  height: 100%;
56
48
  border-radius: 50%;
57
49
  text-align: center;
58
- font-size: 15px; //20px;
50
+ font-size: 20px;
59
51
  color: #ffffff;
60
52
  font-weight: 500;
61
53
  }
@@ -78,46 +70,22 @@ ion-item {
78
70
  justify-content: center;
79
71
  min-width: 0;
80
72
  padding: 0;
81
- margin: 0;
82
73
  font-family: Helvetica, Helvetica, Arial, sans-serif;
83
74
  line-height: 1.28;
84
75
  text-rendering: optimizeLegibility;
85
- .conversation_project{
86
- display: inline-flex;
87
- align-items: center;
88
- line-height: 1.2rem;
89
- font-weight: 500;
90
- color: #779bbb;
91
- font-size: 10px;
92
- max-width: 90%;
93
- svg {
94
- fill:#779bbb;
95
- vertical-align: sub;
96
- }
97
- span{
98
- padding-left: 5px
99
- }
100
- }
101
76
  .conversation_with {
102
77
  color: rgba(0, 0, 0, 1);
103
78
  font-size: 15px;
104
79
  font-weight: 400;
105
80
  line-height: 1.4;
106
- width: 70% !important;
107
- &.not-read {
108
- font-weight: 600;
109
- color: #3c4858; //#1876f2;
110
- }
111
81
  }
112
-
113
82
  .conversation_message {
114
83
  p {
115
- color: #6e6f73; //#3c4858;
116
- font-size: 15px;
84
+ color: rgba(153, 153, 153, 1);
85
+ font-size: 13px;
117
86
  font-weight: 400;
118
87
  height: 18px;
119
88
  vertical-align: middle;
120
- align-self: center;
121
89
  &.not-read {
122
90
  font-weight: 600;
123
91
  color: #1876f2;
@@ -125,13 +93,13 @@ ion-item {
125
93
  }
126
94
 
127
95
  span {
128
- color: rgb(60, 72, 88);
129
- font-size: 12px;
96
+ color: rgba(153, 153, 153, 1);
97
+ font-size: 13px;
130
98
  font-weight: 400;
131
99
  height: 18px;
132
100
  &.not-read {
133
101
  font-weight: 600;
134
- color: #3c4858; //#1876f2;
102
+ color: #1876f2;
135
103
  }
136
104
  }
137
105
  }
@@ -139,15 +107,8 @@ ion-item {
139
107
  ion-note {
140
108
  position: absolute;
141
109
  right: 8px;
142
- top: 40px;
110
+ top: 4px;
143
111
  font-size: 10px;
144
- display: flex;
145
- flex-direction: column;
146
- color: #6e6f73;
147
-
148
- &.is-on-mobile{
149
- top: 10px;
150
- }
151
112
  }
152
113
  ion-buttons {
153
114
  margin: 0;
@@ -159,7 +120,7 @@ ion-item {
159
120
  font-size: 10px;
160
121
  --padding-start: 0px;
161
122
  --padding-end: 0px;
162
- color: var(--basic-blue);//rgba(153, 153, 153, 1);
123
+ color: rgba(153, 153, 153, 1);
163
124
  background-color: transparent;
164
125
  border-radius: 50%; // nk
165
126
  &:hover {
@@ -172,17 +133,17 @@ ion-item {
172
133
  width: 10px;
173
134
  height: 10px;
174
135
  border-radius: 50%;
175
- background-color: var(--basic-blue);
136
+ background-color: rgb(22, 92, 238);
176
137
  position: absolute;
177
138
  right: 6px;
178
139
  bottom: 8px;
179
140
  }
180
141
 
181
142
  .notification_point-on-desktop {
182
- bottom: 22px !important;
143
+ bottom: 29px !important;
183
144
  }
184
145
  .notification_point-on-mobile {
185
- bottom: 22px !important;
146
+ bottom: 29px !important;
186
147
  right: 8px;
187
148
  }
188
149
  }
@@ -248,8 +209,7 @@ ion-item:hover {
248
209
  }
249
210
 
250
211
  .ion-selected {
251
- --background: rgba(24, 119, 242, 0.04);
252
- border-right: 4px solid var(--basic-blue);
212
+ --background: rgb(231, 241, 255);
253
213
  }
254
214
 
255
215
  .time-in-archived {
@@ -1,5 +1,3 @@
1
- import { TYPE_GROUP, TYPE_SUPPORT_GROUP } from './../../../../chat21-core/utils/constants';
2
- import { TYPE_DIRECT } from 'src/chat21-core/utils/constants';
3
1
  import { Component, EventEmitter, Input, IterableDiffers, KeyValueDiffers, OnInit, Output, SimpleChange } from '@angular/core';
4
2
  import { ConversationModel } from 'src/chat21-core/models/conversation';
5
3
  import { ImageRepoService } from 'src/chat21-core/providers/abstract/image-repo.service';
@@ -16,7 +14,6 @@ import { AppConfigProvider } from 'src/app/services/app-config';
16
14
  import { DomSanitizer } from '@angular/platform-browser'
17
15
  import { TiledeskAuthService } from 'src/chat21-core/providers/tiledesk/tiledesk-auth.service';
18
16
  import { AlertController } from '@ionic/angular';
19
- import { CustomTranslateService } from 'src/chat21-core/providers/custom-translate.service';
20
17
  // import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
21
18
  // import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
22
19
 
@@ -38,8 +35,6 @@ export class IonListConversationsComponent extends ListConversationsComponent im
38
35
  public currentYear: any;
39
36
  public browserLang: string;
40
37
 
41
- public translationsMap: Map<string, string> = new Map()
42
-
43
38
  public PROJECT_FOR_PANEL: any;
44
39
  public archive_btn_tooltip: string;
45
40
  public resolve_btn_tooltip: string;
@@ -57,10 +52,6 @@ export class IonListConversationsComponent extends ListConversationsComponent im
57
52
  'hideDelayAfterClick': 3000,
58
53
  'hide-delay': 100
59
54
  };
60
-
61
- TYPE_DIRECT = TYPE_DIRECT;
62
- TYPE_GROUP = TYPE_GROUP;
63
- TYPE_SUPPORT_GROUP = TYPE_SUPPORT_GROUP;
64
55
  /**
65
56
  *
66
57
  * @param iterableDiffers
@@ -72,7 +63,6 @@ export class IonListConversationsComponent extends ListConversationsComponent im
72
63
  public kvDiffers: KeyValueDiffers,
73
64
  public platform: Platform,
74
65
  private translate: TranslateService,
75
- private translateService: CustomTranslateService,
76
66
  private networkService: NetworkService,
77
67
  private appConfigProvider: AppConfigProvider,
78
68
  private sanitizer: DomSanitizer,
@@ -83,6 +73,7 @@ export class IonListConversationsComponent extends ListConversationsComponent im
83
73
  super(iterableDiffers, kvDiffers)
84
74
  this.setMomentLocale();
85
75
 
76
+
86
77
  // if (this.browserLang) {
87
78
 
88
79
  // moment.locale(this.browserLang)
@@ -132,11 +123,16 @@ export class IonListConversationsComponent extends ListConversationsComponent im
132
123
  'ALERT_TITLE',
133
124
  'ActionNotAllowed',
134
125
  'CLOSE_ALERT_CONFIRM_LABEL',
135
- 'YouAreNoLongerAmongTheTeammatesManagingThisConversation',
136
- 'GROUP_CHAT',
137
- 'DIRECT_CHAT'
126
+ 'YouAreNoLongerAmongTheTeammatesManagingThisConversation'
138
127
  ]
139
- this.translationsMap = this.translateService.translateLanguage(translationKeys)
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
+ });
140
136
  }
141
137
 
142
138
  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" [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>
25
+ <span class="circle"></span>
26
+ <span class="circle"></span>
27
+ <span class="circle"></span>
28
+ <span class="circle"></span>
29
29
  </div>
30
30
  <div class="label">{{translationMap.get('LABEL_LOADING')}}</div>
31
31
  </div>