@chat21/chat21-ionic 3.0.60-rc9 → 3.0.61-rc4

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 (89) hide show
  1. package/CHANGELOG.md +37 -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 +12 -3
  7. package/src/app/app.component.scss +17 -1
  8. package/src/app/app.component.ts +27 -4
  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 +7 -2
  11. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +34 -6
  12. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +31 -35
  13. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +4 -0
  14. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +15 -1
  15. package/src/app/components/ddp-header/ddp-header.component.html +13 -6
  16. package/src/app/components/ddp-header/ddp-header.component.scss +4 -0
  17. package/src/app/components/ddp-header/ddp-header.component.ts +21 -2
  18. package/src/app/components/project-item/project-item.component.html +7 -6
  19. package/src/app/components/project-item/project-item.component.scss +6 -1
  20. package/src/app/components/project-item/project-item.component.ts +15 -2
  21. package/src/app/components/sidebar/sidebar.component.html +210 -0
  22. package/src/app/components/sidebar/sidebar.component.scss +11 -0
  23. package/src/app/components/sidebar/sidebar.component.spec.ts +24 -0
  24. package/src/app/components/sidebar/sidebar.component.ts +400 -0
  25. package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +102 -0
  26. package/src/app/components/sidebar-user-details/sidebar-user-details.component.scss +310 -0
  27. package/src/app/components/sidebar-user-details/sidebar-user-details.component.spec.ts +24 -0
  28. package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +421 -0
  29. package/src/app/pages/conversation-detail/conversation-detail.page.ts +21 -20
  30. package/src/app/pages/conversations-list/conversations-list.page.html +14 -7
  31. package/src/app/pages/conversations-list/conversations-list.page.ts +60 -23
  32. package/src/app/pages/profile-info/profile-info.page.html +2 -2
  33. package/src/app/pages/profile-info/profile-info.page.ts +23 -21
  34. package/src/app/shared/shared.module.ts +13 -0
  35. package/src/assets/i18n/de.json +30 -12
  36. package/src/assets/i18n/en.json +22 -4
  37. package/src/assets/i18n/es.json +22 -4
  38. package/src/assets/i18n/fr.json +22 -4
  39. package/src/assets/i18n/it.json +22 -4
  40. package/src/assets/i18n/pt.json +22 -4
  41. package/src/assets/i18n/ru.json +22 -4
  42. package/src/assets/i18n/tr.json +24 -5
  43. package/src/assets/images/language_flag/ar.png +0 -0
  44. package/src/assets/images/language_flag/bg.png +0 -0
  45. package/src/assets/images/language_flag/ca.png +0 -0
  46. package/src/assets/images/language_flag/cs.png +0 -0
  47. package/src/assets/images/language_flag/da.png +0 -0
  48. package/src/assets/images/language_flag/de.png +0 -0
  49. package/src/assets/images/language_flag/el.png +0 -0
  50. package/src/assets/images/language_flag/en.png +0 -0
  51. package/src/assets/images/language_flag/es.png +0 -0
  52. package/src/assets/images/language_flag/fa.png +0 -0
  53. package/src/assets/images/language_flag/fi.png +0 -0
  54. package/src/assets/images/language_flag/fr.png +0 -0
  55. package/src/assets/images/language_flag/he.png +0 -0
  56. package/src/assets/images/language_flag/hi.png +0 -0
  57. package/src/assets/images/language_flag/hr.png +0 -0
  58. package/src/assets/images/language_flag/hu.png +0 -0
  59. package/src/assets/images/language_flag/id.png +0 -0
  60. package/src/assets/images/language_flag/it.png +0 -0
  61. package/src/assets/images/language_flag/ja.png +0 -0
  62. package/src/assets/images/language_flag/ko.png +0 -0
  63. package/src/assets/images/language_flag/ml-IN.png +0 -0
  64. package/src/assets/images/language_flag/ne-NP.png +0 -0
  65. package/src/assets/images/language_flag/nl.png +0 -0
  66. package/src/assets/images/language_flag/no.png +0 -0
  67. package/src/assets/images/language_flag/pl.png +0 -0
  68. package/src/assets/images/language_flag/pt-BR.png +0 -0
  69. package/src/assets/images/language_flag/pt.png +0 -0
  70. package/src/assets/images/language_flag/ro.png +0 -0
  71. package/src/assets/images/language_flag/ru.png +0 -0
  72. package/src/assets/images/language_flag/sk.png +0 -0
  73. package/src/assets/images/language_flag/sl.png +0 -0
  74. package/src/assets/images/language_flag/sr.png +0 -0
  75. package/src/assets/images/language_flag/sv-SE.png +0 -0
  76. package/src/assets/images/language_flag/ta.png +0 -0
  77. package/src/assets/images/language_flag/th.png +0 -0
  78. package/src/assets/images/language_flag/tr.png +0 -0
  79. package/src/assets/images/language_flag/uk.png +0 -0
  80. package/src/assets/images/language_flag/vi.png +0 -0
  81. package/src/assets/images/language_flag/zh-CN.png +0 -0
  82. package/src/assets/images/language_flag/zh-TW.png +0 -0
  83. package/src/assets/images/no_image_user.png +0 -0
  84. package/src/assets/tiledesk-solo-logo.png +0 -0
  85. package/src/chat-config-pre-test.json +3 -1
  86. package/src/chat-config-template.json +3 -1
  87. package/src/chat-config.json +4 -2
  88. package/src/global.scss +451 -3
  89. package/src/index.html +7 -0
@@ -48,7 +48,7 @@
48
48
 
49
49
 
50
50
  <div class="flex-child-right">
51
- <div class="project-name-project-for-panel" [tooltip]="conversationsInQueueOnProjectName"
51
+ <div class="project-name-project-for-panel" [ngClass]="{'project-name-project-for-panel-on-desktop': IS_ON_MOBILE_DEVICE === false}" [tooltip]="conversationsInQueueOnProjectName"
52
52
  [options]="tooltipOptions" placement="top" content-type="template" (click)="openUnservedConvs()">
53
53
  <div class="project---name"> {{ project?.id_project?.name }} </div>
54
54
  </div>
@@ -87,7 +87,9 @@
87
87
  [ngClass]="{'online-text-color' : project?.ws_projct_user_available === true, 'offline-text-color' : project?.ws_projct_user_available === false}">
88
88
  {{translationMap?.get('Unavailable')}}
89
89
  </span>
90
- <div class="project-item--isBusy-icon-wpr" *ngIf="project?.ws_projct_user_isBusy === true">
90
+
91
+ <div class="project-item--isBusy-icon-wpr" *ngIf="project?.ws_projct_user_isBusy === true" tooltip=" {{translationMap?.get('Busy')}}"
92
+ [options]="tooltipOptions" placement="top" >
91
93
  <!-- <span class="material-icons project-item--isBusy-icon">
92
94
  access_time
93
95
  </span> -->
@@ -102,14 +104,14 @@
102
104
  </g>
103
105
  </svg>
104
106
  </div>
105
- <span *ngIf="project?.ws_projct_user_isBusy === true"
107
+ <!-- <span *ngIf="project?.ws_projct_user_isBusy === true"
106
108
  class="project-item--isBusy-busy-text text-pulse-animation">
107
109
  {{translationMap?.get('Busy')}}
108
- </span>
110
+ </span> -->
109
111
  </div>
110
112
  </div>
111
113
 
112
- <div class="flex-child-view-all-convs">
114
+ <div *ngIf="IS_ON_MOBILE_DEVICE === true" class="flex-child-view-all-convs">
113
115
  <div class="view-all-convs-icon-wpr" style="cursor: pointer;" [tooltip]="viewAllConvs"
114
116
  [options]="tooltipOptions" placement="top" content-type="template">
115
117
 
@@ -153,7 +155,6 @@
153
155
  </div>
154
156
  <ng-template #viewAllConvs>
155
157
  <span>
156
-
157
158
  {{translationMap?.get('CHANGE_PINNED_PROJECT') }}</span>
158
159
  </ng-template>
159
160
  </div>
@@ -311,7 +311,7 @@
311
311
  color: #1e2129;
312
312
  font-weight: 400;
313
313
  margin-left: 10px;
314
- width: 185px !important;
314
+ width: 185px ;
315
315
  // width: 220px !important;
316
316
  white-space: nowrap !important;
317
317
  overflow: hidden !important;
@@ -323,6 +323,11 @@
323
323
  cursor: pointer;
324
324
  }
325
325
 
326
+
327
+ .project-name-project-for-panel-on-desktop {
328
+ width: 217px
329
+ }
330
+
326
331
  // .project-name-project-for-panel:hover span {
327
332
  // color: rgba(0, 0, 0, 0.35);
328
333
  // // display: none;
@@ -17,6 +17,8 @@ import { AppConfigProvider } from 'src/app/services/app-config';
17
17
  styleUrls: ['./project-item.component.scss'],
18
18
  })
19
19
  export class ProjectItemComponent implements OnInit {
20
+ private logger: LoggerService = LoggerInstance.getInstance();
21
+
20
22
  @Output() projectIdEvent = new EventEmitter<string>()
21
23
  @Output() openUnsevedConvsEvent = new EventEmitter<any>()
22
24
 
@@ -29,7 +31,7 @@ export class ProjectItemComponent implements OnInit {
29
31
  ROLE_IS_AGENT: boolean;
30
32
  currentUserId: string;
31
33
  public translationMap: Map<string, string>;
32
- private logger: LoggerService = LoggerInstance.getInstance();
34
+
33
35
  window_width_is_60: boolean;
34
36
  newInnerWidth: any;
35
37
  avaialble_status_for_tooltip: string;
@@ -42,7 +44,7 @@ export class ProjectItemComponent implements OnInit {
42
44
  'hideDelayAfterClick': 3000,
43
45
  'hide-delay': 200
44
46
  };
45
-
47
+ IS_ON_MOBILE_DEVICE: boolean;
46
48
  constructor(
47
49
  public wsService: WebsocketService,
48
50
  public appStorageService: AppStorageService,
@@ -59,9 +61,20 @@ export class ProjectItemComponent implements OnInit {
59
61
  this.translations();
60
62
  this.listenToPostMsgs();
61
63
  this.onInitWindowWidth();
64
+
65
+ this.isOnMobileDevice()
62
66
  // console.log('[PROJECT-ITEM] - on INIT')
63
67
  }
64
68
 
69
+ isOnMobileDevice() {
70
+ this.IS_ON_MOBILE_DEVICE = false;
71
+ if (/Android|iPhone/i.test(window.navigator.userAgent)) {
72
+ this.IS_ON_MOBILE_DEVICE = true;
73
+ }
74
+ // console.log('[PROJECT-ITEM] IS_ON_MOBILE_DEVICE', this.IS_ON_MOBILE_DEVICE)
75
+ return this.IS_ON_MOBILE_DEVICE;
76
+ }
77
+
65
78
  openUnservedConvs() {
66
79
  this.openUnsevedConvsEvent.emit('notificationsorprjctbtn')
67
80
  }
@@ -0,0 +1,210 @@
1
+ <!-- *ngIf="project" -->
2
+ <div class="logo" style="background-color:#1e2129!important; padding-bottom: 5px;min-height: 60px; width: 60px;">
3
+ <a class="logo-img-wpr" [ngClass]="{'small-sidebar-logo-img-wpr' : SIDEBAR_IS_SMALL === true }">
4
+ <div class="logo-img" (click)="goToHome()" style="cursor: pointer;">
5
+ <img class="small-sidebar__logo" src="assets/tiledesk-solo-logo.png" />
6
+ </div>
7
+ </a>
8
+ </div>
9
+
10
+ <div class="sidebar-wrapper">
11
+ <!-- // NK start NEW: AVATAR ON THE SIDEBAR -->
12
+ <div class="user tiledesk-nav-user" [ngClass]="{'small-sidebar-tiledesk-nav-user' : SIDEBAR_IS_SMALL === true }"
13
+ fxlayout="column" style="flex-direction: column; box-sizing: border-box; display: flex;">
14
+ <div class="h3 username" style="font-size: 16px;font-weight: 400;margin-top: 15px; margin-bottom: 5px;"
15
+ [ngClass]="{'small-sidebar-userfullname' : SIDEBAR_IS_SMALL === true }">
16
+
17
+ {{ user?.firstname }} {{ user?.lastname }}
18
+ </div>
19
+ <div class="h5 email hint-text mt-8"
20
+ style="color: rgba(255,255,255,.5)!important;font-size: 13px;margin-top: 0px!important;font-weight: 400;"
21
+ [ngClass]="{'small-sidebar-email' : SIDEBAR_IS_SMALL === true }">
22
+ {{ user?.email }}
23
+ </div>
24
+
25
+
26
+ <div id="sidebaravatar-img-wpr" class="avatar-container tiledesk-nav-avatar" (click)="openUserDetailSidePanel()"
27
+ style="cursor: pointer;" [ngClass]="{'small-sidebar-avatar' : SIDEBAR_IS_SMALL === true }">
28
+
29
+ <img id="sidebaravatar-img" class="sidebar-avatar" [src]="photo_profile_URL" onerror="this.src='assets/images/no_image_user.png'" />
30
+
31
+
32
+ <!-- matTooltipClass="custom-mat-tooltip" matTooltip="{{ tooltip_text_for_availability_status}}" #tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100" -->
33
+ <!-- (click)="changeAvailabilityState(IS_AVAILABLE = !IS_AVAILABLE)" -->
34
+ <div id="sidebaravatar-status-icon" class="status-icon"
35
+ [ngClass]="{'is-user-online' : IS_AVAILABLE === true, 'is-user-offline' : IS_AVAILABLE === false, 'small-sidebar-status-icon' : SIDEBAR_IS_SMALL === true }">
36
+ </div>
37
+
38
+ </div>
39
+ <!-- CAMERA ICONS OVER THE AVATAR -->
40
+ <!-- [ngClass]="{'hover-effect' : isOverAvar}" -->
41
+ <!-- <i class="material-icons is-over-camera"
42
+ [ngClass]="{'small-sidebar-camera-icon' : SIDEBAR_IS_SMALL === true, 'is-over-camera-decrease-top':IS_BUSY === true }">
43
+ camera_alt
44
+ </i> -->
45
+
46
+
47
+ <!-- matTooltipClass="custom-mat-tooltip" matTooltip="{{ 'Busy' | translate }}" #tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100" -->
48
+ <div id="sidebaravatar-isbusy-icon-wpr" class="sidebar--isBusy-icon-wpr" *ngIf="IS_BUSY === true" style="cursor:pointer">
49
+ <span id="sidebaravatar-isbusy-icon" class="material-icons sidebar-is-busy-icon">
50
+ access_time
51
+ </span>
52
+ </div>
53
+ </div>
54
+
55
+ <div class="nav-container">
56
+ <!-- [ngClass]="{'is-desktop-menu' : IS_MOBILE_MENU === false, 'is-mobile-menu' : IS_MOBILE_MENU === true }" -->
57
+ <ul style="padding-bottom: 65px;" class="nav">
58
+
59
+ <!-- ------------------------------------------- -->
60
+ <!-- CHAT -->
61
+ <!-- ------------------------------------------- -->
62
+ <li class="item-active" style="cursor: unset;" matTooltipClass="custom-mat-tooltip" matTooltip="Chat"
63
+ #tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100">
64
+ <a class="customAncor">
65
+ <i class="material-icons sidebar-icons">chat</i>
66
+ </a>
67
+ </li>
68
+
69
+ <!-- ------------------------------------------- -->
70
+ <!-- HOME -->
71
+ <!-- ------------------------------------------- -->
72
+ <li (click)="goToHome()" matTooltip="Home" #tooltip="matTooltip" matTooltipPosition='right'
73
+ matTooltipHideDelay="100" matTooltipClass="custom-mat-tooltip">
74
+ <a class="customAncor">
75
+ <i class="material-icons sidebar-icons">
76
+ home
77
+ </i>
78
+ </a>
79
+ </li>
80
+
81
+ <!-- ------------------------------------------- -->
82
+ <!-- REQUESTS (VISITORS) -->
83
+ <!-- ------------------------------------------- -->
84
+ <li (click)="goToConversations()"
85
+ matTooltipClass="custom-mat-tooltip" matTooltip="{{ conversations_lbl }}" #tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100">
86
+ <a class="customAncor">
87
+ <i class="material-icons sidebar-icons">forum</i>
88
+ </a>
89
+ </li>
90
+
91
+ <!-- ------------------------------------------- -->
92
+ <!-- CONTACTS (LEADS) -->
93
+ <!-- ------------------------------------------- -->
94
+ <li (click)="goToContacts()"
95
+ matTooltipClass="custom-mat-tooltip" matTooltip="{{ contacts_lbl }}" #tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100">
96
+ <a class="customAncor">
97
+ <i class="material-icons sidebar-icons">contacts</i>
98
+ </a>
99
+ </li>
100
+
101
+ <!-- ------------------------------------------- -->
102
+ <!-- APPS -->
103
+ <!-- ------------------------------------------- -->
104
+ <ng-container *ngIf="isVisibleAPP && USER_ROLE !== 'agent'">
105
+ <li (click)="goToAppStore()"
106
+ matTooltipClass="custom-mat-tooltip" matTooltip="{{ apps_lbl }}" #tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100" >
107
+ <a class="customAncor">
108
+ <i class="material-icons sidebar-icons">apps</i>
109
+ </a>
110
+ </li>
111
+ </ng-container>
112
+
113
+ <!-- ------------------------------------------- -->
114
+ <!-- ANALYTICS -->
115
+ <!-- ------------------------------------------- -->
116
+ <ng-container *ngIf="isVisibleANA && USER_ROLE !== 'agent'">
117
+ <li (click)="goToAnalytics()"
118
+ matTooltipClass="custom-mat-tooltip" matTooltip="{{ analytics_lbl }}" #tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100">
119
+ <a class="customAncor">
120
+ <i class="material-icons sidebar-icons">trending_up</i>
121
+ </a>
122
+ </li>
123
+ </ng-container>
124
+
125
+ <!-- ------------------------------------------- -->
126
+ <!-- ACTIVITIES -->
127
+ <!-- ------------------------------------------- -->
128
+ <ng-container *ngIf="isVisibleACT">
129
+ <li *ngIf="USER_ROLE !== 'agent'" (click)="goToActivities()"
130
+ matTooltipClass="custom-mat-tooltip" matTooltip="{{ activities_lbl }}" #tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100">
131
+ <a class="customAncor">
132
+ <i class="material-icons sidebar-icons">assignment</i>
133
+ </a>
134
+ </li>
135
+ </ng-container>
136
+
137
+
138
+ <!-- ------------------------------------------- -->
139
+ <!-- REQUESTS HISTORY -->
140
+ <!-- ------------------------------------------- -->
141
+ <li (click)="goToHistory()"
142
+ matTooltipClass="custom-mat-tooltip" matTooltip="{{ history_lbl }}" #tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100">
143
+ <a class="customAncor">
144
+ <i class="material-icons sidebar-icons">history</i>
145
+ </a>
146
+ </li>
147
+
148
+ <!-- ------------------------------------------- -->
149
+ <!-- SETTINGS -->
150
+ <!-- ------------------------------------------- -->
151
+ <li *ngIf="USER_ROLE !== 'agent'" (click)="goToSettings_CannedResponses()"
152
+ matTooltipClass="custom-mat-tooltip" matTooltip="{{ settings_lbl }}" #tooltip="matTooltip" matTooltipPosition='right' matTooltipHideDelay="100">
153
+ <a class="customAncor">
154
+ <i class="material-icons sidebar-icons">settings</i>
155
+ </a>
156
+ </li>
157
+
158
+
159
+ <!-- [_prjct_profile_name]="_prjct_profile_name" [plan_subscription_is_active]="plan_subscription_is_active"
160
+ [plan_name]="plan_name"
161
+ [plan_type]="plan_type"
162
+ [isVisiblePAY]="isVisiblePAY"
163
+ [prjct_name]="prjct_name" -->
164
+ <!-- HAS_CLICKED_OPEN_USER_DETAIL {{ HAS_CLICKED_OPEN_USER_DETAIL }} -->
165
+ <!-- [HAS_CLICKED_OPEN_USER_DETAIL]='HAS_CLICKED_OPEN_USER_DETAIL' -->
166
+ <!-- tabindex="-1" style="z-index: 20001;" -->
167
+
168
+
169
+ <!-- <app-sidebar-user-details
170
+ (onCloseUserDetailsSidebar)='onCloseUserDetailsSidebar($event)'>
171
+ </app-sidebar-user-details> -->
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+
208
+ </ul>
209
+ </div>
210
+ </div>
@@ -0,0 +1,11 @@
1
+ ::ng-deep .custom-mat-tooltip {
2
+ background-color: #2d323e;
3
+ font-size: 12px;
4
+ }
5
+
6
+ .sidebar-is-busy-icon {
7
+ font-size: 14px;
8
+ color: #feb92c;
9
+ background-color: #2d323e;
10
+ border-radius: 50%;
11
+ }
@@ -0,0 +1,24 @@
1
+ import { async, ComponentFixture, TestBed } from '@angular/core/testing';
2
+ import { IonicModule } from '@ionic/angular';
3
+
4
+ import { SidebarComponent } from './sidebar.component';
5
+
6
+ describe('SidebarComponent', () => {
7
+ let component: SidebarComponent;
8
+ let fixture: ComponentFixture<SidebarComponent>;
9
+
10
+ beforeEach(async(() => {
11
+ TestBed.configureTestingModule({
12
+ declarations: [ SidebarComponent ],
13
+ imports: [IonicModule.forRoot()]
14
+ }).compileComponents();
15
+
16
+ fixture = TestBed.createComponent(SidebarComponent);
17
+ component = fixture.componentInstance;
18
+ fixture.detectChanges();
19
+ }));
20
+
21
+ it('should create', () => {
22
+ expect(component).toBeTruthy();
23
+ });
24
+ });