@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.
- package/CHANGELOG.md +14 -0
- package/package.json +1 -1
- package/src/app/app.component.ts +99 -29
- package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.scss +0 -1
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +9 -9
- package/src/app/chatlib/conversation-detail/message/info-message/info-message.component.scss +5 -7
- package/src/app/chatlib/conversation-detail/message/options/options.component.scss +2 -2
- package/src/app/chatlib/conversation-detail/message/return-receipt/return-receipt.component.scss +1 -1
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +1 -1
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +22 -55
- package/src/app/components/canned-response/canned-response.component.scss +9 -2
- package/src/app/components/contacts-directory/contacts-directory.component.scss +4 -56
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +5 -6
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +16 -5
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +5 -0
- package/src/app/components/conversation-info/advanced-info-accordion/advanced-info-accordion.component.html +11 -19
- package/src/app/components/conversation-info/advanced-info-accordion/advanced-info-accordion.component.scss +15 -19
- package/src/app/components/conversation-info/info-direct/info-direct.component.scss +6 -5
- package/src/app/components/conversation-info/info-group/info-group.component.html +2 -2
- package/src/app/components/conversation-info/info-group/info-group.component.scss +11 -2
- package/src/app/components/conversation-info/info-support-group/info-support-group.component.html +2 -1
- package/src/app/components/conversation-info/info-support-group/info-support-group.component.ts +46 -3
- package/src/app/components/conversations-list/header-conversations-list/header-conversations-list.component.html +2 -1
- package/src/app/components/conversations-list/header-conversations-list/header-conversations-list.component.scss +3 -2
- package/src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.scss +5 -3
- package/src/app/components/conversations-list/header-conversations-list-unassigned/header-conversations-list-unassigned.component.scss +5 -3
- package/src/app/components/navbar/navbar.component.html +10 -14
- package/src/app/components/navbar/navbar.component.scss +33 -17
- package/src/app/components/sidebar/sidebar.component.html +49 -67
- package/src/app/components/sidebar/sidebar.component.scss +44 -29
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +5 -5
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.scss +47 -93
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +11 -13
- package/src/app/modals/create-canned-response/create-canned-response.page.html +2 -20
- package/src/app/modals/create-canned-response/create-canned-response.page.scss +44 -27
- package/src/app/modals/create-ticket/create-ticket.page.html +4 -4
- package/src/app/modals/create-ticket/create-ticket.page.scss +34 -1
- package/src/app/modals/json-message/json-message.page.scss +15 -1
- package/src/app/modals/loader-preview/loader-preview.page.html +1 -1
- package/src/app/modals/loader-preview/loader-preview.page.scss +19 -1
- package/src/app/modals/maps/maps.page.scss +18 -0
- package/src/app/modals/send-email/send-email.page.scss +30 -7
- package/src/app/modals/send-whatsapp-template/send-whatsapp-template.page.html +1 -1
- package/src/app/modals/send-whatsapp-template/send-whatsapp-template.page.scss +18 -0
- package/src/app/pages/contacts-directory/contacts-directory.page.html +9 -10
- package/src/app/pages/contacts-directory/contacts-directory.page.scss +5 -3
- package/src/app/pages/contacts-directory/contacts-directory.page.ts +0 -15
- package/src/app/pages/conversation-detail/conversation-detail.page.scss +5 -5
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +10 -11
- package/src/app/pages/conversations-list/conversations-list.page.html +0 -1
- package/src/app/pages/conversations-list/conversations-list.page.scss +6 -17
- package/src/app/pages/conversations-list/conversations-list.page.ts +9 -18
- package/src/app/pages/profile-info/profile-info.page.html +4 -4
- package/src/app/pages/profile-info/profile-info.page.scss +43 -25
- package/src/app/pages/profile-info/profile-info.page.ts +2 -1
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +5 -5
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +2 -2
- package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +48 -1
- package/src/assets/customStyle.css +39 -0
- package/src/assets/test.html +38 -4
- package/src/chat21-core/providers/firebase/firebase-conversations-handler.ts +1 -0
- package/src/chat21-core/providers/mqtt/mqtt-conversations-handler.ts +2 -1
- package/src/chat21-core/providers/native/native-upload-service.ts +1 -1
- package/src/chat21-core/providers/tiledesk/tiledesk-auth.service.ts +21 -9
- package/src/global.scss +52 -137
- package/src/index.html +1 -1
- package/src/theme/variables.scss +276 -149
- 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
|
+
}
|
package/src/assets/test.html
CHANGED
|
@@ -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
|
-
|
|
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
|
-
|
|
20
|
-
|
|
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
|
-
|
|
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 =
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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:
|
|
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
|
-
//
|
|
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
|
-
.
|
|
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
|
-
|
|
475
|
-
|
|
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:
|
|
534
|
+
--background-color: var(--sidebar-user-detail-select-background);
|
|
612
535
|
}
|
|
613
536
|
&.profile-info{
|
|
614
|
-
--background-color:
|
|
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:
|
|
577
|
+
color: var(--sidebar-user-detail-select-color);
|
|
655
578
|
|
|
656
579
|
&.ng-option-marked {
|
|
657
|
-
background-color:
|
|
658
|
-
color:
|
|
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:
|
|
586
|
+
color: var(--sidebar-user-detail-select-color);
|
|
664
587
|
}
|
|
665
588
|
|
|
666
589
|
&.ng-option-marked.ng-option-selected{
|
|
667
|
-
background-color:
|
|
668
|
-
color:
|
|
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
|
-
|
|
730
|
-
|
|
731
|
-
|
|
732
|
-
|
|
733
|
-
|
|
734
|
-
|
|
735
|
-
|
|
736
|
-
|
|
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
|
-
|
|
777
|
+
}
|
|
778
|
+
.ng-tooltip:after {
|
|
868
779
|
content: "";
|
|
869
780
|
position: absolute;
|
|
870
781
|
border-style: solid;
|
|
871
|
-
|
|
872
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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" />
|