@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
@@ -1,11 +1,18 @@
1
1
 
2
2
  ion-header {
3
- --ion-background-color: #fff;
4
- border-bottom-style: solid;
5
- border-color: var(--light-gray);
6
- border-bottom-width: thin;
3
+ border: none;
4
+ &.mobile{
5
+ --ion-background-color: #fff;
6
+ border-bottom-style: solid;
7
+ border-color: var(--light-gray);
8
+ border-bottom-width: thin;
9
+ }
10
+
7
11
  ion-toolbar{
8
- height: 60px;
12
+ height: var(--header-height);
13
+ &:not(.mobile){
14
+ --background: var(--list-bkg-color);
15
+ }
9
16
  .flex-container{
10
17
  display: flex;
11
18
  }
@@ -27,7 +34,7 @@ ion-header {
27
34
  text-align: left;
28
35
  padding-inline: unset;
29
36
  margin: 0px 10px;
30
- height: 40px;
37
+ // height: 40px;
31
38
  width: 100%;
32
39
  }
33
40
  ion-avatar {
@@ -69,17 +76,27 @@ ion-header {
69
76
  }
70
77
  }
71
78
  .tile-info-with {
72
- // position: relative;
73
- // display: inline-block;
74
- // vertical-align: middle;
75
- // margin: -6px 0px 0 6px;
76
- position: absolute;
77
- margin: auto 0;
78
- height: 100%;
79
- top: 0;
80
- left: 50px;
81
- vertical-align: middle;
82
- // cursor: pointer;
79
+ display: flex;
80
+
81
+ .tile-username {
82
+ display: inline-block;
83
+ font-size: 18px;
84
+ margin: 0;
85
+ padding: 0;
86
+
87
+ color: #1f2d3d;
88
+ font-weight: 400; //600;
89
+ -webkit-font-smoothing: antialiased;
90
+ text-rendering: optimizeLegibility;
91
+ -webkit-text-size-adjust: none;
92
+ -moz-text-size-adjust: none;
93
+ -ms-text-size-adjust: none;
94
+ text-size-adjust: none;
95
+ -webkit-user-select: text;
96
+ -moz-user-select: text;
97
+ -ms-user-select: text;
98
+ user-select: text;
99
+ }
83
100
  }
84
101
  .tile-point {
85
102
  width: 10px;
@@ -90,27 +107,7 @@ ion-header {
90
107
  margin-right: 5px;
91
108
  vertical-align: middle;
92
109
  }
93
- .tile-username {
94
- display: inline-block;
95
- font-size: 15px;
96
- color: var(--black);
97
- margin: 0;
98
- padding: 0;
99
-
100
- color: #3c4858;
101
- font-family: "Google Sans",sans-serif!important;
102
- font-weight: 600;
103
- -webkit-font-smoothing: antialiased;
104
- text-rendering: optimizeLegibility;
105
- -webkit-text-size-adjust: none;
106
- -moz-text-size-adjust: none;
107
- -ms-text-size-adjust: none;
108
- text-size-adjust: none;
109
- -webkit-user-select: text;
110
- -moz-user-select: text;
111
- -ms-user-select: text;
112
- user-select: text;
113
- }
110
+
114
111
 
115
112
  .tile-last-activity {
116
113
  color: var(--light-gray);
@@ -125,6 +122,9 @@ ion-header {
125
122
  }
126
123
 
127
124
  ion-buttons {
125
+ ion-icon , span{
126
+ color: var(--basic-blue)
127
+ }
128
128
  button {
129
129
  max-width: 30px;
130
130
  padding: 0;
@@ -133,42 +133,86 @@ ion-header {
133
133
  }
134
134
  }
135
135
 
136
+ .avatar-and-typing-wpr{
137
+ display: flex;
138
+ &.mobile{
139
+ margin-left: 25px;
140
+ }
141
+ }
142
+
136
143
  .avatar-container {
137
- background-color: #fff;
144
+ // background-color: #fff;
138
145
  color: #fff;
139
146
  text-align: center;
140
- width: 40px;
141
- height: 40px;
142
- position: absolute;
143
- top: 0;
147
+ width: 44px;
148
+ height: 44px;
149
+ // position: absolute;
150
+ // top: 0;
151
+ // left: 20px;
144
152
  border-radius: 50%;
145
153
  padding: 0px;
146
- transform: translateX(-50%);
147
- left: 20px;
154
+ // transform: translateX(-50%);
148
155
 
149
156
  border-color: #fff;
150
157
  border-style: solid;
151
158
  border-width: 0px;
152
159
  line-height: 40px;
153
160
  display: inline-block;
161
+ cursor: pointer;
154
162
  }
163
+
164
+ .avatar-container-ios {
165
+ left: 55px;
166
+ top: 10px;
167
+ }
168
+
169
+ .info-container{
170
+ display: flex;
171
+ flex-direction: column;
172
+ justify-content: center;
173
+ margin-left: 12px;
174
+ width: 80%;
175
+ }
176
+
155
177
  .user-presence {
156
178
  position: absolute;
157
- bottom: 0;
179
+ bottom: 3px; //0;
158
180
  height: 12px;
159
181
  left: 30px;
160
182
  width: 100px;
161
183
  }
162
- .user-typing {
163
- position: absolute;
164
- left: 50px;
165
- bottom: -3px;
166
- padding: 0;
167
- margin: 0;
168
- height: 16px;
169
- width: 140px;
184
+ .subtitle-info {
185
+ // position: absolute;
186
+ // left: 50px;
187
+ // bottom: -3px;
188
+ // padding: 0;
189
+ // margin: 0;
190
+ display: flex;
191
+ align-items: center;
192
+ // height: 16px;
193
+ // width: 140px;
194
+ font-size: 12px;
195
+ .conversation_project{
196
+ display: inline-flex;
197
+ align-items: center;
198
+ line-height: 1.2rem;
199
+ font-weight: 500;
200
+ color: #779bbb;
201
+ font-size: 10px;
202
+ max-width: 90%;
203
+ margin-right: 5px;
204
+ svg {
205
+ fill:#779bbb;
206
+ vertical-align: sub;
207
+ }
208
+ span{
209
+ padding-left: 5px
210
+ }
211
+ }
170
212
  }
171
213
 
214
+
215
+
172
216
  .tile-info-with-ios {
173
217
  left: 82px !important;
174
218
  top: 10px!important;
@@ -178,11 +222,4 @@ ion-header {
178
222
  left: 63px;
179
223
  }
180
224
 
181
- .avatar-container-ios {
182
- left: 55px;
183
- top: 10px;
184
- }
185
225
 
186
- .resolve-conv-margin-right {
187
- margin-right: 52px;
188
- }
@@ -1,3 +1,4 @@
1
+ import { TYPE_GROUP } from './../../../../chat21-core/utils/constants';
1
2
  import {
2
3
  Component,
3
4
  OnInit,
@@ -22,7 +23,7 @@ import { ModalController } from '@ionic/angular'
22
23
  import { EventsService } from 'src/app/services/events-service'
23
24
  import { CreateTicketPage } from 'src/app/pages/create-ticket/create-ticket.page'
24
25
  import { TiledeskService } from 'src/app/services/tiledesk/tiledesk.service'
25
- import { TYPE_DIRECT } from 'src/chat21-core/utils/constants'
26
+ import { TYPE_DIRECT, TYPE_SUPPORT_GROUP } from 'src/chat21-core/utils/constants'
26
27
 
27
28
  @Component({
28
29
  selector: 'app-header-conversation-detail',
@@ -34,24 +35,22 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
34
35
  @Input() idLoggedUser: string
35
36
  @Input() conversationUid: string
36
37
  @Input() conv_type: string
37
- @Input() isOpenInfoConversation: boolean = true
38
38
  @Input() isMobile: boolean
39
- @Input() translationMap: Map<string, string>
40
- @Output() eventOpenCloseInfoConversation = new EventEmitter<boolean>()
39
+ @Input() translationsMap: Map<string, string>
41
40
  conversationWithFullname: string
42
41
  openInfoConversation = true
43
- openInfoMessage = true
44
-
42
+
45
43
  isDirect = false
46
- isTyping = false
47
44
  borderColor = '#ffffff'
48
45
  fontColor = '#949494'
49
- membersConversation = ['SYSTEM']
50
46
  platformName: string
51
47
  conv_closed: boolean = false;
52
48
  IS_ON_IOS_MOBILE_DEVICE: boolean
53
49
  private logger: LoggerService = LoggerInstance.getInstance()
54
50
 
51
+ TYPE_SUPPORT_GROUP = TYPE_SUPPORT_GROUP
52
+ TYPE_GROUP = TYPE_GROUP
53
+
55
54
  constructor(
56
55
  public imageRepoService: ImageRepoService,
57
56
  private route: ActivatedRoute,
@@ -73,7 +72,6 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
73
72
  this.logger.log('[CONVS-DETAIL][HEADER] - (ngOnInit) - conversationAvatar', this.conversationAvatar,)
74
73
  this.logger.log('[CONVS-DETAIL][HEADER] - (ngOnInit) - conv_type', this.conv_type)
75
74
  this.listenToConversationHasBeenClosed()
76
- this.initialize();
77
75
  // this.isOniOSMobileDevice()
78
76
  }
79
77
 
@@ -91,8 +89,8 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
91
89
  this.logger.log('[CONVS-DETAIL][HEADER] - (ngOnChanges) - conversationAvatar', this.conversationAvatar)
92
90
  if (this.conversationAvatar) {
93
91
  this.conversationAvatar.imageurl = this.imageRepoService.getImagePhotoUrl(this.conversationAvatar.uid)
94
- }
95
- this.openInfoConversation = this.isOpenInfoConversation
92
+ this.initialize()
93
+ }
96
94
  }
97
95
 
98
96
  // ----------------------------------------------------
@@ -102,8 +100,6 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
102
100
  this.getPlatformName()
103
101
  if ( this.conversationAvatar && this.conversationAvatar.channelType === TYPE_DIRECT ) {
104
102
  this.isDirect = true
105
- } else if (this.idLoggedUser) {
106
- this.membersConversation.push(this.idLoggedUser)
107
103
  }
108
104
  }
109
105
 
@@ -133,18 +129,6 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
133
129
  });
134
130
  }
135
131
 
136
-
137
-
138
- onOpenCloseInfoConversation() {
139
- this.openInfoMessage = false
140
- this.openInfoConversation = !this.openInfoConversation
141
- this.logger.log(
142
- '[CONVS-DETAIL][HEADER] - onOpenCloseInfoConversation - openInfoConversation ',
143
- this.openInfoConversation,
144
- )
145
- this.eventOpenCloseInfoConversation.emit(this.openInfoConversation)
146
- }
147
-
148
132
  /** */
149
133
  pushPage(event) { }
150
134
 
@@ -4,6 +4,10 @@
4
4
  height: auto;
5
5
  padding: 0;
6
6
  margin: 0;
7
+
8
+ ion-icon{
9
+ color: var(--basic-blue);
10
+ }
7
11
  .buttons-left {
8
12
  position: absolute;
9
13
  left: 0;
@@ -165,10 +169,6 @@
165
169
  border-radius: 50%;
166
170
  }
167
171
 
168
- .send-msg-activated {
169
- color: #3880ff !important;
170
- }
171
-
172
172
  .send-msg-disabled {
173
173
  cursor: default;
174
174
  opacity: 0.8;
@@ -7,7 +7,8 @@
7
7
  </app-info-direct>
8
8
 
9
9
  <app-info-group *ngIf="panelType === 'group-panel' && IS_GROUP_PANEL === true"
10
- [groupDetail]="groupDetail">
10
+ [groupDetail]="groupDetail"
11
+ [isMobile]="isMobile">
11
12
  </app-info-group>
12
13
 
13
14
  <app-info-support-group *ngIf="panelType === 'support-group-panel'"
@@ -28,11 +28,12 @@ import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance'
28
28
 
29
29
  export class InfoContentComponent implements OnInit {
30
30
  @Input() openInfoConversation: boolean;
31
- @Input() translationMap: Map<string, string>;
32
31
  // @Input() member: UserModel;
33
32
  @Input() loggedUser: UserModel
34
33
  @Input() tenant: string
35
- @Input() groupDetail: any
34
+ @Input() groupDetail: any;
35
+ @Input() isMobile: boolean;
36
+ @Input() translationMap: Map<string, string>;
36
37
 
37
38
 
38
39
  public member: UserModel;
@@ -8,15 +8,7 @@
8
8
  <div class="image-profile">
9
9
  <app-avatar-profile [itemAvatar]='member'></app-avatar-profile>
10
10
  </div>
11
-
12
- <div class="user-presence">
13
- <app-user-presence
14
- [idUser]='member.uid'
15
- [translationMap]='translationMap'
16
- [borderColor]='borderColor'
17
- [fontColor]='fontColor'>
18
- </app-user-presence>
19
- </div>
11
+
20
12
  <!-- -> {{member |json}} -->
21
13
  <div class="info-profile">
22
14
  <div class="name">
@@ -15,8 +15,6 @@ export class InfoDirectComponent implements OnInit, AfterViewInit, OnChanges {
15
15
  @Input() translationMap: Map<string, string>;
16
16
  @Input() conversationWith: string;
17
17
 
18
- borderColor = '#ffffff';
19
- fontColor = '#949494';
20
18
  advancedAttributes: Array<any> = [];
21
19
  private logger: LoggerService = LoggerInstance.getInstance();
22
20
 
@@ -1,115 +1,51 @@
1
1
  <!-- <pre style="font-size: 12px;"> {{ groupDetail | json }} </pre> -->
2
2
 
3
3
  <ion-content class="group-profile">
4
- <ion-card class="first-card">
5
- <div class="chat21-box-profile chat21-box">
6
- <div class="chat21-content">
7
- <div class="image-profile">
8
- <app-avatar-profile [itemAvatar]="groupDetail"></app-avatar-profile>
9
- </div>
10
-
11
- <div class="info-profile">
12
- <div class="name">
13
- <span class="read">{{groupDetail?.name}}</span>
4
+ <ion-card>
5
+ <div class="chat21-box-profile chat21-box">
6
+ <div class="chat21-content">
7
+ <div class="image-profile">
8
+ <app-avatar-profile [itemAvatar]="groupDetail"></app-avatar-profile>
14
9
  </div>
15
- </div>
16
- <!-- <div class="member-email">
17
- <a [href]="'mailto:' + member.email + '?Subject='">
18
- {{member.email}}
19
- </a>
20
- </div> -->
21
- </div>
22
-
23
- </div>
24
- </ion-card>
25
10
 
26
- <ion-list id="fake-members-list" *ngIf="displaySkeletonScreen">
27
- <ion-item lines="none" *ngFor="let fake of generateFake(membersObjectLength)" style="margin-left:-3px">
28
- <ion-avatar slot="start">
29
- <ion-skeleton-text animated style="width: 44px; height: 44px;"></ion-skeleton-text>
30
- </ion-avatar>
31
- <ion-label>
32
- <h3>
33
- <ion-skeleton-text animated style="width: 60%;position: relative;top: 2px;height: 16px;"></ion-skeleton-text>
34
- </h3>
35
- </ion-label>
36
- </ion-item>
37
- </ion-list>
38
-
39
- <!-- <pre style="font-size: 8px;"> {{member_array | json }} </pre> <pre style="font-size: 8px;"> {{displaySkeletonScreen}} </pre> -->
40
- <ion-list id="members-list" *ngIf="groupDetail?.member_array?.length > 0 && !displaySkeletonScreen">
41
- <ion-item lines="none" *ngFor='let member of groupDetail?.member_array'>
42
- <ion-avatar slot="start" style="margin-right: 12px;">
43
- <app-avatar-profile [itemAvatar]=member></app-avatar-profile>
44
- <div class="user-online" [ngStyle]="{ 'background-color':(member?.userOnline)?'#24d066':'#db4437' }"></div>
45
- </ion-avatar>
46
- <ion-label>
47
- <h3>
48
- {{ member.fullname }}
49
- </h3>
50
- </ion-label>
51
- </ion-item>
52
- </ion-list>
53
-
54
-
55
-
56
-
57
- <div *ngIf="groupDetail" style="display:none">
58
- <div *ngFor='let member of groupDetail?.member_array'>
59
- <ion-grid>
60
- <ion-row class="ion-align-items-center">
61
- <ion-col size="3">
62
- <div class="member-profile">
63
- <!-- (click)="copyLoggedUserUID({member.userid)" -->
64
- <!-- <div class="avatar-container" [tooltip]="useruidTooltip" [options]="tooltipOptions" placement="top"
65
- content-type="template" > -->
66
- <app-avatar-profile [itemAvatar]=member></app-avatar-profile>
67
- <!-- </div> -->
68
- <!-- <ng-template #useruidTooltip>
69
- <span> {{member.userid}}</span>
70
- </ng-template> -->
71
-
72
- <div class="user-online" [ngStyle]="{ 'background-color':(member?.userOnline)?'#24d066':'#db4437' }">
73
- </div>
11
+ <div class="info-profile">
12
+ <div class="name">
13
+ <span class="read">{{groupDetail?.name}}</span>
74
14
  </div>
75
-
76
-
77
- </ion-col>
78
- <ion-col>
79
- <ion-label>
80
- {{ member.fullname }}
81
- </ion-label>
82
-
83
- <!-- <div class="info-group-member-email">
84
- <a [href]="'mailto:' + member.email + '?Subject='">
85
- {{member.email}}
86
- </a>
87
- </div> -->
88
-
89
-
90
- </ion-col>
91
- </ion-row>
92
- </ion-grid>
93
- <!-- </ion-avatar>
94
- </ion-item> -->
95
- <!-- {{member | json}}
15
+ </div>
16
+ </div>
17
+
18
+ </div>
19
+ </ion-card>
96
20
 
97
- >>> {{member?.avatar}} -->
98
- </div>
99
- </div>
100
-
101
- <!-- <ion-list>
102
-
103
-
104
- </ion-list> -->
105
-
106
- <!-- </div> -->
107
-
108
-
109
- <!-- <app-advanced-info-accordion
110
- [advancedAttributes]="advancedAttributes"
111
- [translationMap]="translationMap">
112
-
113
- </app-advanced-info-accordion> -->
114
-
115
- </ion-content>
21
+ <ion-list id="fake-members-list" *ngIf="displaySkeletonScreen">
22
+ <ion-item lines="none" *ngFor="let fake of generateFake(membersObjectLength)" style="margin-left:-3px">
23
+ <ion-avatar slot="start">
24
+ <ion-skeleton-text animated style="width: 44px; height: 44px;"></ion-skeleton-text>
25
+ </ion-avatar>
26
+ <ion-label>
27
+ <h3>
28
+ <ion-skeleton-text animated style="width: 60%;position: relative;top: 2px;height: 16px;"></ion-skeleton-text>
29
+ </h3>
30
+ </ion-label>
31
+ </ion-item>
32
+ </ion-list>
33
+
34
+ <!-- <pre style="font-size: 8px;"> {{member_array | json }} </pre> <pre style="font-size: 8px;"> {{displaySkeletonScreen}} </pre> -->
35
+ <ion-list id="members-list" *ngIf="groupDetail?.member_array?.length > 0 && !displaySkeletonScreen">
36
+ <ion-item lines="none" *ngFor='let member of groupDetail?.member_array'>
37
+ <ion-avatar slot="start" style="margin-right: 12px;">
38
+ <app-avatar-profile [itemAvatar]=member></app-avatar-profile>
39
+ <div class="status-icon-container" [class.mobile]="isMobile" >
40
+ <svg xmlns="http://www.w3.org/2000/svg" [class.online]="(member?.userOnline)" 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>
41
+ </div>
42
+ </ion-avatar>
43
+ <ion-label>
44
+ <h3>
45
+ {{ member.fullname }}
46
+ </h3>
47
+ </ion-label>
48
+ </ion-item>
49
+ </ion-list>
50
+
51
+ </ion-content>