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

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (56) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/package.json +1 -1
  3. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +4 -0
  4. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +3 -2
  5. package/src/app/components/contacts-directory/contacts-directory.component.html +22 -26
  6. package/src/app/components/contacts-directory/contacts-directory.component.scss +8 -6
  7. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +12 -7
  8. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +36 -33
  9. package/src/app/components/conversation-info/info-content/info-content.component.html +2 -1
  10. package/src/app/components/conversation-info/info-content/info-content.component.ts +3 -2
  11. package/src/app/components/conversation-info/info-direct/info-direct.component.html +1 -9
  12. package/src/app/components/conversation-info/info-direct/info-direct.component.ts +0 -2
  13. package/src/app/components/conversation-info/info-group/info-group.component.html +44 -108
  14. package/src/app/components/conversation-info/info-group/info-group.component.scss +101 -61
  15. package/src/app/components/conversation-info/info-group/info-group.component.ts +1 -0
  16. package/src/app/components/{ddp-header/ddp-header.component.html → conversations-list/header-conversations-list/header-conversations-list.component.html} +2 -2
  17. package/src/app/components/{ddp-header/ddp-header.component.scss → conversations-list/header-conversations-list/header-conversations-list.component.scss} +13 -5
  18. package/src/app/components/{ddp-header/ddp-header.component.spec.ts → conversations-list/header-conversations-list/header-conversations-list.component.spec.ts} +6 -6
  19. package/src/app/components/{ddp-header/ddp-header.component.ts → conversations-list/header-conversations-list/header-conversations-list.component.ts} +7 -16
  20. package/src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.html +12 -0
  21. package/src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.scss +14 -0
  22. 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
  23. 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
  24. package/src/app/components/utils/user-presence/user-presence.component.html +7 -2
  25. package/src/app/components/utils/user-presence/user-presence.component.scss +35 -18
  26. package/src/app/components/utils/user-presence/user-presence.component.ts +6 -10
  27. package/src/app/pages/contacts-directory/contacts-directory.page.html +1 -1
  28. package/src/app/pages/contacts-directory/contacts-directory.page.scss +41 -0
  29. package/src/app/pages/contacts-directory/contacts-directory.page.ts +2 -0
  30. package/src/app/pages/conversation-detail/conversation-detail.page.html +18 -11
  31. package/src/app/pages/conversation-detail/conversation-detail.page.scss +39 -247
  32. package/src/app/pages/conversation-detail/conversation-detail.page.ts +5 -6
  33. package/src/app/pages/conversations-list/conversations-list.page.html +9 -6
  34. package/src/app/pages/conversations-list/conversations-list.page.scss +8 -0
  35. package/src/app/pages/conversations-list/conversations-list.page.ts +14 -0
  36. package/src/app/pages/profile-info/profile-info.page.html +2 -4
  37. package/src/app/shared/shared.module.ts +24 -24
  38. package/src/assets/i18n/ar.json +269 -267
  39. package/src/assets/i18n/az.json +2 -0
  40. package/src/assets/i18n/de.json +2 -0
  41. package/src/assets/i18n/en.json +2 -0
  42. package/src/assets/i18n/es.json +2 -0
  43. package/src/assets/i18n/fr.json +2 -0
  44. package/src/assets/i18n/it.json +2 -0
  45. package/src/assets/i18n/kk.json +2 -0
  46. package/src/assets/i18n/pt.json +2 -0
  47. package/src/assets/i18n/ru.json +2 -0
  48. package/src/assets/i18n/sr.json +2 -0
  49. package/src/assets/i18n/sv.json +2 -0
  50. package/src/assets/i18n/tr.json +2 -0
  51. package/src/assets/i18n/uk.json +2 -0
  52. package/src/assets/i18n/uz.json +2 -0
  53. package/src/chat21-core/utils/utils.ts +4 -0
  54. package/src/variables.scss +7 -1
  55. package/src/app/components/conversation-detail/option-header/option-header.component.html +0 -13
  56. package/src/app/components/conversation-detail/option-header/option-header.component.scss +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,20 @@
1
1
  # chat21-ionic ver 3.0
2
2
 
3
+ ### 3.0.79-rc.1
4
+ - added: LABEL_ONLINE, LABEL_OFFLINE translations
5
+ - changed: renamed ddp-header with conversations-list-header
6
+ - changed: unified control to mobile/desktop app
7
+ - changed: LABEL_AVAILABLE/NOT_AVAILABLE with LABEL_ONLINE/OFFLINE in user-presence component
8
+ - changed: icon to user-presence
9
+ - changed: UI for conversation-list, conversation-detail and info-group for desktop and mobile
10
+ - changed: renamed option-header component with header-conversations-list-archived
11
+ - changed: contacts-directory UI
12
+ - bug-fixed: if app is opened and user press width expand, move correctly the right position
13
+
14
+ ## 3.0.78 in PROD
15
+ - bug-fixed: unassigned request not sound the if is the first at all
16
+ - bug-fixed: canned responses opens in incorrect mode
17
+
3
18
  ### 3.0.78-rc.4
4
19
  - bug-fixed: unassigned request not sound the if is the first at all
5
20
  - bug-fixed: translations missed
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@chat21/chat21-ionic",
3
3
  "author": "Tiledesk SRL",
4
- "version": "3.0.78-rc.4",
4
+ "version": "3.0.79-rc.1",
5
5
  "license": "MIT License",
6
6
  "homepage": "https://tiledesk.com/",
7
7
  "repository": {
@@ -53,6 +53,10 @@
53
53
  &.mobile{
54
54
  right: 0px;
55
55
  }
56
+ &:not(.mobile){
57
+ right: calc(300px + var(--padding-conversation-detail));
58
+ top: calc(60px + var(--padding-conversation-detail));
59
+ }
56
60
  &::before{
57
61
  content: "";
58
62
  width: 102px;
@@ -19,7 +19,8 @@ ion-item {
19
19
  --padding-start: 0;
20
20
  --inner-padding-end: 0;
21
21
  --background-hover: #000000 !important;
22
- border-radius: 16px;
22
+ --background: transparent;
23
+ border-radius: var(--border-radius-item);
23
24
  margin: 4px 5px;
24
25
  .conv-container{
25
26
  width: 84%;
@@ -248,7 +249,7 @@ ion-item:hover {
248
249
  }
249
250
 
250
251
  .ion-selected {
251
- --background: rgba(24, 119, 242, 0.04);
252
+ background: var(--list-bkg-color-selected);
252
253
  border-right: 4px solid var(--basic-blue);
253
254
  }
254
255
 
@@ -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,5 +1,5 @@
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()">
@@ -22,26 +22,31 @@
22
22
  <!-- (click)="onOpenCloseInfoConversation()" -->
23
23
  <div class="tile-info-with"
24
24
  [ngClass]="{ 'tile-info-with-ios': platformName === 'ios' }">
25
- <span class="tile-username">{{ conversationAvatar.conversation_with_fullname | truncate:50 }} </span>
25
+ <span class="tile-username truncate">{{ conversationAvatar.conversation_with_fullname}} </span>
26
26
  <!-- <span class="tile-username">{{ conversation_with_fullname }} </span> -->
27
27
  </div>
28
28
 
29
29
  <!-- [ngStyle] = "{ 'left': platformName === 'ios' ? '63px' : '' }" -->
30
- <div *ngIf="isDirect" class="user-presence" [ngClass]="{ 'user-presence-ios': platformName === 'ios' }">
30
+ <!-- <div *ngIf="isDirect" class="user-presence" [ngClass]="{ 'user-presence-ios': platformName === 'ios' }">
31
31
  <app-user-presence
32
32
  [idUser]=conversationAvatar.conversation_with
33
33
  [translationMap]=translationsMap
34
34
  [borderColor]=borderColor
35
35
  [fontColor]=fontColor>
36
36
  </app-user-presence>
37
- </div>
37
+ </div> -->
38
38
 
39
39
  <div class="subtitle-info">
40
40
  <div class="conversation_project">
41
41
  <!-- DIRECT CONV -->
42
42
  <div *ngIf="isDirect">
43
- <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>
44
- <span class="truncate">{{translationsMap.get('DIRECT_CHAT')}}</span>
43
+ <app-user-presence
44
+ [idUser]="conversationAvatar.conversation_with"
45
+ [isMobile]="isMobile"
46
+ [translationMap]="translationsMap">
47
+ </app-user-presence>
48
+ <!-- <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>
49
+ <span class="truncate">{{translationsMap.get('DIRECT_CHAT')}}</span> -->
45
50
  </div>
46
51
  <!-- GROUP CONV -->
47
52
  <div *ngIf="conversationUid?.startsWith(TYPE_GROUP)">
@@ -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
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
  }
@@ -69,14 +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-left: 12px;
78
-
79
- // 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
+ }
80
100
  }
81
101
  .tile-point {
82
102
  width: 10px;
@@ -87,25 +107,7 @@ ion-header {
87
107
  margin-right: 5px;
88
108
  vertical-align: middle;
89
109
  }
90
- .tile-username {
91
- display: inline-block;
92
- font-size: 18px;
93
- margin: 0;
94
- padding: 0;
95
-
96
- color: #1f2d3d;
97
- font-weight: 400; //600;
98
- -webkit-font-smoothing: antialiased;
99
- text-rendering: optimizeLegibility;
100
- -webkit-text-size-adjust: none;
101
- -moz-text-size-adjust: none;
102
- -ms-text-size-adjust: none;
103
- text-size-adjust: none;
104
- -webkit-user-select: text;
105
- -moz-user-select: text;
106
- -ms-user-select: text;
107
- user-select: text;
108
- }
110
+
109
111
 
110
112
  .tile-last-activity {
111
113
  color: var(--light-gray);
@@ -142,8 +144,8 @@ ion-header {
142
144
  background-color: #fff;
143
145
  color: #fff;
144
146
  text-align: center;
145
- width: 40px;
146
- height: 40px;
147
+ width: 44px;
148
+ height: 44px;
147
149
  // position: absolute;
148
150
  // top: 0;
149
151
  // left: 20px;
@@ -163,6 +165,7 @@ ion-header {
163
165
  flex-direction: column;
164
166
  justify-content: center;
165
167
  margin-left: 12px;
168
+ width: 80%;
166
169
  }
167
170
 
168
171
  .user-presence {
@@ -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>