@chat21/chat21-ionic 3.0.107-rc.3 → 3.0.107-rc.7

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 (68) hide show
  1. package/CHANGELOG.md +14 -0
  2. package/package.json +1 -1
  3. package/src/app/app.component.ts +99 -29
  4. package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.scss +0 -1
  5. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +9 -9
  6. package/src/app/chatlib/conversation-detail/message/info-message/info-message.component.scss +5 -7
  7. package/src/app/chatlib/conversation-detail/message/options/options.component.scss +2 -2
  8. package/src/app/chatlib/conversation-detail/message/return-receipt/return-receipt.component.scss +1 -1
  9. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +1 -1
  10. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +22 -55
  11. package/src/app/components/canned-response/canned-response.component.scss +9 -2
  12. package/src/app/components/contacts-directory/contacts-directory.component.scss +4 -56
  13. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +5 -6
  14. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +16 -5
  15. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +5 -0
  16. package/src/app/components/conversation-info/advanced-info-accordion/advanced-info-accordion.component.html +11 -19
  17. package/src/app/components/conversation-info/advanced-info-accordion/advanced-info-accordion.component.scss +15 -19
  18. package/src/app/components/conversation-info/info-direct/info-direct.component.scss +6 -5
  19. package/src/app/components/conversation-info/info-group/info-group.component.html +2 -2
  20. package/src/app/components/conversation-info/info-group/info-group.component.scss +11 -2
  21. package/src/app/components/conversation-info/info-support-group/info-support-group.component.html +2 -1
  22. package/src/app/components/conversation-info/info-support-group/info-support-group.component.ts +46 -3
  23. package/src/app/components/conversations-list/header-conversations-list/header-conversations-list.component.html +2 -1
  24. package/src/app/components/conversations-list/header-conversations-list/header-conversations-list.component.scss +3 -2
  25. package/src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.scss +5 -3
  26. package/src/app/components/conversations-list/header-conversations-list-unassigned/header-conversations-list-unassigned.component.scss +5 -3
  27. package/src/app/components/navbar/navbar.component.html +10 -14
  28. package/src/app/components/navbar/navbar.component.scss +33 -17
  29. package/src/app/components/sidebar/sidebar.component.html +49 -67
  30. package/src/app/components/sidebar/sidebar.component.scss +44 -29
  31. package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +5 -5
  32. package/src/app/components/sidebar-user-details/sidebar-user-details.component.scss +47 -93
  33. package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +11 -13
  34. package/src/app/modals/create-canned-response/create-canned-response.page.html +2 -20
  35. package/src/app/modals/create-canned-response/create-canned-response.page.scss +44 -27
  36. package/src/app/modals/create-ticket/create-ticket.page.html +4 -4
  37. package/src/app/modals/create-ticket/create-ticket.page.scss +34 -1
  38. package/src/app/modals/json-message/json-message.page.scss +15 -1
  39. package/src/app/modals/loader-preview/loader-preview.page.html +1 -1
  40. package/src/app/modals/loader-preview/loader-preview.page.scss +19 -1
  41. package/src/app/modals/maps/maps.page.scss +18 -0
  42. package/src/app/modals/send-email/send-email.page.scss +30 -7
  43. package/src/app/modals/send-whatsapp-template/send-whatsapp-template.page.html +1 -1
  44. package/src/app/modals/send-whatsapp-template/send-whatsapp-template.page.scss +18 -0
  45. package/src/app/pages/contacts-directory/contacts-directory.page.html +9 -10
  46. package/src/app/pages/contacts-directory/contacts-directory.page.scss +5 -3
  47. package/src/app/pages/contacts-directory/contacts-directory.page.ts +0 -15
  48. package/src/app/pages/conversation-detail/conversation-detail.page.scss +5 -5
  49. package/src/app/pages/conversation-detail/conversation-detail.page.ts +10 -11
  50. package/src/app/pages/conversations-list/conversations-list.page.html +0 -1
  51. package/src/app/pages/conversations-list/conversations-list.page.scss +6 -17
  52. package/src/app/pages/conversations-list/conversations-list.page.ts +9 -18
  53. package/src/app/pages/profile-info/profile-info.page.html +4 -4
  54. package/src/app/pages/profile-info/profile-info.page.scss +43 -25
  55. package/src/app/pages/profile-info/profile-info.page.ts +2 -1
  56. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +5 -5
  57. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +2 -2
  58. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +48 -1
  59. package/src/assets/customStyle.css +39 -0
  60. package/src/assets/test.html +38 -4
  61. package/src/chat21-core/providers/firebase/firebase-conversations-handler.ts +1 -0
  62. package/src/chat21-core/providers/mqtt/mqtt-conversations-handler.ts +2 -1
  63. package/src/chat21-core/providers/native/native-upload-service.ts +1 -1
  64. package/src/chat21-core/providers/tiledesk/tiledesk-auth.service.ts +21 -9
  65. package/src/global.scss +52 -137
  66. package/src/index.html +1 -1
  67. package/src/theme/variables.scss +276 -149
  68. package/src/variables.scss +115 -21
@@ -5,6 +5,8 @@ import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service
5
5
  import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
6
6
  import { DomSanitizer } from '@angular/platform-browser'
7
7
  import { CustomTranslateService } from 'src/chat21-core/providers/custom-translate.service';
8
+ import { AppStorageService } from 'src/chat21-core/providers/abstract/app-storage.service';
9
+ import { EventsService } from 'src/app/services/events-service';
8
10
 
9
11
 
10
12
  @Component({
@@ -34,6 +36,8 @@ export class UnassignedConversationsPage implements OnInit {
34
36
  private navService: NavProxyService,
35
37
  private sanitizer: DomSanitizer,
36
38
  private translateService: CustomTranslateService,
39
+ private appStorageService: AppStorageService,
40
+ private events : EventsService
37
41
  ) { }
38
42
 
39
43
  ngOnInit() {
@@ -46,6 +50,7 @@ export class UnassignedConversationsPage implements OnInit {
46
50
  this.buildIFRAME();
47
51
  this.listenToPostMsg();
48
52
  this.hideHotjarFeedbackBtn();
53
+ this.events.subscribe('style', (data)=>this.loadStyle(data))
49
54
  }
50
55
 
51
56
  ngOnDestroy(){
@@ -89,7 +94,8 @@ export class UnassignedConversationsPage implements OnInit {
89
94
  if (iframeWin) {
90
95
  iframeWin.addEventListener("load", function () {
91
96
  self.logger.log("[UNASSIGNED-CONVS-PAGE] GET - Finish");
92
-
97
+ self.onLoad(iframeWin)
98
+
93
99
  const isIFrame = (input: HTMLElement | null): input is HTMLIFrameElement =>
94
100
  input !== null && input.tagName === 'IFRAME';
95
101
 
@@ -98,17 +104,58 @@ export class UnassignedConversationsPage implements OnInit {
98
104
  iframeWin.contentWindow.postMessage(msg, '*');
99
105
  }
100
106
 
107
+
101
108
 
102
109
  let spinnerElem = <HTMLElement>document.querySelector('.loader-spinner-wpr')
103
110
 
104
111
  self.logger.log('[APP-STORE-INSTALL] GET iframeDoc readyState spinnerElem', spinnerElem)
105
112
  spinnerElem.classList.add("hide-stretchspinner")
106
113
 
114
+
115
+
107
116
  });
108
117
  }
109
118
 
110
119
  }
111
120
 
121
+ onLoad(iframe){
122
+ let styleData = this.appStorageService.getItem('style')
123
+ console.log('[UNASSIGNED-CONVS-PAGE] styleeeeee', styleData)
124
+ if(styleData && styleData !== 'undefined'){
125
+ this.loadStyle(JSON.parse(styleData))
126
+ }
127
+ }
128
+ async loadStyle(data){
129
+ var iframeWin = <HTMLIFrameElement>document.getElementById("unassigned-convs-iframe")
130
+ if(!data.parameter){
131
+ let className = iframeWin.contentDocument.body.className.replace(new RegExp(/style-\S*/gm), '')
132
+ iframeWin.contentDocument.body.className = className
133
+ iframeWin.contentWindow.document.body.classList.remove('light')
134
+ iframeWin.contentWindow.document.body.classList.remove('dark')
135
+ iframeWin.contentWindow.document.body.classList.remove('custom')
136
+ let link = iframeWin.contentWindow.document.getElementById('themeCustom');
137
+ if(link){
138
+ link.remove();
139
+ }
140
+ return;
141
+ }
142
+
143
+ // Create link
144
+ let link = iframeWin.contentWindow.document.createElement('link');
145
+ link.id= 'themeCustom'
146
+ link.href = data.parameter;
147
+ link.rel = 'stylesheet';
148
+ link.type = 'text/css';
149
+ link.media='all';
150
+
151
+ console.log('linkkkk', link, iframeWin.contentWindow.document)
152
+ let head = iframeWin.contentWindow.document.getElementsByTagName('head')[0];
153
+ head.appendChild(link);
154
+ iframeWin.contentWindow.document.body.classList.add(data.type) //ADD class to body element as theme type ('light', 'dark', 'custom')
155
+ return;
156
+ }
157
+
158
+
112
159
  listenToPostMsg() {
113
160
  window.addEventListener("message", (event) => {
114
161
  // console.log("[UNASSIGNED-CONVS-PAGE] message event ", event);
@@ -0,0 +1,39 @@
1
+ body.custom{
2
+ background-color: red;
3
+ --list-bkg-color: red;
4
+ }
5
+
6
+ body.light{
7
+ background-color: green;
8
+ --list-bkg-color: green;
9
+ }
10
+
11
+ body.style-1{
12
+ background-color: blue;
13
+ --list-bkg-color: blue;
14
+ }
15
+
16
+ body.light .navbar{
17
+ background-color: red;
18
+ }
19
+
20
+ body.light ion-button .button-native {
21
+ background-color: red;
22
+ }
23
+
24
+ body.light ion-button {
25
+ background-color: red;
26
+ }
27
+
28
+ body.style-1 ion-button .button-native {
29
+ background-color: red;
30
+ }
31
+
32
+ /* body.dark :host(.button-native) {
33
+ border: 1px solid red;
34
+ } */
35
+
36
+
37
+ body.style-1 ion-col div.buttons-left {
38
+ background-color: blue;
39
+ }
@@ -10,14 +10,48 @@
10
10
  <body style="height: 100%;">
11
11
  <div id="titolo">CHAT IONIC TEST PAGE</div>
12
12
 
13
+ <div class="event-wrp" id="onThemeColor">
14
+ <span class="badge">EVENT</span>
15
+ <label>themeColor LIGHT</label>
16
+ <label class="switch">
17
+ <input type="checkbox" name="themeColor" onclick="onCLickThemeColor(this)">
18
+ <span class="slider round"></span>
19
+ </label>
20
+ </div>
21
+
22
+ <iframe id="myIFrame" frameBorder="0" width="100%" style="display: flex; height: 95vh" onload="onLoad()"
23
+ src="http://localhost:8080/#/conversation-detail?tiledesk_supportMode=false&jwt=JWT eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1ZmQzNGU0MjQ5NjEwZTAwMzQ5ODUwNzgiLCJlbWFpbCI6ImdhYnJpZWxlLnBhbmljb0Bmcm9udGllcmUyMS5pdCIsImZpcnN0bmFtZSI6IkdhYnJpZWxlMiIsImxhc3RuYW1lIjoiUGFuaWNvIC1wcmUiLCJlbWFpbHZlcmlmaWVkIjp0cnVlLCJpYXQiOjE2OTgzMzYyMTMsImF1ZCI6Imh0dHBzOi8vdGlsZWRlc2suY29tIiwiaXNzIjoiaHR0cHM6Ly90aWxlZGVzay5jb20iLCJzdWIiOiJ1c2VyIiwianRpIjoiNjAzZGY3NDQtZWY0OS00Mjg2LWJlMWQtYWM5OGYyYTNkMTJiIn0.bof5QPQP262yCQfpeSjqyoYPkSCttg5NQFkcV8d634xzeq7wJBdhtiO7IJY6hS81a1YyXrAsxlK7RiNS-UZdYiTXR81UXurQd1fnE9jtaggB82tyNL8vmiZEOs6xh4TqO3-kkBzRxQIp74bY53fk_mu5RmNbAjIgUWEufaNDiv8"></iframe>
24
+
13
25
  <script>
14
26
  window.addEventListener('message', event => {
15
27
  console.log('[CHAT-IONIC] test page event::', event)
16
- })
17
- </script>
28
+ });
29
+
30
+ function onLoad(){
31
+ // var cssLink = document.createElement("style");
32
+ // cssLink.src = "./assets/style.css";
33
+ // // cssLink.rel = "stylesheet";
34
+ // cssLink.type = "text/css";
35
+ // console.log('framessss', frames['myIFrame'])
36
+ // frames['myIFrame'].contentWindow.document.body.appendChild(cssLink);
37
+
38
+ // let msg= { action: "style", type: 'light', parameter: 'http://localhost:8080/assets/customStyle.css'}
39
+ // frames['myIFrame'].contentWindow.postMessage(msg, '*');
40
+ }
18
41
 
19
- <iframe id="myIFrame" frameBorder="0" width="100%" style="display: flex; height: 95vh"
20
- src="http://localhost:8080/#/conversation-detail?jwt=JWT eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJfaWQiOiI1ZmQzNGU0MjQ5NjEwZTAwMzQ5ODUwNzgiLCJlbWFpbCI6ImdhYnJpZWxlLnBhbmljb0Bmcm9udGllcmUyMS5pdCIsImZpcnN0bmFtZSI6IkdhYnJpZWxlMiIsImxhc3RuYW1lIjoiUGFuaWNvIC1wcmUiLCJlbWFpbHZlcmlmaWVkIjp0cnVlLCJpYXQiOjE2OTgzMzYyMTMsImF1ZCI6Imh0dHBzOi8vdGlsZWRlc2suY29tIiwiaXNzIjoiaHR0cHM6Ly90aWxlZGVzay5jb20iLCJzdWIiOiJ1c2VyIiwianRpIjoiNjAzZGY3NDQtZWY0OS00Mjg2LWJlMWQtYWM5OGYyYTNkMTJiIn0.bof5QPQP262yCQfpeSjqyoYPkSCttg5NQFkcV8d634xzeq7wJBdhtiO7IJY6hS81a1YyXrAsxlK7RiNS-UZdYiTXR81UXurQd1fnE9jtaggB82tyNL8vmiZEOs6xh4TqO3-kkBzRxQIp74bY53fk_mu5RmNbAjIgUWEufaNDiv8"></iframe>
42
+
43
+ function onCLickThemeColor(event){
44
+ console.log('onCLickThemeColor: status-->',event.checked);
45
+ if(event.checked){
46
+ let msg= { action: "style", type: 'style-1', parameter: 'http://localhost:8080/assets/customStyle.css'}
47
+ frames['myIFrame'].contentWindow.postMessage(msg, '*');
48
+ }else{
49
+ let msg= { action: "style", parameter: ''}
50
+ frames['myIFrame'].contentWindow.postMessage(msg, '*');
51
+ }
52
+ }
53
+
54
+ </script>
21
55
  </body>
22
56
 
23
57
  </html>
@@ -272,6 +272,7 @@ export class FirebaseConversationsHandler extends ConversationsHandlerService {
272
272
  archiveConversation(conversationId: string) {
273
273
  const that = this
274
274
  this.setClosingConversation(conversationId, true);
275
+ this.setConversationRead(conversationId)
275
276
  const index = searchIndexInArrayForUid(this.conversations, conversationId);
276
277
  // if (index > -1) {
277
278
  // this.conversations.splice(index, 1);
@@ -374,7 +374,8 @@ export class MQTTConversationsHandler extends ConversationsHandlerService {
374
374
  this.isConversationClosingMap.delete(conversationId);
375
375
  }
376
376
 
377
- archiveConversation(conversationId: string) {
377
+ archiveConversation(conversationId: string) {
378
+ this.setConversationRead(conversationId)
378
379
  this.chat21Service.chatClient.archiveConversation(conversationId);
379
380
  }
380
381
 
@@ -112,7 +112,7 @@ export class NativeUploadService extends UploadService {
112
112
 
113
113
  //USE IMAGE API
114
114
  const that = this;
115
- const url = this.URL_TILEDESK_IMAGES + '/users' + '?path=' + path
115
+ const url = this.URL_TILEDESK_IMAGES + '/users' + '?path=' + path.split('path=')[1]
116
116
  return new Promise((resolve, reject) => {
117
117
  that.http.delete(url, requestOptions).subscribe(data => {
118
118
  // const downloadURL = this.URL_TILEDESK_IMAGES + '?path=' + data['filename'];
@@ -5,6 +5,7 @@ import { UserModel } from 'src/chat21-core/models/user';
5
5
  import { avatarPlaceholder, getColorBck } from 'src/chat21-core/utils/utils-user';
6
6
  import { AppStorageService } from '../abstract/app-storage.service';
7
7
  import { LoggerInstance } from '../logger/loggerInstance';
8
+ import { BehaviorSubject } from 'rxjs';
8
9
  // import { BehaviorSubject } from 'rxjs';
9
10
  // import { EventsService } from 'src/app/services/events-service';
10
11
 
@@ -26,6 +27,8 @@ export class TiledeskAuthService {
26
27
  private currentUser: UserModel;
27
28
  private logger: LoggerService = LoggerInstance.getInstance()
28
29
 
30
+ private BS_IsONLINE: BehaviorSubject<boolean> = new BehaviorSubject<boolean>(false)
31
+
29
32
  constructor(
30
33
  public http: HttpClient,
31
34
  public appStorage: AppStorageService,
@@ -63,8 +66,8 @@ export class TiledeskAuthService {
63
66
  if (data['success'] && data['token']) {
64
67
  that.tiledeskToken = data['token'];
65
68
  that.createCompleteUser(data['user']);
66
- // that.appStorage.setItem('tiledeskToken', that.tiledeskToken);
67
69
  this.checkAndSetInStorageTiledeskToken(that.tiledeskToken)
70
+ this.BS_IsONLINE.next(true)
68
71
  resolve(that.tiledeskToken)
69
72
  }
70
73
  }, (error) => {
@@ -93,8 +96,8 @@ export class TiledeskAuthService {
93
96
  if (data['success'] && data['token']) {
94
97
  that.tiledeskToken = data['token'];
95
98
  that.createCompleteUser(data['user']);
96
- // that.appStorage.setItem('tiledeskToken', that.tiledeskToken);
97
99
  this.checkAndSetInStorageTiledeskToken(that.tiledeskToken)
100
+ this.BS_IsONLINE.next(true)
98
101
  resolve(that.tiledeskToken)
99
102
  }
100
103
  }, (error) => {
@@ -119,9 +122,9 @@ export class TiledeskAuthService {
119
122
  if (data['success'] && data['token']) {
120
123
  that.tiledeskToken = data['token'];
121
124
  that.createCompleteUser(data['user']);
122
- // that.appStorage.setItem('tiledeskToken', that.tiledeskToken); // salvarlo esternamente nell'app.component
123
125
  this.checkAndSetInStorageTiledeskToken(that.tiledeskToken)
124
- resolve(this.currentUser)
126
+ this.BS_IsONLINE.next(true)
127
+ resolve(data)
125
128
  }
126
129
  }, (error) => {
127
130
  reject(error)
@@ -133,6 +136,8 @@ export class TiledeskAuthService {
133
136
  this.logger.log('[TILEDESK-AUTH] - LOGOUT')
134
137
  this.appStorage.removeItem('tiledeskToken')
135
138
  this.appStorage.removeItem('currentUser')
139
+ localStorage.removeItem('tiledesk_token')
140
+ this.BS_IsONLINE.next(false)
136
141
  this.setCurrentUser(null);
137
142
  // this.isOnline$.next(false)
138
143
  const stored_project = localStorage.getItem('last_project')
@@ -180,21 +185,28 @@ export class TiledeskAuthService {
180
185
 
181
186
  private checkAndSetInStorageTiledeskToken(tiledeskToken) {
182
187
  this.logger.log('[TILEDESK-AUTH] - checkAndSetInStorageTiledeskToken tiledeskToken from request', tiledeskToken)
183
- const storedTiledeskToken = this.appStorage.getItem('tiledeskToken');
188
+ const storedTiledeskToken = localStorage.getItem('tiledesk_token');
184
189
  this.logger.log('[TILEDESK-AUTH] - checkAndSetInStorageTiledeskToken storedTiledeskToken ', storedTiledeskToken)
185
190
  if (!storedTiledeskToken) {
186
191
  this.logger.log('[TILEDESK-AUTH] - checkAndSetInStorageTiledeskToken TOKEN DOES NOT EXIST - RUN SET ')
187
- this.appStorage.setItem('tiledeskToken', tiledeskToken);
192
+ localStorage.setItem('tiledesk_token', tiledeskToken)
188
193
  } else if (storedTiledeskToken && storedTiledeskToken !== tiledeskToken) {
189
194
  this.logger.log('[TILEDESK-AUTH] - checkAndSetInStorageTiledeskToken STORED-TOKEN EXIST BUT IS != FROM TOKEN - RUN SET ')
190
- this.appStorage.setItem('tiledeskToken', tiledeskToken);
195
+ localStorage.setItem('tiledesk_token', tiledeskToken)
191
196
  } else if (storedTiledeskToken && storedTiledeskToken === tiledeskToken) {
192
197
  this.logger.log('[TILEDESK-AUTH] - checkAndSetInStorageTiledeskToken STORED-TOKEN EXIST AND IS = TO TOKEN ')
193
198
  }
194
-
195
- localStorage.setItem('tiledesk_token', tiledeskToken)
199
+ this.appStorage.setItem('tiledeskToken', tiledeskToken)
196
200
  }
197
201
 
202
+ isLoggedIn(): Promise<boolean>{
203
+ return new Promise<boolean>((resolve, reject)=> {
204
+ this.BS_IsONLINE.subscribe((status)=> {
205
+ if(status)
206
+ resolve(true)
207
+ })
208
+ })
209
+ }
198
210
 
199
211
  getCurrentUser(): UserModel {
200
212
  return this.currentUser;
package/src/global.scss CHANGED
@@ -98,16 +98,7 @@ app-conversations-list {
98
98
  text-overflow: ellipsis !important;
99
99
  }
100
100
 
101
- .truncate-conv-msg {
102
- width: 100% !important;
103
- white-space: nowrap !important;
104
- overflow: hidden !important;
105
- text-overflow: ellipsis !important;
106
- color: #999999;
107
- font-size: 13px;
108
- }
109
-
110
- // START GESTIONE SIDEBAR ESTERNA CON IFRAME //
101
+ // START GESTIONE SIDEBAR ESTERNA CON IFRAME: start //
111
102
  #tld-sidebar {
112
103
  position: absolute;
113
104
  top: 0;
@@ -155,6 +146,9 @@ app-conversations-list {
155
146
  height: 100%;
156
147
  width: 100%;
157
148
  }
149
+ // START GESTIONE SIDEBAR ESTERNA CON IFRAME: end //
150
+
151
+
158
152
  app-root {
159
153
  position: absolute;
160
154
  top: 0;
@@ -177,7 +171,7 @@ app-root {
177
171
  app-message-text-area {
178
172
  width: 100%;
179
173
  z-index: 99999; // nk
180
- background: #fff; // nk
174
+ background: var(--conversation-detail-background); // nk
181
175
  }
182
176
 
183
177
  app-conversation-info {
@@ -300,15 +294,16 @@ select:-webkit-autofill:focus {
300
294
  z-index: 1;
301
295
  }
302
296
 
303
- // Sidebar
297
+ // SIDEBAR: start
304
298
  .sidebar {
299
+ background-color: var(--sidebar-background-color);
300
+ color: var(--sidebar-color);
301
+
305
302
  transition-property: top, bottom, width;
306
303
  transition-duration: 0.2s, 0.2s, 0.35s;
307
304
  transition-timing-function: linear, linear, ease;
308
305
  -webkit-overflow-scrolling: touch;
309
- }
310
306
 
311
- .sidebar {
312
307
  position: fixed;
313
308
  top: 0;
314
309
  bottom: 0;
@@ -328,12 +323,10 @@ select:-webkit-autofill:focus {
328
323
  overflow: auto;
329
324
  width: 60px;
330
325
  z-index: 4;
331
- }
332
- .sidebar-wrapper {
326
+
333
327
  transition-property: top, bottom, width;
334
328
  transition-duration: 0.2s, 0.2s, 0.35s;
335
329
  transition-timing-function: linear, linear, ease;
336
- background-color: #2d323e !important;
337
330
  }
338
331
 
339
332
  .small-sidebar__logo {
@@ -344,12 +337,6 @@ select:-webkit-autofill:focus {
344
337
  margin-top: 5px;
345
338
  }
346
339
 
347
- .small-sidebar-tiledesk-nav-user {
348
- height: 35px;
349
- min-height: 35px;
350
- max-height: 35px;
351
- }
352
-
353
340
  .user {
354
341
  position: relative;
355
342
  // display: flex;
@@ -360,21 +347,6 @@ select:-webkit-autofill:focus {
360
347
  // min-height: 130px;
361
348
  // max-height: 130px;
362
349
  }
363
- .tiledesk-nav-user {
364
- background-color: #1e2129 !important;
365
- color: #fff !important;
366
- }
367
-
368
- .small-sidebar-userfullname {
369
- display: none;
370
- }
371
-
372
-
373
-
374
- .tiledesk-nav-avatar {
375
- background-color: #2d323e !important;
376
- color: #fff !important;
377
- }
378
350
 
379
351
  .sidebar-avatar-container {
380
352
  text-align: center;
@@ -442,27 +414,19 @@ select:-webkit-autofill:focus {
442
414
  }
443
415
 
444
416
  @media (max-width: 991px) {
445
- .nav-container {
417
+ .sidebar-wrapper {
446
418
  position: relative;
447
419
  }
448
420
  }
449
421
 
450
- .sidebar .nav {
451
- margin-top: 0px;
452
- }
453
-
454
- .nav-container {
455
- height: 100%;
456
- }
457
-
458
422
  .nav {
459
423
  padding-left: 0;
424
+ margin-top: 0px;
460
425
  margin-bottom: 0;
461
426
  list-style: none;
462
427
  display: flex;
428
+ align-items: center;
463
429
  flex-direction: column;
464
- height: 100%;
465
-
466
430
  }
467
431
 
468
432
  .nav:before {
@@ -471,35 +435,14 @@ select:-webkit-autofill:focus {
471
435
  }
472
436
 
473
437
  .nav > li {
474
- position: relative;
475
- display: block;
438
+ display: flex;
439
+ align-items: center;
476
440
  height: 40px;
441
+ width: 60px;
477
442
  cursor: pointer;
478
443
  margin-top: 5px;
479
444
  margin-bottom: 5px;
480
- }
481
-
482
- .nav > li:hover > a > i {
483
- // background-color: #eee;
484
- color: #a9afbb
485
- }
486
-
487
- .sidebar .nav li > a {
488
- // margin: 10px 15px;
489
- // border-radius: 3px;
490
- transition: all 300ms linear;
491
- color: #3c4858;
492
- }
493
-
494
- .sidebar .nav li.item-active > a > i {
495
- color: #ffffff;
496
- }
497
-
498
- .item-active {
499
- height: 40px;
500
- // background-color: #3ea9f5;
501
- color: #fff !important;
502
- pointer-events: none;
445
+ justify-content: center;
503
446
  }
504
447
 
505
448
  .is-desktop-menu {
@@ -509,16 +452,6 @@ select:-webkit-autofill:focus {
509
452
  margin-top: 0px;
510
453
  }
511
454
 
512
- .logo {
513
- background-color: #2d323e !important;
514
- padding-bottom: 5px;
515
- min-height: 60px;
516
- width: 60px; // for SMALL SIDEBAR
517
-
518
- a.customAncor{
519
- margin: 0px;
520
- }
521
- }
522
455
 
523
456
  .sidebar .logo:after {
524
457
  content: "";
@@ -528,24 +461,14 @@ select:-webkit-autofill:focus {
528
461
  height: 1px;
529
462
  width: 80%;
530
463
  background-color: rgba(180, 180, 180, 0.3);
531
-
532
-
533
464
  }
534
465
 
535
466
  .logo-img-wpr {
536
467
  text-transform: none;
537
-
538
468
  min-height: 40px;
539
469
  padding-left: 0px !important;
540
470
  }
541
471
 
542
- /* *** SMALL SIDEBAR STYLE *** */
543
- .small-sidebar-tiledesk-nav-user {
544
- height: 40px;
545
- min-height: 40px;
546
- max-height: 40px;
547
- }
548
-
549
472
  .small-sidebar-email {
550
473
  display: none;
551
474
  }
@@ -608,10 +531,10 @@ select:-webkit-autofill:focus {
608
531
  // select teammate status in user detail drawer
609
532
  .teammate-status-in-drawer {
610
533
  &.sidebar{
611
- --background-color: #2d323e;
534
+ --background-color: var(--sidebar-user-detail-select-background);
612
535
  }
613
536
  &.profile-info{
614
- --background-color: #1e2129;
537
+ --background-color: var(--sidebar-user-profile-select-background);
615
538
  }
616
539
  &.ng-select {
617
540
 
@@ -651,21 +574,21 @@ select:-webkit-autofill:focus {
651
574
  .ng-dropdown-panel-items {
652
575
  .ng-option {
653
576
  background-color: var(--background-color);
654
- color: #fff;
577
+ color: var(--sidebar-user-detail-select-color);
655
578
 
656
579
  &.ng-option-marked {
657
- background-color: rgba(30, 33, 41, 0.3);
658
- color: #fff;
580
+ background-color: var(--sidebar-user-detail-select-hover-background);
581
+ color: var(--sidebar-user-detail-select-color);
659
582
  }
660
583
 
661
584
  &.ng-option-selected {
662
585
  background-color: var(--background-color);
663
- color: #fff;
586
+ color: var(--sidebar-user-detail-select-color);
664
587
  }
665
588
 
666
589
  &.ng-option-marked.ng-option-selected{
667
- background-color: rgba(30, 33, 41, 0.3);
668
- color: #fff;
590
+ background-color: var(--sidebar-user-detail-select-hover-background);
591
+ color: var(--sidebar-user-detail-select-color);
669
592
  }
670
593
  }
671
594
 
@@ -725,34 +648,21 @@ ul.dropdown-menu > li > a {
725
648
  /* END - USED WITH SIDWBAR WITH BLACK BACKGROUND */
726
649
 
727
650
  /* CUSTOM MARGIN BETWEEN THE MENU ITEM*/
728
- .nav li > a.customAncor {
729
- /* margin: 5px 15px !important; */
730
-
731
- margin-top: 5px !important;
732
- margin-right: 15px !important;
733
- margin-bottom: 5px !important;
734
- margin-left: 0px !important;
735
- width: 60px;
736
- border-radius: 0px;
737
- }
651
+ // .nav li > a.customAncor {
652
+ // /* margin: 5px 15px !important; */
653
+ // margin-top: 5px !important;
654
+ // margin-right: 15px !important;
655
+ // margin-bottom: 5px !important;
656
+ // margin-left: 0px !important;
657
+ // width: 60px;
658
+ // border-radius: 0px;
659
+ // }
738
660
 
739
661
  .sidebar-icons {
740
662
  font-size: 20px !important;
741
663
  // color: #a9afbb !important;
742
664
  }
743
665
 
744
- .sidebar .nav i {
745
- // font-size: 20px;
746
- // float: left;
747
- // margin-right: 15px;
748
- // line-height: 30px;
749
- width: 60px;
750
- text-align: center;
751
- // color: #a9afbb;
752
- color: #647491;
753
- padding-top: 10px;
754
- }
755
-
756
666
  // ng-select custom class in Create ticket modal
757
667
  .ng-select.create-ticket-custom-select {
758
668
  margin-top: 5px !important;
@@ -760,6 +670,7 @@ ul.dropdown-menu > li > a {
760
670
 
761
671
 
762
672
 
673
+
763
674
  //MODALS
764
675
  //is desktop computers, laptops, and smartphones with a stylus
765
676
  @media (hover: hover) {
@@ -863,40 +774,44 @@ ul.dropdown-menu > li > a {
863
774
  font-variant: normal;
864
775
  font-weight: 300;
865
776
 
866
- }
867
- .ng-tooltip:after {
777
+ }
778
+ .ng-tooltip:after {
868
779
  content: "";
869
780
  position: absolute;
870
781
  border-style: solid;
871
- }
872
- .ng-tooltip-top:after {
782
+ }
783
+ .ng-tooltip-top:after {
873
784
  top: 100%;
874
785
  left: 50%;
875
786
  margin-left: -5px;
876
787
  border-width: 5px;
877
788
  border-color: rgb(255, 255, 255) transparent transparent transparent;
878
- }
879
- .ng-tooltip-bottom:after {
789
+ }
790
+ .ng-tooltip-bottom:after {
880
791
  bottom: 100%;
881
792
  left: 50%;
882
793
  margin-left: -5px;
883
794
  border-width: 5px;
884
795
  border-color: transparent transparent rgb(255, 255, 255) transparent;
885
- }
886
- .ng-tooltip-left:after {
796
+ }
797
+ .ng-tooltip-left:after {
887
798
  top: 50%;
888
799
  left: 100%;
889
800
  margin-top: -5px;
890
801
  border-width: 5px;
891
802
  border-color: transparent transparent transparent rgb(255, 255, 255);
892
- }
893
- .ng-tooltip-right:after {
803
+ }
804
+ .ng-tooltip-right:after {
894
805
  top: 50%;
895
806
  right: 100%;
896
807
  margin-top: -5px;
897
808
  border-width: 5px;
898
809
  border-color: transparent rgb(255, 255, 255) transparent transparent;
899
- }
900
- .ng-tooltip-show {
810
+ }
811
+ .ng-tooltip-show {
901
812
  opacity: 1;
902
- }
813
+ }
814
+
815
+
816
+
817
+
package/src/index.html CHANGED
@@ -10,7 +10,7 @@
10
10
  <!-- <base href="./"/> quando rilascio in prod sostituisco questo base con quello sopra -->
11
11
 
12
12
  <!-- <meta name="color-scheme" content="light dark" /> disable dark mode: Note in theme/variable.scss is also commented all the code that referts to dark-mode -->
13
- <meta name="color-scheme" content="light" />
13
+ <meta name="color-scheme" content="light"/>
14
14
  <meta name="viewport"
15
15
  content="width=device-width, height=device-height ,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no" />
16
16
  <meta name="format-detection" content="telephone=no" />