@chat21/chat21-ionic 3.0.60 → 3.0.61-rc2

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 (86) hide show
  1. package/CHANGELOG.md +23 -0
  2. package/README.md +2 -0
  3. package/angular.json +2 -0
  4. package/env.sample +3 -1
  5. package/package.json +5 -1
  6. package/src/app/app.component.html +11 -2
  7. package/src/app/app.component.scss +13 -1
  8. package/src/app/app.component.ts +26 -3
  9. package/src/app/app.module.ts +2 -1
  10. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +2 -2
  11. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +24 -1
  12. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +2 -3
  13. package/src/app/components/conversation-info/info-content/info-content.component.html +2 -2
  14. package/src/app/components/ddp-header/ddp-header.component.html +14 -7
  15. package/src/app/components/ddp-header/ddp-header.component.scss +4 -0
  16. package/src/app/components/ddp-header/ddp-header.component.ts +21 -2
  17. package/src/app/components/project-item/project-item.component.html +7 -6
  18. package/src/app/components/project-item/project-item.component.scss +6 -1
  19. package/src/app/components/project-item/project-item.component.ts +15 -2
  20. package/src/app/components/sidebar/sidebar.component.html +210 -0
  21. package/src/app/components/sidebar/sidebar.component.scss +11 -0
  22. package/src/app/components/sidebar/sidebar.component.spec.ts +24 -0
  23. package/src/app/components/sidebar/sidebar.component.ts +400 -0
  24. package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +102 -0
  25. package/src/app/components/sidebar-user-details/sidebar-user-details.component.scss +310 -0
  26. package/src/app/components/sidebar-user-details/sidebar-user-details.component.spec.ts +24 -0
  27. package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +423 -0
  28. package/src/app/pages/conversation-detail/conversation-detail.page.ts +21 -20
  29. package/src/app/pages/conversations-list/conversations-list.page.html +11 -5
  30. package/src/app/pages/conversations-list/conversations-list.page.ts +33 -8
  31. package/src/app/pages/profile-info/profile-info.page.html +2 -2
  32. package/src/app/pages/profile-info/profile-info.page.ts +23 -21
  33. package/src/app/shared/shared.module.ts +13 -0
  34. package/src/assets/i18n/de.json +29 -12
  35. package/src/assets/i18n/en.json +21 -4
  36. package/src/assets/i18n/es.json +21 -4
  37. package/src/assets/i18n/fr.json +21 -4
  38. package/src/assets/i18n/it.json +21 -4
  39. package/src/assets/i18n/pt.json +21 -4
  40. package/src/assets/i18n/ru.json +21 -4
  41. package/src/assets/i18n/tr.json +23 -5
  42. package/src/assets/images/language_flag/ar.png +0 -0
  43. package/src/assets/images/language_flag/bg.png +0 -0
  44. package/src/assets/images/language_flag/ca.png +0 -0
  45. package/src/assets/images/language_flag/cs.png +0 -0
  46. package/src/assets/images/language_flag/da.png +0 -0
  47. package/src/assets/images/language_flag/de.png +0 -0
  48. package/src/assets/images/language_flag/el.png +0 -0
  49. package/src/assets/images/language_flag/en.png +0 -0
  50. package/src/assets/images/language_flag/es.png +0 -0
  51. package/src/assets/images/language_flag/fa.png +0 -0
  52. package/src/assets/images/language_flag/fi.png +0 -0
  53. package/src/assets/images/language_flag/fr.png +0 -0
  54. package/src/assets/images/language_flag/he.png +0 -0
  55. package/src/assets/images/language_flag/hi.png +0 -0
  56. package/src/assets/images/language_flag/hu.png +0 -0
  57. package/src/assets/images/language_flag/id.png +0 -0
  58. package/src/assets/images/language_flag/it.png +0 -0
  59. package/src/assets/images/language_flag/ja.png +0 -0
  60. package/src/assets/images/language_flag/ko.png +0 -0
  61. package/src/assets/images/language_flag/ml-IN.png +0 -0
  62. package/src/assets/images/language_flag/ne-NP.png +0 -0
  63. package/src/assets/images/language_flag/nl.png +0 -0
  64. package/src/assets/images/language_flag/no.png +0 -0
  65. package/src/assets/images/language_flag/pl.png +0 -0
  66. package/src/assets/images/language_flag/pt-BR.png +0 -0
  67. package/src/assets/images/language_flag/pt.png +0 -0
  68. package/src/assets/images/language_flag/ro.png +0 -0
  69. package/src/assets/images/language_flag/ru.png +0 -0
  70. package/src/assets/images/language_flag/sk.png +0 -0
  71. package/src/assets/images/language_flag/sl.png +0 -0
  72. package/src/assets/images/language_flag/sv-SE.png +0 -0
  73. package/src/assets/images/language_flag/ta.png +0 -0
  74. package/src/assets/images/language_flag/th.png +0 -0
  75. package/src/assets/images/language_flag/tr.png +0 -0
  76. package/src/assets/images/language_flag/uk.png +0 -0
  77. package/src/assets/images/language_flag/vi.png +0 -0
  78. package/src/assets/images/language_flag/zh-CN.png +0 -0
  79. package/src/assets/images/language_flag/zh-TW.png +0 -0
  80. package/src/assets/images/no_image_user.png +0 -0
  81. package/src/assets/tiledesk-solo-logo.png +0 -0
  82. package/src/chat-config-pre-test.json +3 -1
  83. package/src/chat-config-template.json +3 -1
  84. package/src/chat-config.json +4 -2
  85. package/src/global.scss +451 -3
  86. package/src/index.html +7 -0
@@ -0,0 +1,102 @@
1
+ <div id="user-details">
2
+
3
+ <div class="user-details-dshbrd-lang">
4
+
5
+ <span class="user-details-dshbrd-lang-code" style="text-transform: uppercase;color: #647491;">
6
+ {{chat_lang}}
7
+ </span>
8
+ <img [src]="flag_url" style="width: auto;height: 19px; position: relative;top: 1px;">
9
+
10
+ </div>
11
+
12
+ <button class="user-details-btn-close" type="button" (click)="closeUserDetailSidePanel()">
13
+ <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24">
14
+ <path
15
+ d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z">
16
+ </path>
17
+ <path d="M0 0h24v24H0z" fill="none"></path>
18
+ </svg>
19
+ </button>
20
+
21
+
22
+ <!-- (click)="goToUserProfile()" -->
23
+ <div role="button" class="user-details-avatar">
24
+ <img class="user-img-in-sidebar-user-details" [src]="photo_profile_URL"
25
+ onerror="this.src='assets/images/no_image_user.png'" />
26
+ </div>
27
+
28
+ <div class="user-details-user-isbusy" *ngIf="IS_BUSY === true" style="cursor:pointer"
29
+ matTooltipClass="custom-mat-tooltip" matTooltip="{{IS_BUSY_msg}}" #tooltip="matTooltip"
30
+ matTooltipPosition='right' matTooltipHideDelay="100">
31
+ <span class="material-icons user-details-user-isbusy-icon">
32
+ access_time
33
+ </span>
34
+ </div>
35
+
36
+
37
+ <div class="user-details-fullname">
38
+ <h3> {{ user?.firstname }} {{ user?.lastname }} </h3>
39
+ </div>
40
+
41
+ <div class="user-details-email">
42
+ <h3>{{ user?.email }} </h3>
43
+ </div>
44
+
45
+ <div class="user-details-role">
46
+ <h3>{{ USER_ROLE_LABEL }} </h3>
47
+ </div>
48
+
49
+ <section class="availability-section">
50
+ <mat-slide-toggle (change)="changeAvailabilityStateInUserDetailsSidebar(IS_AVAILABLE = !IS_AVAILABLE)"
51
+ class="custom-mat-slide-toggle" [checked]="IS_AVAILABLE" labelPosition="before">
52
+
53
+ <span *ngIf="IS_AVAILABLE"
54
+ style="font-weight: 400 !important; text-transform: capitalize; font-size:14px; color:#a9afbb">
55
+ {{IS_AVAILABLE_msg}}
56
+ <!-- {{translationMap?.get('Available') }} -->
57
+ </span>
58
+ <span *ngIf="!IS_AVAILABLE"
59
+ style="font-weight: 400 !important;text-transform: capitalize;font-size:14px; color:#a9afbb">
60
+ {{IS_UNAVAILABLE_msg}}
61
+ <!-- {{translationMap?.get('Unavailable') }} -->
62
+ </span>
63
+ </mat-slide-toggle>
64
+ </section>
65
+
66
+ <hr class="first-divider">
67
+
68
+ <section *ngIf="isVisiblePAY" class="user-details-plan-info">
69
+ <span>
70
+ <div> {{prjct_name}} </div>
71
+ <div> {{ profile_name_translated }} </div>
72
+
73
+ <span *ngIf="plan_type === 'payment' && plan_subscription_is_active === false"
74
+ style="color:#f44336; position:relative; top: -1px;">
75
+ <i *ngIf="plan_name !== 'enterprise'" class="material-icons" style="vertical-align: middle; color:#f44336; cursor:pointer;
76
+ font-size: 16px;" matTooltipClass="custom-mat-tooltip"
77
+ matTooltip="{{ SUBSCRIPTION_PAYMENT_PROBLEM_msg }}" #tooltip="matTooltip" matTooltipPosition='right'
78
+ matTooltipHideDelay="100">
79
+ error_outline
80
+ </i>
81
+ <i *ngIf="plan_name === 'enterprise'" class="material-icons" style="vertical-align: middle; color:#f44336; cursor:pointer;
82
+ font-size: 16px;" matTooltipClass="custom-mat-tooltip" matTooltip="{{ THE_PLAN_HAS_EXPIRED_msg }}"
83
+ #tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100">
84
+ error_outline
85
+ </i>
86
+ </span>
87
+ </span>
88
+ </section>
89
+
90
+ <!-- <hr class="second-divider" style="margin-top: 20px;border: 0;
91
+ border-top: 1px solid rgba(255, 255,255, 0.2);"> -->
92
+
93
+
94
+ <section class="user-details-footer-section" (click)=onLogout()
95
+ [ngClass]="{'footer-margin-top-pricing-no-visible': isVisiblePAY === false }">
96
+ <i class="material-icons user-details-logout-icon">
97
+ logout
98
+ </i>
99
+ <div> Logout</div>
100
+ </section>
101
+
102
+ </div>
@@ -0,0 +1,310 @@
1
+ // @import url('https://fonts.googleapis.com/css2?family=Roboto:wght@300;400;500&display=swap');
2
+ #user-details {
3
+ background-color: #1e2129;
4
+ color: #fff;
5
+ // height: calc(100% - 60px);
6
+ height: 100%;
7
+ overflow-y: auto;
8
+ padding: 16px 12px 32px;
9
+ position: absolute;
10
+ // left: -60px;
11
+ // top: 60px;
12
+ // top: 0px;
13
+ // transform: translate(305px);
14
+ // transform: translate(60px);
15
+ transition: transform 0.5s;
16
+ width: 305px;
17
+ left: -245px
18
+ // z-index: 1029;
19
+ // transform: translateX(-100%);
20
+ // -webkit-transform: translateX(-100%);
21
+ // display: none;
22
+ }
23
+
24
+ #user-details::-webkit-scrollbar {
25
+ width: 6px;
26
+ }
27
+ #user-details::-webkit-scrollbar-track {
28
+ background-color: #1c2b45;
29
+ }
30
+ #user-details::-webkit-scrollbar-thumb {
31
+ background-color: #3c485b;
32
+ border-radius: 3px;
33
+ }
34
+
35
+ #user-details.active {
36
+ // transform: translate(0);
37
+ transform: translate(60px);
38
+ display: block;
39
+ left: 0px;
40
+ }
41
+
42
+ #user-details .user-details-btn-close svg {
43
+ fill: #647491;
44
+ }
45
+
46
+ #user-details .user-details-btn-close {
47
+ opacity: 1;
48
+ position: absolute;
49
+ right: 16px;
50
+ top: 20px;
51
+ }
52
+
53
+ button.user-details-btn-close {
54
+ -webkit-appearance: none;
55
+ background: 0 0;
56
+ border: 0;
57
+ cursor: pointer;
58
+ outline: none;
59
+ padding: 0;
60
+ }
61
+
62
+ .user-details-btn-close {
63
+ color: #000;
64
+ float: right;
65
+ font-size: 21px;
66
+ font-weight: 700;
67
+ line-height: 1;
68
+ opacity: 0.2;
69
+ }
70
+
71
+ .user-details-btn-close:hover {
72
+ color: #000;
73
+ cursor: pointer;
74
+ opacity: 0.5 !important;
75
+ text-decoration: none;
76
+ }
77
+
78
+ .user-details-dshbrd-lang {
79
+ position: absolute;
80
+ top: 20px;
81
+ left: 16px;
82
+ cursor: pointer;
83
+ }
84
+
85
+ .user-details-dshbrd-lang-code {
86
+ text-transform: uppercase;
87
+ color: #647491;
88
+ position: relative;
89
+ top: -3px;
90
+ }
91
+
92
+ .user-details-dshbrd-lang-code {
93
+ text-transform: uppercase;color: #647491;
94
+ font-family: "Roboto", sans-serif !important;
95
+ font-size: 14px;
96
+ }
97
+
98
+ .user-details-avatar {
99
+ text-align: center;
100
+ cursor: pointer;
101
+ position: absolute;
102
+ top: 82px;
103
+ border-radius: 50%;
104
+ padding: 4px 4px 1px 4px;
105
+ -webkit-transform: translateX(-50%);
106
+ transform: translateX(-50%);
107
+ left: 50%;
108
+ background: #2d323e;
109
+ }
110
+
111
+ // width: 109px;
112
+ // height: 109px;
113
+ // margin: 0;
114
+ // border-radius: 50%;
115
+ // -o-object-fit: cover;
116
+ // object-fit: cover;
117
+ // position: relative;
118
+ // top: 2px;
119
+
120
+ .user-img-in-sidebar-user-details {
121
+ width: 103px;
122
+ height: 103px;
123
+ margin: 0;
124
+ border-radius: 50%;
125
+ -o-object-fit: cover;
126
+ object-fit: cover;
127
+ }
128
+
129
+ .user-details-fullname {
130
+ top: 190px;
131
+ position: absolute;
132
+ -webkit-transform: translateX(-50%);
133
+ transform: translateX(-50%);
134
+ left: 50%;
135
+ }
136
+
137
+ .user-details-fullname > h3 {
138
+ // font-size: 17px;
139
+ text-align: center;
140
+ margin-bottom: 5px;
141
+ font-size: 16px;
142
+ font-family: 'Poppins';
143
+ font-weight: 500;
144
+ line-height: 24px;
145
+
146
+ }
147
+
148
+ .user-details-email {
149
+ top: 235px;
150
+ position: absolute;
151
+ -webkit-transform: translateX(-50%);
152
+ transform: translateX(-50%);
153
+ left: 50%;
154
+ }
155
+
156
+ .user-details-email > h3 {
157
+ font-size: 14px;
158
+ text-align: center;
159
+ margin-top: 5px;
160
+ font-family: 'Poppins';
161
+ font-weight: 400;
162
+ line-height: 1px;
163
+
164
+ }
165
+
166
+ .user-details-role {
167
+ top: 260px;
168
+ position: absolute;
169
+ -webkit-transform: translateX(-50%);
170
+ transform: translateX(-50%);
171
+ left: 50%;
172
+ }
173
+
174
+ .user-details-role > h3 {
175
+ font-size: 11px;
176
+ text-align: center;
177
+ margin-top: 5px;
178
+ text-transform: uppercase;
179
+ color: #a9afbb;
180
+ font-weight: 500;
181
+ font-family: 'Roboto', sans-serif !important;
182
+
183
+ }
184
+
185
+ .availability-section {
186
+ top: 300px;
187
+ text-align: center;
188
+ background-color: #2d323e;
189
+ padding: 9px;
190
+ width: 192px;
191
+ border-radius: 4px;
192
+ -webkit-transform: translateX(-50%);
193
+ transform: translateX(-50%);
194
+ left: 50%;
195
+ margin: auto;
196
+ position: absolute;
197
+ }
198
+
199
+ .first-divider {
200
+ margin-top: 355px;
201
+ border: 0;
202
+ border-top: 1px solid rgba(255, 255,255, 0.2);
203
+ margin-bottom: 20px;
204
+ }
205
+
206
+ .camera-on-hover {
207
+ cursor: pointer;
208
+ position: absolute;
209
+ top: 80px;
210
+ border-radius: 50%;
211
+ -webkit-transform: translateX(-50%);
212
+ transform: translateX(-50%);
213
+ left: 50%;
214
+ width: 90px;
215
+ height: 90px;
216
+ padding: 33px;
217
+ background: rgba(45, 50, 62, 0.7);
218
+ opacity: 0;
219
+ }
220
+
221
+ .camera-on-hover:hover {
222
+ opacity: 1;
223
+ }
224
+ .user-details-user-isbusy {
225
+ color: #feb92c;
226
+ background-color: #2d323e;
227
+ border-radius: 50%;
228
+ position: absolute;
229
+ top: 92px;
230
+ width: 24px;
231
+ height: 24px;
232
+ left: 101px;
233
+ }
234
+
235
+ .user-details-user-isbusy-icon {
236
+ font-size: 18px !important;
237
+ position: relative;
238
+ top: 3px;
239
+ left: 3px;
240
+ }
241
+
242
+ .user-details-plan-info {
243
+ font-size: 13px;
244
+ text-transform: capitalize;
245
+ color: #a9afbb;
246
+ font-weight: 500;
247
+ line-height: 21px;
248
+ }
249
+
250
+ .user-details-footer-section {
251
+ -webkit-transform: translateX(-50%);
252
+ transform: translateX(-50%);
253
+ left: 50%;
254
+ margin: auto;
255
+ position: absolute;
256
+ text-align: center;
257
+ cursor: pointer;
258
+ padding-bottom: 15px;
259
+ padding-top: 200px;
260
+ font-size: 16px;
261
+ font-weight: 400;
262
+ // bottom: 50px;
263
+ // top:355px
264
+ }
265
+
266
+ .footer-margin-top-pricing-no-visible {
267
+ padding-top: 240px;
268
+ }
269
+ .user-details-logout-icon {
270
+ color: #a9afbb;
271
+ font-size: 30px;
272
+ margin-top: 30px;
273
+ }
274
+
275
+ .user-details-logout-icon:hover {
276
+ color: #fff;
277
+ }
278
+
279
+ :host ::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-bar {
280
+ background-color: #a9afbb;
281
+ margin-left: 30px;
282
+ }
283
+
284
+ :host ::ng-deep .mat-slide-toggle:not(.mat-disabled) .mat-slide-toggle-bar {
285
+ background-color: #a9afbb;
286
+ margin-left: 30px;
287
+ }
288
+
289
+ :host ::ng-deep .mat-slide-toggle.mat-checked:not(.mat-disabled) .mat-slide-toggle-thumb {
290
+ background-color: #4caf50;
291
+ }
292
+ :host ::ng-deep .mat-slide-toggle:not(.mat-disabled) .mat-slide-toggle-thumb {
293
+ background-color: #f44336;
294
+ }
295
+
296
+ ::ng-deep .my-custom-snackbar {
297
+ margin: 0 !important;
298
+ position: absolute;
299
+ right: 25px;
300
+ top: 95px;
301
+ }
302
+
303
+ ::ng-deep .my-custom-snackbar .mat-simple-snackbar-action {
304
+ color: #eee;
305
+ }
306
+
307
+ ::ng-deep .custom-mat-tooltip {
308
+ background-color: #2d323e;
309
+ font-size: 12px;
310
+ }
@@ -0,0 +1,24 @@
1
+ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
2
+ import { IonicModule } from '@ionic/angular';
3
+
4
+ import { SidebarUserDetailsComponent } from './sidebar-user-details.component';
5
+
6
+ describe('SidebarUserDetailsComponent', () => {
7
+ let component: SidebarUserDetailsComponent;
8
+ let fixture: ComponentFixture<SidebarUserDetailsComponent>;
9
+
10
+ beforeEach(async(() => {
11
+ TestBed.configureTestingModule({
12
+ declarations: [ SidebarUserDetailsComponent ],
13
+ imports: [IonicModule.forRoot()]
14
+ }).compileComponents();
15
+
16
+ fixture = TestBed.createComponent(SidebarUserDetailsComponent);
17
+ component = fixture.componentInstance;
18
+ fixture.detectChanges();
19
+ }));
20
+
21
+ it('should create', () => {
22
+ expect(component).toBeTruthy();
23
+ });
24
+ });