@chat21/chat21-web-widget 5.1.0-rc18 → 5.1.0-rc20
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 +15 -0
- package/package.json +1 -1
- package/src/app/app.component.scss +2 -88
- package/src/app/app.component.ts +3 -0
- package/src/app/component/conversation-detail/conversation/conversation.component.html +2 -2
- package/src/app/component/conversation-detail/conversation/conversation.component.scss +1 -7
- package/src/app/component/conversation-detail/conversation/conversation.component.ts +21 -18
- package/src/app/component/conversation-detail/conversation-audio-recorder/conversation-audio-recorder.component.html +0 -1
- package/src/app/component/conversation-detail/conversation-content/conversation-content.component.html +0 -4
- package/src/app/component/conversation-detail/conversation-content/conversation-content.component.scss +46 -32
- package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.scss +2 -3
- package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.ts +0 -5
- package/src/app/component/conversation-detail/conversation-header/conversation-header.component.html +21 -10
- package/src/app/component/conversation-detail/conversation-header/conversation-header.component.scss +0 -1
- package/src/app/component/conversation-detail/conversation-header/conversation-header.component.ts +3 -1
- package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.scss +0 -3
- package/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.scss +1 -3
- package/src/app/component/form/form-builder/form-builder.component.scss +0 -1
- package/src/app/component/form/inputs/form-text/form-text.component.scss +0 -1
- package/src/app/component/form/inputs/form-textarea/form-textarea.component.scss +0 -1
- package/src/app/component/form/prechat-form/prechat-form.component.scss +0 -2
- package/src/app/component/home/home.component.scss +1 -8
- package/src/app/component/home-conversations/home-conversations.component.scss +0 -3
- package/src/app/component/last-message/last-message.component.html +0 -2
- package/src/app/component/last-message/last-message.component.scss +0 -2
- package/src/app/component/list-all-conversations/list-all-conversations.component.scss +0 -3
- package/src/app/component/list-conversations/list-conversations.component.scss +0 -2
- package/src/app/component/menu-options/menu-options.component.scss +0 -2
- package/src/app/component/message/audio/audio.component.html +1 -1
- package/src/app/component/message/audio/audio.component.scss +1 -0
- package/src/app/component/message/audio/audio.component.ts +0 -1
- package/src/app/component/message/bubble-message/bubble-message.component.html +1 -4
- package/src/app/component/message/bubble-message/bubble-message.component.scss +0 -1
- package/src/app/component/message/bubble-message/bubble-message.component.ts +0 -2
- package/src/app/component/message/buttons/action-button/action-button.component.scss +2 -3
- package/src/app/component/message/buttons/link-button/link-button.component.scss +2 -3
- package/src/app/component/message/buttons/text-button/text-button.component.scss +2 -3
- package/src/app/component/message/carousel/carousel.component.scss +2 -3
- package/src/app/component/message/frame/frame.component.scss +0 -2
- package/src/app/component/message/html/html.component.scss +1 -3
- package/src/app/component/message/image/image.component.scss +0 -2
- package/src/app/component/message/info-message/info-message.component.scss +0 -2
- package/src/app/component/message/like-unlike/like-unlike.component.scss +0 -2
- package/src/app/component/message/text/text.component.html +1 -2
- package/src/app/component/message/text/text.component.scss +2 -4
- package/src/app/component/message/text/text.component.ts +0 -2
- package/src/app/component/selection-department/selection-department.component.scss +0 -4
- package/src/app/component/star-rating-widget/star-rating-widget.component.scss +0 -7
- package/src/app/providers/global-settings.service.ts +45 -10
- package/src/app/sass/_variables.scss +9 -0
- package/src/app/utils/constants.ts +2 -1
- package/src/app/utils/globals.ts +3 -1
- package/src/assets/i18n/en.json +3 -2
- package/src/assets/i18n/es.json +3 -2
- package/src/assets/i18n/fr.json +3 -2
- package/src/assets/i18n/it.json +3 -2
- package/src/chat21-core/utils/user-typing/user-typing.component.scss +0 -1
- package/src/iframe-style.css +27 -10
package/CHANGELOG.md
CHANGED
|
@@ -6,6 +6,21 @@
|
|
|
6
6
|
### **Copyrigth**:
|
|
7
7
|
*Tiledesk SRL*
|
|
8
8
|
|
|
9
|
+
# 5.1.0-rc20
|
|
10
|
+
- **added**: fontFamilySource settings variable
|
|
11
|
+
- **added**: --font-family-bubble-message as variable to manage custom font
|
|
12
|
+
- **removed**: fontSize and fontFamily as input property in bubble-message component
|
|
13
|
+
|
|
14
|
+
# 5.1.0-rc19
|
|
15
|
+
- **added**: ability to maximize, minimize and fullscreen the widget window
|
|
16
|
+
- **added**: variable for font-family attribute css value
|
|
17
|
+
|
|
18
|
+
# 5.0.102
|
|
19
|
+
- **bug-fixed**: cannot add message if array is empty
|
|
20
|
+
|
|
21
|
+
# 5.0.101
|
|
22
|
+
- **bug-fixed**: removed private note msgs
|
|
23
|
+
|
|
9
24
|
# 5.1.0-rc18
|
|
10
25
|
- **bug-fixed**: allowedOnSpecificUrl
|
|
11
26
|
|
package/package.json
CHANGED
|
@@ -43,7 +43,6 @@ input, select:focus, textarea {
|
|
|
43
43
|
|
|
44
44
|
:host {
|
|
45
45
|
--button-in-msg-background-color: --black;
|
|
46
|
-
--button-in-msg-font-size: 15px;
|
|
47
46
|
}
|
|
48
47
|
|
|
49
48
|
|
|
@@ -134,39 +133,6 @@ textarea::placeholder {
|
|
|
134
133
|
font-weight: 300;
|
|
135
134
|
}
|
|
136
135
|
|
|
137
|
-
.msg_container{
|
|
138
|
-
.button-in-msg {
|
|
139
|
-
color: white!important;
|
|
140
|
-
background: var(--button-in-msg-background-color) !important;
|
|
141
|
-
|
|
142
|
-
position: relative;
|
|
143
|
-
max-width: 300px;
|
|
144
|
-
min-width: inherit;
|
|
145
|
-
padding: 8px 16px;
|
|
146
|
-
cursor: auto;
|
|
147
|
-
border: 1px solid rgb(255, 255, 255);
|
|
148
|
-
border-radius: 20px!important;
|
|
149
|
-
margin: 3px;
|
|
150
|
-
overflow: hidden;
|
|
151
|
-
font-family: 'Muli', sans-serif;
|
|
152
|
-
font-size: 15px;
|
|
153
|
-
-o-text-overflow: ellipsis;
|
|
154
|
-
text-overflow: ellipsis;
|
|
155
|
-
white-space: normal;
|
|
156
|
-
letter-spacing: -0.24px;
|
|
157
|
-
-webkit-font-smoothing: antialiased;
|
|
158
|
-
.message_innerhtml{
|
|
159
|
-
// padding: 0px 14px!important;
|
|
160
|
-
}
|
|
161
|
-
p{
|
|
162
|
-
font-size: var(--button-in-msg-font-size)!important;
|
|
163
|
-
font-family: 'Muli', sans-serif!important;
|
|
164
|
-
font-weight: normal!important;
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
}
|
|
169
|
-
|
|
170
136
|
|
|
171
137
|
// TOOLTIP: start
|
|
172
138
|
.tooltip-container {
|
|
@@ -307,7 +273,7 @@ chat-root {
|
|
|
307
273
|
position: absolute;
|
|
308
274
|
width: 100%;
|
|
309
275
|
height: 100%;
|
|
310
|
-
font-family:
|
|
276
|
+
font-family: var(--font-family-bubble-message);
|
|
311
277
|
font-size: 10px;
|
|
312
278
|
text-align: left;
|
|
313
279
|
background-color: transparent;
|
|
@@ -507,59 +473,7 @@ chat-root {
|
|
|
507
473
|
}
|
|
508
474
|
}
|
|
509
475
|
}
|
|
510
|
-
|
|
511
|
-
/*http://tobiasahlin.com/spinkit/*/
|
|
512
|
-
#chat21-spinner {
|
|
513
|
-
display: none;
|
|
514
|
-
width: 70px;
|
|
515
|
-
min-height: 20px;
|
|
516
|
-
margin: 20px auto 0;
|
|
517
|
-
text-align: center;
|
|
518
|
-
}
|
|
519
|
-
#chat21-spinner.active {
|
|
520
|
-
display: block;
|
|
521
|
-
}
|
|
522
|
-
#chat21-spinner > div {
|
|
523
|
-
width: 12px;
|
|
524
|
-
height: 12px;
|
|
525
|
-
background-color: var(--blue);
|
|
526
|
-
border-radius: 100%;
|
|
527
|
-
display: inline-block;
|
|
528
|
-
-webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
|
|
529
|
-
animation: sk-bouncedelay 1.4s infinite ease-in-out both;
|
|
530
|
-
}
|
|
531
|
-
#chat21-spinner .chat21-bounce1 {
|
|
532
|
-
-webkit-animation-delay: -0.32s;
|
|
533
|
-
animation-delay: -0.32s;
|
|
534
|
-
}
|
|
535
|
-
#chat21-spinner .chat21-bounce2 {
|
|
536
|
-
-webkit-animation-delay: -0.16s;
|
|
537
|
-
animation-delay: -0.16s;
|
|
538
|
-
}
|
|
539
|
-
#chat21-spinner span {
|
|
540
|
-
display: block;
|
|
541
|
-
margin: 0.5em 0 0 0;
|
|
542
|
-
color: var(--black);
|
|
543
|
-
/* text-transform: uppercase; */
|
|
544
|
-
font-family: 'Roboto', sans-serif;
|
|
545
|
-
-webkit-animation: pulse 2000ms linear infinite;
|
|
546
|
-
-moz-animation: pulse 2000ms linear infinite;
|
|
547
|
-
animation: pulse 2000ms linear infinite;
|
|
548
|
-
text-align: center;
|
|
549
|
-
}
|
|
550
|
-
@-webkit-keyframes sk-bouncedelay {
|
|
551
|
-
0%, 80%, 100% { -webkit-transform: scale(0) }
|
|
552
|
-
40% { -webkit-transform: scale(1.0) }
|
|
553
|
-
}
|
|
554
|
-
@keyframes sk-bouncedelay {
|
|
555
|
-
0%, 80%, 100% {
|
|
556
|
-
-webkit-transform: scale(0);
|
|
557
|
-
transform: scale(0);
|
|
558
|
-
} 40% {
|
|
559
|
-
-webkit-transform: scale(1.0);
|
|
560
|
-
transform: scale(1.0);
|
|
561
|
-
}
|
|
562
|
-
}
|
|
476
|
+
|
|
563
477
|
// ========= END: GENERIC CSS ========= //
|
|
564
478
|
|
|
565
479
|
/* CSS BOX CONTAINER */
|
package/src/app/app.component.ts
CHANGED
|
@@ -2118,6 +2118,9 @@ export class AppComponent implements OnInit, AfterViewInit, OnDestroy {
|
|
|
2118
2118
|
|
|
2119
2119
|
this.el.nativeElement.style.setProperty('--button-in-msg-background-color', this.g.bubbleSentBackground)
|
|
2120
2120
|
this.el.nativeElement.style.setProperty('--button-in-msg-font-size', this.g.buttonFontSize)
|
|
2121
|
+
this.el.nativeElement.style.setProperty('--font-size-bubble-message', this.g.fontSize)
|
|
2122
|
+
this.el.nativeElement.style.setProperty('--font-family-bubble-message', this.g.fontFamily)
|
|
2123
|
+
|
|
2121
2124
|
}
|
|
2122
2125
|
|
|
2123
2126
|
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
[hideHeaderConversationOptionsMenu]="g?.hideHeaderConversationOptionsMenu"
|
|
19
19
|
[hideSignOutOptionMenu]="(!g?.singleConversation || !g?.showLogoutOption)"
|
|
20
20
|
[hideChatDetailOptionMenu]="(!g?.isDevMode)"
|
|
21
|
+
[fullscreenMode]="g?.fullscreenMode"
|
|
21
22
|
[stylesMap]="stylesMap"
|
|
22
23
|
[translationMap]="translationMapHeader"
|
|
23
24
|
[widgetTitle]="g?.project?.widgetTitle"
|
|
@@ -135,8 +136,7 @@
|
|
|
135
136
|
(onAfterSendMessage)="onAfterSendMessageFN($event)"
|
|
136
137
|
(onChangeTextArea)="onChangeTextArea($event)"
|
|
137
138
|
(onAttachmentFileButtonClicked)="onAttachmentFileButtonClicked($event)"
|
|
138
|
-
(onNewConversationButtonClicked)="onNewConversationButtonClickedFN($event)"
|
|
139
|
-
(onBackButton)="onBackButton($event)">
|
|
139
|
+
(onNewConversationButtonClicked)="onNewConversationButtonClickedFN($event)">
|
|
140
140
|
</chat-conversation-footer>
|
|
141
141
|
|
|
142
142
|
</div>
|
|
@@ -1,8 +1,6 @@
|
|
|
1
1
|
// $f21ico-schedule: image-url('f21ico-schedule.svg', false, false);
|
|
2
2
|
// $f21ico-done: image-url('../assets/images/f21ico-done.svg', false, false);
|
|
3
3
|
// $f21ico-done_all: image-url('../assets/images/f21ico-done_all.svg', false, false);
|
|
4
|
-
// @import 'src/app/sass/variables';
|
|
5
|
-
// @import '../../../sass/normalize.css';
|
|
6
4
|
|
|
7
5
|
:host {
|
|
8
6
|
--themeColor: var(--bck-msg-sent);
|
|
@@ -60,7 +58,7 @@
|
|
|
60
58
|
font-weight: 500;
|
|
61
59
|
line-height: 22px;
|
|
62
60
|
|
|
63
|
-
font-family:
|
|
61
|
+
font-family: var(--font-family);
|
|
64
62
|
letter-spacing: -0.24px;
|
|
65
63
|
-webkit-font-smoothing: antialiased;
|
|
66
64
|
|
|
@@ -97,10 +95,6 @@
|
|
|
97
95
|
background: white;
|
|
98
96
|
min-height: 40px;
|
|
99
97
|
|
|
100
|
-
&.maximize-width{
|
|
101
|
-
padding: 8px 0px;
|
|
102
|
-
}
|
|
103
|
-
|
|
104
98
|
&.hideFooterReply{
|
|
105
99
|
padding: 0px;
|
|
106
100
|
}
|
|
@@ -221,6 +221,7 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
|
|
|
221
221
|
'CLOSE',
|
|
222
222
|
'MAXIMIZE',
|
|
223
223
|
'MINIMIZE',
|
|
224
|
+
'FULLSCREEN',
|
|
224
225
|
'CLOSE_CHAT',
|
|
225
226
|
'RESTART',
|
|
226
227
|
'LOGOUT',
|
|
@@ -1066,12 +1067,24 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
|
|
|
1066
1067
|
// this.hideTextAreaContent = true
|
|
1067
1068
|
}
|
|
1068
1069
|
/** CALLED BY: conv-header component */
|
|
1069
|
-
|
|
1070
|
+
onWidgetSizeChange(mode){
|
|
1070
1071
|
var tiledeskDiv = this.g.windowContext.window.document.getElementById('tiledeskdiv')
|
|
1071
1072
|
if(mode==='max'){
|
|
1072
|
-
tiledeskDiv.
|
|
1073
|
+
tiledeskDiv.classList.add('increaseSize')
|
|
1074
|
+
tiledeskDiv.classList.remove('decreaseSize')
|
|
1075
|
+
tiledeskDiv.classList.remove('fullscreen')
|
|
1076
|
+
this.g.fullscreenMode = false
|
|
1073
1077
|
}else if(mode==='min'){
|
|
1074
|
-
tiledeskDiv.
|
|
1078
|
+
tiledeskDiv.classList.add('decreaseSize')
|
|
1079
|
+
tiledeskDiv.classList.remove('increaseSize')
|
|
1080
|
+
tiledeskDiv.classList.remove('fullscreen')
|
|
1081
|
+
this.g.fullscreenMode = false
|
|
1082
|
+
}else if(mode=== 'fullscreen'){
|
|
1083
|
+
tiledeskDiv.classList.add('fullscreen')
|
|
1084
|
+
tiledeskDiv.classList.remove('increaseSize')
|
|
1085
|
+
tiledeskDiv.classList.remove('decreaseSize')
|
|
1086
|
+
this.g.fullscreenMode = true
|
|
1087
|
+
|
|
1075
1088
|
}
|
|
1076
1089
|
this.isMenuShow = false;
|
|
1077
1090
|
}
|
|
@@ -1108,10 +1121,13 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
|
|
|
1108
1121
|
this.onRestartChat()
|
|
1109
1122
|
break;
|
|
1110
1123
|
case HEADER_MENU_OPTION.MAXIMIZE:
|
|
1111
|
-
this.
|
|
1124
|
+
this.onWidgetSizeChange('max')
|
|
1112
1125
|
break;
|
|
1113
1126
|
case HEADER_MENU_OPTION.MINIMIZE:
|
|
1114
|
-
this.
|
|
1127
|
+
this.onWidgetSizeChange('min')
|
|
1128
|
+
break;
|
|
1129
|
+
case HEADER_MENU_OPTION.FULLSCREEN:
|
|
1130
|
+
this.onWidgetSizeChange('fullscreen')
|
|
1115
1131
|
break;
|
|
1116
1132
|
}
|
|
1117
1133
|
}
|
|
@@ -1239,19 +1255,6 @@ export class ConversationComponent implements OnInit, AfterViewInit, OnChanges {
|
|
|
1239
1255
|
this.logger.debug('[CONV-COMP] floating onNewConversationButtonClicked')
|
|
1240
1256
|
this.onNewConversationButtonClicked.emit()
|
|
1241
1257
|
}
|
|
1242
|
-
/** CALLED BY: conv-footer floating-button component */
|
|
1243
|
-
onBackButton(event: boolean){
|
|
1244
|
-
this.hideTextAreaContent = event;
|
|
1245
|
-
try{
|
|
1246
|
-
const tiledeskDiv = document.getElementById('chat21-footer')
|
|
1247
|
-
tiledeskDiv.classList.remove('maximize-width')
|
|
1248
|
-
// tiledeskDiv.style.width = '376px'
|
|
1249
|
-
// tiledeskDiv.style.maxHeight = '620px'
|
|
1250
|
-
}catch(e){
|
|
1251
|
-
this.logger.error('[CONV-COMP] onBackButton > Error :' + e);
|
|
1252
|
-
}
|
|
1253
|
-
|
|
1254
|
-
}
|
|
1255
1258
|
// =========== END: event emitter function ====== //
|
|
1256
1259
|
|
|
1257
1260
|
|
|
@@ -34,8 +34,6 @@
|
|
|
34
34
|
[ngClass]="{'button-in-msg' : message?.metadata && message?.metadata?.button}"
|
|
35
35
|
[message]="message"
|
|
36
36
|
[fontColor]="stylesMap.get('bubbleSentTextColor')"
|
|
37
|
-
[fontSize]="stylesMap.get('fontSize')"
|
|
38
|
-
[fontFamily]="stylesMap.get('fontFamily')"
|
|
39
37
|
[stylesMap]="stylesMap"
|
|
40
38
|
(onBeforeMessageRender)="onBeforeMessageRenderFN($event)"
|
|
41
39
|
(onAfterMessageRender)="onAfterMessageRenderFN($event)"
|
|
@@ -70,8 +68,6 @@
|
|
|
70
68
|
[isSameSender]="isSameSender(message?.sender, i)"
|
|
71
69
|
[message]="message"
|
|
72
70
|
[fontColor]="stylesMap.get('bubbleReceivedTextColor')"
|
|
73
|
-
[fontSize]="stylesMap.get('fontSize')"
|
|
74
|
-
[fontFamily]="stylesMap.get('fontFamily')"
|
|
75
71
|
[stylesMap]="stylesMap"
|
|
76
72
|
(onBeforeMessageRender)="onBeforeMessageRenderFN($event)"
|
|
77
73
|
(onAfterMessageRender)="onAfterMessageRenderFN($event)"
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @import 'src/app/sass/variables';
|
|
2
|
-
|
|
3
1
|
|
|
4
2
|
#scroll-me {
|
|
5
3
|
scroll-behavior: smooth;
|
|
@@ -36,26 +34,6 @@
|
|
|
36
34
|
// box-shadow: inset 0 10px 10px -10px rgba(0,0,0,0.4);
|
|
37
35
|
position: fixed;
|
|
38
36
|
.c21-body-container {
|
|
39
|
-
.c21-body-header {
|
|
40
|
-
.chat21-header-modal-select {
|
|
41
|
-
font-family: 'Google Sans', sans-serif !important;
|
|
42
|
-
padding: 0px;
|
|
43
|
-
background-color: #b9b9b921;
|
|
44
|
-
margin: 8px;
|
|
45
|
-
line-height: 1.2em;
|
|
46
|
-
color: #616161;
|
|
47
|
-
font-size: 15px;
|
|
48
|
-
text-align: center;
|
|
49
|
-
word-wrap: break-word;
|
|
50
|
-
border-radius: 8px;
|
|
51
|
-
}
|
|
52
|
-
.chat21-header-modal-select-more-of-one-dept {
|
|
53
|
-
position: relative;
|
|
54
|
-
height: auto;
|
|
55
|
-
padding: 10px;
|
|
56
|
-
margin: 30px 0 0 0;
|
|
57
|
-
}
|
|
58
|
-
} // end .chat21-sheet-header
|
|
59
37
|
|
|
60
38
|
.c21-body-content {
|
|
61
39
|
/* no conflict
|
|
@@ -284,21 +262,57 @@
|
|
|
284
262
|
}// end c21-body-container
|
|
285
263
|
}// end c21-body
|
|
286
264
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
|
|
290
|
-
|
|
265
|
+
/* LOADING */
|
|
266
|
+
/*http://tobiasahlin.com/spinkit/*/
|
|
267
|
+
#chat21-spinner {
|
|
268
|
+
display: none;
|
|
269
|
+
width: 70px;
|
|
270
|
+
min-height: 20px;
|
|
271
|
+
margin: 20px auto 0;
|
|
272
|
+
text-align: center;
|
|
273
|
+
}
|
|
274
|
+
#chat21-spinner.active {
|
|
275
|
+
display: block;
|
|
276
|
+
}
|
|
277
|
+
#chat21-spinner > div {
|
|
278
|
+
width: 12px;
|
|
279
|
+
height: 12px;
|
|
280
|
+
background-color: var(--blue);
|
|
281
|
+
border-radius: 100%;
|
|
282
|
+
display: inline-block;
|
|
283
|
+
-webkit-animation: sk-bouncedelay 1.4s infinite ease-in-out both;
|
|
284
|
+
animation: sk-bouncedelay 1.4s infinite ease-in-out both;
|
|
285
|
+
}
|
|
286
|
+
#chat21-spinner .chat21-bounce1 {
|
|
287
|
+
-webkit-animation-delay: -0.32s;
|
|
288
|
+
animation-delay: -0.32s;
|
|
289
|
+
}
|
|
290
|
+
#chat21-spinner .chat21-bounce2 {
|
|
291
|
+
-webkit-animation-delay: -0.16s;
|
|
292
|
+
animation-delay: -0.16s;
|
|
293
|
+
}
|
|
294
|
+
#chat21-spinner span {
|
|
295
|
+
display: block;
|
|
296
|
+
margin: 0.5em 0 0 0;
|
|
297
|
+
color: var(--black);
|
|
298
|
+
/* text-transform: uppercase; */
|
|
299
|
+
-webkit-animation: pulse 2000ms linear infinite;
|
|
300
|
+
-moz-animation: pulse 2000ms linear infinite;
|
|
301
|
+
animation: pulse 2000ms linear infinite;
|
|
302
|
+
text-align: center;
|
|
303
|
+
}
|
|
291
304
|
@-webkit-keyframes sk-bouncedelay {
|
|
292
305
|
0%, 80%, 100% { -webkit-transform: scale(0) }
|
|
293
306
|
40% { -webkit-transform: scale(1.0) }
|
|
294
307
|
}
|
|
295
|
-
|
|
296
308
|
@keyframes sk-bouncedelay {
|
|
297
309
|
0%, 80%, 100% {
|
|
298
|
-
|
|
299
|
-
|
|
310
|
+
-webkit-transform: scale(0);
|
|
311
|
+
transform: scale(0);
|
|
300
312
|
} 40% {
|
|
301
|
-
|
|
302
|
-
|
|
313
|
+
-webkit-transform: scale(1.0);
|
|
314
|
+
transform: scale(1.0);
|
|
303
315
|
}
|
|
304
|
-
}
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
// ============= END CSS c21-body ================= //
|
package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.scss
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
// @import 'src/app/sass/variables';
|
|
2
1
|
|
|
3
2
|
.textarea-container{
|
|
4
3
|
// padding: 8px 34px;
|
|
@@ -323,7 +322,7 @@ textarea:active{
|
|
|
323
322
|
font-weight: 500;
|
|
324
323
|
line-height: 22px;
|
|
325
324
|
|
|
326
|
-
font-family:
|
|
325
|
+
font-family: var(--font-family);
|
|
327
326
|
letter-spacing: 0.24px;
|
|
328
327
|
-webkit-font-smoothing: antialiased;
|
|
329
328
|
padding: 4px 12px;
|
|
@@ -373,7 +372,7 @@ textarea:active{
|
|
|
373
372
|
font-size: 1.2em;
|
|
374
373
|
font-weight: 500;
|
|
375
374
|
line-height: 22px;
|
|
376
|
-
font-family:
|
|
375
|
+
font-family: var(--font-family);
|
|
377
376
|
letter-spacing: 0.24px;
|
|
378
377
|
-webkit-font-smoothing: antialiased;
|
|
379
378
|
padding: 4px 12px;
|
package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.ts
CHANGED
|
@@ -50,7 +50,6 @@ export class ConversationFooterComponent implements OnInit, OnChanges {
|
|
|
50
50
|
@Output() onChangeTextArea = new EventEmitter<any>();
|
|
51
51
|
@Output() onAttachmentFileButtonClicked = new EventEmitter<any>();
|
|
52
52
|
@Output() onNewConversationButtonClicked = new EventEmitter();
|
|
53
|
-
@Output() onBackButton = new EventEmitter()
|
|
54
53
|
|
|
55
54
|
@ViewChild('chat21_file') public chat21_file: ElementRef;
|
|
56
55
|
// @ViewChild('emojii_container', {read: ViewContainerRef}) selector;
|
|
@@ -655,10 +654,6 @@ export class ConversationFooterComponent implements OnInit, OnChanges {
|
|
|
655
654
|
// this.restoreTextArea()
|
|
656
655
|
// }
|
|
657
656
|
|
|
658
|
-
onBackButtonFN(){
|
|
659
|
-
this.onBackButton.emit(false)
|
|
660
|
-
}
|
|
661
|
-
|
|
662
657
|
setFocusOnId(id) {
|
|
663
658
|
if(!this.isMobile){
|
|
664
659
|
setTimeout(function () {
|
package/src/app/component/conversation-detail/conversation-header/conversation-header.component.html
CHANGED
|
@@ -123,23 +123,34 @@
|
|
|
123
123
|
</div> -->
|
|
124
124
|
|
|
125
125
|
<!-- ICON MAXIMIZE -->
|
|
126
|
-
|
|
127
|
-
<svg
|
|
128
|
-
width="17" height="17" viewBox="0 0
|
|
129
|
-
<path d="
|
|
126
|
+
<div class="c21-header-button c21-right" *ngIf="heightStatus==='min' && !fullscreenMode" (click)="onChangeSize('max')">
|
|
127
|
+
<svg role="img" aria-labelledby="altIconTitle" fill="none" xmlns="http://www.w3.org/2000/svg" transform="matrix(-1,0,0,1,0,0)"
|
|
128
|
+
width="17" height="17" viewBox="0 0 17 17">
|
|
129
|
+
<path d="M6.49001 8.30999L3.69 11.11V9.40999C3.69 8.93999 3.31 8.55999 2.84 8.55999C2.37 8.55999 1.99001 8.93999 1.99001 9.40999V14.01H6.59C7.06 14.01 7.44 13.63 7.44 13.16C7.44 12.69 7.06 12.31 6.59 12.31H4.89L7.69 9.50999L6.49001 8.30999ZM9.41 1.98999C8.94 1.98999 8.56001 2.36999 8.56001 2.83999C8.56001 3.30999 8.94 3.68999 9.41 3.68999H11.11L8.31001 6.48999L9.51 7.68999L12.31 4.88999V6.58999C12.31 7.05999 12.69 7.43999 13.16 7.43999C13.63 7.43999 14.01 7.05999 14.01 6.58999V1.98999H9.41Z" fill="currentColor"></path>
|
|
130
130
|
<title id="altIconTitle">{{ translationMap?.get('MAXIMIZE') }}</title>
|
|
131
131
|
</svg>
|
|
132
132
|
<span class="label-menu-item">{{ translationMap?.get('MAXIMIZE') }}</span>
|
|
133
|
-
</div>
|
|
133
|
+
</div>
|
|
134
134
|
<!-- ICON MINIMIZE -->
|
|
135
|
-
|
|
136
|
-
<svg role="img" aria-labelledby="altIconTitle" class="icon-menu"
|
|
137
|
-
width="17" height="17" viewBox="0 0
|
|
138
|
-
<path d="
|
|
135
|
+
<div class="c21-header-button c21-right" *ngIf="heightStatus==='max' || heightStatus==='full' || fullscreenMode" (click)="onChangeSize('min')">
|
|
136
|
+
<svg role="img" aria-labelledby="altIconTitle" class="icon-menu" fill="none" xmlns="http://www.w3.org/2000/svg" transform="matrix(-1,0,0,1,0,0)"
|
|
137
|
+
width="17" height="17" viewBox="0 0 17 17">
|
|
138
|
+
<path d="M13.59 5.31h-1.7l3.3-3.3-1.2-1.2-3.3 3.3v-1.7a.85.85 0 1 0-1.7 0v4.6h4.6a.85.85 0 1 0 0-1.7M1.57 9.84c0 .47.38.85.85.85h1.7l-3.3 3.3 1.2 1.2 3.3-3.3v1.7a.85.85 0 1 0 1.7 0v-4.6h-4.6a.85.85 0 0 0-.85.85" fill="currentColor"></path>
|
|
139
139
|
<title id="altIconTitle">{{ translationMap?.get('MINIMIZE') }}</title>
|
|
140
140
|
</svg>
|
|
141
141
|
<span class="label-menu-item">{{ translationMap?.get('MINIMIZE') }}</span>
|
|
142
|
-
</div>
|
|
142
|
+
</div>
|
|
143
|
+
|
|
144
|
+
<!-- FULLSCREEN -->
|
|
145
|
+
<div class="c21-header-button c21-right" *ngIf="heightStatus!=='full' && !fullscreenMode" (click)="onChangeSize('full')">
|
|
146
|
+
<svg role="img" aria-labelledby="altIconTitle" fill="none" xmlns="http://www.w3.org/2000/svg" transform="matrix(-1,0,0,1,0,0)"
|
|
147
|
+
width="17" height="17" viewBox="0 0 17 17">
|
|
148
|
+
<path fill="currentColor" d="M6.5,8.3l-2.8,2.8v-1.7c0-.5-.4-.9-.9-.9s-.8.4-.8.9v4.6h4.6c.5,0,.8-.4.8-.9s-.4-.8-.8-.8h-1.7l2.8-2.8-1.2-1.2ZM9.4,2c-.5,0-.8.4-.8.8s.4.9.8.9h1.7l-2.8,2.8,1.2,1.2,2.8-2.8v1.7c0,.5.4.8.8.8s.9-.4.9-.8V2h-4.6Z"/>
|
|
149
|
+
<path fill="currentColor" d="M8.3,9.5l2.8,2.8h-1.7c-.5,0-.9.4-.9.9s.4.8.9.8h4.6v-4.6c0-.5-.4-.8-.9-.8s-.8.4-.8.8v1.7l-2.8-2.8-1.2,1.2ZM2,6.5c0,.5.4.8.8.8s.9-.4.9-.8v-1.7l2.8,2.8,1.2-1.2-2.8-2.8h1.7c.5,0,.8-.4.8-.8s-.4-.9-.8-.9H2v4.6Z"/>
|
|
150
|
+
<title id="altIconTitle">{{ translationMap?.get('FULLSCREEN') }}</title>
|
|
151
|
+
</svg>
|
|
152
|
+
<span class="label-menu-item">{{ translationMap?.get('FULLSCREEN') }}</span>
|
|
153
|
+
</div>
|
|
143
154
|
|
|
144
155
|
<!-- ICON LOGOUT -->
|
|
145
156
|
<div class="c21-header-button c21-right" *ngIf="!hideSignOutOptionMenu" (click)="signOut()">
|
package/src/app/component/conversation-detail/conversation-header/conversation-header.component.ts
CHANGED
|
@@ -22,6 +22,7 @@ export class ConversationHeaderComponent implements OnInit, OnChanges {
|
|
|
22
22
|
@Input() nameUserTypingNow: string;
|
|
23
23
|
@Input() typingLocation: string;
|
|
24
24
|
@Input() isTrascriptDownloadEnabled: boolean;
|
|
25
|
+
@Input() fullscreenMode: boolean;
|
|
25
26
|
@Input() hideCloseConversationOptionMenu: boolean;
|
|
26
27
|
@Input() hideHeaderCloseButton: boolean;
|
|
27
28
|
@Input() hideHeaderBackButton: boolean;
|
|
@@ -105,10 +106,11 @@ export class ConversationHeaderComponent implements OnInit, OnChanges {
|
|
|
105
106
|
/**
|
|
106
107
|
* @param status : string 'max' || 'min'
|
|
107
108
|
*/
|
|
108
|
-
|
|
109
|
+
onChangeSize(status){
|
|
109
110
|
this.heightStatus = status
|
|
110
111
|
if(status === 'min') this.onMenuOptionClick.emit(HEADER_MENU_OPTION.MINIMIZE)
|
|
111
112
|
if(status === 'max') this.onMenuOptionClick.emit(HEADER_MENU_OPTION.MAXIMIZE)
|
|
113
|
+
if(status === 'full') this.onMenuOptionClick.emit(HEADER_MENU_OPTION.FULLSCREEN)
|
|
112
114
|
this.onMenuOptionShow.emit(false)
|
|
113
115
|
}
|
|
114
116
|
toggleSound() {
|
|
@@ -3,8 +3,6 @@
|
|
|
3
3
|
* EYE-CATCHER CARD & EYE-CATCHER CARD CLOSE BTN
|
|
4
4
|
* *********************************************
|
|
5
5
|
*/
|
|
6
|
-
// @import 'src/app/sass/variables';
|
|
7
|
-
|
|
8
6
|
|
|
9
7
|
|
|
10
8
|
|
|
@@ -182,7 +180,7 @@
|
|
|
182
180
|
width: 100%;
|
|
183
181
|
height: auto;
|
|
184
182
|
vertical-align: middle;
|
|
185
|
-
font-family:
|
|
183
|
+
font-family: var(--font-family-callout);
|
|
186
184
|
font-weight: normal;
|
|
187
185
|
word-wrap: break-word;
|
|
188
186
|
margin: 0px;
|
|
@@ -1,8 +1,3 @@
|
|
|
1
|
-
// @import 'src/app/sass/variables';
|
|
2
|
-
// @import '../../../sass/normalize.css';
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
1
|
#chat21-home-component {
|
|
7
2
|
position: absolute;
|
|
8
3
|
width: 100%;
|
|
@@ -89,7 +84,6 @@
|
|
|
89
84
|
}
|
|
90
85
|
|
|
91
86
|
.c21-text {
|
|
92
|
-
font-family: 'Google Sans';
|
|
93
87
|
.c21-text-welcome {
|
|
94
88
|
overflow: hidden;
|
|
95
89
|
line-height: 1.2em;
|
|
@@ -130,7 +124,6 @@
|
|
|
130
124
|
}
|
|
131
125
|
}
|
|
132
126
|
.c21-text {
|
|
133
|
-
font-family: 'Roboto';
|
|
134
127
|
margin: 0 0 0 15px;
|
|
135
128
|
|
|
136
129
|
.c21-text-welcome {
|
|
@@ -308,7 +301,7 @@
|
|
|
308
301
|
font-weight: 500;
|
|
309
302
|
line-height: 22px;
|
|
310
303
|
|
|
311
|
-
font-family:
|
|
304
|
+
font-family: var(--font-family);
|
|
312
305
|
letter-spacing: 0.24px;
|
|
313
306
|
-webkit-font-smoothing: antialiased;
|
|
314
307
|
|
|
@@ -36,8 +36,6 @@
|
|
|
36
36
|
[message]="message"
|
|
37
37
|
[isSameSender]="isSameSender(message?.sender, i)"
|
|
38
38
|
[fontColor]="stylesMap.get('bubbleReceivedTextColor')"
|
|
39
|
-
[fontSize]="stylesMap.get('fontSize')"
|
|
40
|
-
[fontFamily]="stylesMap.get('fontFamily')"
|
|
41
39
|
[stylesMap]="stylesMap"
|
|
42
40
|
(onElementRendered)="onElementRenderedFN($event)">
|
|
43
41
|
</chat-bubble-message>
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
</svg>
|
|
18
18
|
<!-- <i class="material-icons">pause</i> -->
|
|
19
19
|
</button>
|
|
20
|
-
<div class="duration" [style.color]="color"
|
|
20
|
+
<div class="duration" [style.color]="color">
|
|
21
21
|
<span *ngIf="!isPlaying">{{ audioDuration ? formatTime(audioDuration) : '00:00' }}</span>
|
|
22
22
|
<span *ngIf="isPlaying">{{ formatTime(currentTime) }}</span>
|
|
23
23
|
</div>
|
|
@@ -17,7 +17,6 @@ export class AudioComponent implements AfterViewInit {
|
|
|
17
17
|
@Input() audioBlob: Blob | null = null;
|
|
18
18
|
@Input() metadata: any | null = null;
|
|
19
19
|
@Input() color: string;
|
|
20
|
-
@Input() fontSize: string;
|
|
21
20
|
@Input() stylesMap: Map<string, string>;
|
|
22
21
|
|
|
23
22
|
audioUrl: SafeUrl | null = null;
|
|
@@ -25,7 +25,7 @@
|
|
|
25
25
|
|
|
26
26
|
<div *ngIf="messageType(MESSAGE_TYPE_OTHERS, message) && !isSameSender"
|
|
27
27
|
[style.color]="fullnameColor"
|
|
28
|
-
[ngStyle]="{'margin': (isImage(message) || isFrame(message))? '
|
|
28
|
+
[ngStyle]="{'margin': (isImage(message) || isFrame(message))? '12px 16px 8px 16px': '12px 16px 0px 16px'}" class="message_sender_fullname">
|
|
29
29
|
{{message?.sender_fullname}}
|
|
30
30
|
</div>
|
|
31
31
|
<!-- message type:: image -->
|
|
@@ -61,7 +61,6 @@
|
|
|
61
61
|
<chat-audio *ngIf="isAudio(message)"
|
|
62
62
|
[metadata]="message.metadata"
|
|
63
63
|
[color]="fontColor"
|
|
64
|
-
[fontSize]="fontSize"
|
|
65
64
|
[stylesMap]="stylesMap">
|
|
66
65
|
</chat-audio>
|
|
67
66
|
|
|
@@ -82,8 +81,6 @@
|
|
|
82
81
|
<chat-text *ngIf="message?.type !=='html'"
|
|
83
82
|
[text]="message?.text"
|
|
84
83
|
[color]="fontColor"
|
|
85
|
-
[fontSize]="fontSize"
|
|
86
|
-
[fontFamily]="fontFamily"
|
|
87
84
|
(onBeforeMessageRender)="onBeforeMessageRenderFN($event)"
|
|
88
85
|
(onAfterMessageRender)="onAfterMessageRenderFN($event)">
|
|
89
86
|
</chat-text>
|
|
@@ -18,8 +18,6 @@ export class BubbleMessageComponent implements OnInit {
|
|
|
18
18
|
@Input() message: MessageModel;
|
|
19
19
|
@Input() isSameSender: boolean;
|
|
20
20
|
@Input() fontColor: string;
|
|
21
|
-
@Input() fontSize: string;
|
|
22
|
-
@Input() fontFamily: string;
|
|
23
21
|
@Input() stylesMap: Map<string, string>;
|
|
24
22
|
@Output() onBeforeMessageRender = new EventEmitter();
|
|
25
23
|
@Output() onAfterMessageRender = new EventEmitter();
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
@import 'src/app/sass/variables';
|
|
2
|
-
|
|
3
1
|
:host {
|
|
4
2
|
--backgroundColor: #{var(--blue)};
|
|
5
3
|
--textColor: #{var(--bck-msg-sent)};
|
|
@@ -7,6 +5,7 @@
|
|
|
7
5
|
--hoverTextColor: #{var(--blue)};
|
|
8
6
|
--buttonFontSize: #{var(--button-in-msg-font-size)};
|
|
9
7
|
--max-width: #{var(--button-in-msg-max-width)};
|
|
8
|
+
--fontFamily: #{var(--font-family)};
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
.button-in-msg {
|
|
@@ -20,7 +19,7 @@
|
|
|
20
19
|
margin: 3px;
|
|
21
20
|
background: var(--backgroundColor);
|
|
22
21
|
overflow: hidden;
|
|
23
|
-
font-family:
|
|
22
|
+
font-family: var(--fontFamily);
|
|
24
23
|
font-size: var(--buttonFontSize);
|
|
25
24
|
-o-text-overflow: ellipsis;
|
|
26
25
|
text-overflow: ellipsis;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @import 'src/app/sass/variables';
|
|
2
|
-
|
|
3
1
|
:host {
|
|
4
2
|
--backgroundColor: #{var(--blue)};
|
|
5
3
|
--textColor: #{var(--bck-msg-sent)};
|
|
@@ -7,6 +5,7 @@
|
|
|
7
5
|
--hoverTextColor: #{var(--blue)};
|
|
8
6
|
--buttonFontSize: #{var(--button-in-msg-font-size)};
|
|
9
7
|
--max-width: #{var(--button-in-msg-max-width)};
|
|
8
|
+
--font-family: #{var(--font-family)};
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
.button-in-msg {
|
|
@@ -20,7 +19,7 @@
|
|
|
20
19
|
margin: 3px;
|
|
21
20
|
background: var(--backgroundColor);
|
|
22
21
|
overflow: hidden;
|
|
23
|
-
font-family:
|
|
22
|
+
font-family: var(--font-family);
|
|
24
23
|
font-size: var(--buttonFontSize);
|
|
25
24
|
-o-text-overflow: ellipsis;
|
|
26
25
|
text-overflow: ellipsis;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @import 'src/app/sass/variables';
|
|
2
|
-
|
|
3
1
|
:host {
|
|
4
2
|
--backgroundColor: #{var(--blue)};
|
|
5
3
|
--textColor: #{var(--bck-msg-sent)};
|
|
@@ -7,6 +5,7 @@
|
|
|
7
5
|
--hoverTextColor: #{var(--blue)};
|
|
8
6
|
--buttonFontSize: #{var(--button-in-msg-font-size)};
|
|
9
7
|
--max-width: #{var(--button-in-msg-max-width)};
|
|
8
|
+
--font-family: #{var(--font-family)};
|
|
10
9
|
}
|
|
11
10
|
|
|
12
11
|
|
|
@@ -22,7 +21,7 @@
|
|
|
22
21
|
margin: 3px;
|
|
23
22
|
background: var(--backgroundColor);
|
|
24
23
|
overflow: hidden;
|
|
25
|
-
font-family:
|
|
24
|
+
font-family: var(--font-family);
|
|
26
25
|
font-size: var(--buttonFontSize);
|
|
27
26
|
-o-text-overflow: ellipsis;
|
|
28
27
|
text-overflow: ellipsis;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
@import 'src/app/sass/variables';
|
|
2
|
-
|
|
3
1
|
:host {
|
|
4
2
|
--backgroundColor: #{var(--blue)};
|
|
5
3
|
--textColor: #{var(--bck-msg-sent)};
|
|
@@ -7,6 +5,7 @@
|
|
|
7
5
|
--hoverTextColor: #{var(--blue)};
|
|
8
6
|
--buttonFontSize: #{var(--button-in-msg-font-size)};
|
|
9
7
|
--max-width: #{var(--button-in-msg-max-width)};
|
|
8
|
+
--fontFamily: #{var(--font-family)};
|
|
10
9
|
|
|
11
10
|
--cardWidth: 220px;
|
|
12
11
|
}
|
|
@@ -203,7 +202,7 @@
|
|
|
203
202
|
transition: all .3s;
|
|
204
203
|
|
|
205
204
|
background: var(--backgroundColor);
|
|
206
|
-
font-family:
|
|
205
|
+
font-family: var(--fontFamily);
|
|
207
206
|
font-size: var(--buttonFontSize);
|
|
208
207
|
-o-text-overflow: ellipsis;
|
|
209
208
|
text-overflow: ellipsis;
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
// @import 'src/app/sass/variables';
|
|
2
|
-
|
|
3
1
|
:root {
|
|
4
2
|
--themeColor: #{var(--blue)};
|
|
5
3
|
--foregroundColor: #{var(--col-msg-sent)};
|
|
@@ -20,7 +18,7 @@
|
|
|
20
18
|
margin: 3px;
|
|
21
19
|
background: transparent;
|
|
22
20
|
overflow: hidden;
|
|
23
|
-
font-family:
|
|
21
|
+
font-family: var(--font-family) !important;
|
|
24
22
|
font-size: var(--buttonFontSize) !important;
|
|
25
23
|
-o-text-overflow: ellipsis;
|
|
26
24
|
text-overflow: ellipsis;
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
// @import 'src/app/sass/variables';
|
|
2
|
-
|
|
3
1
|
.message_innerhtml {
|
|
4
2
|
margin: 0px;
|
|
5
3
|
// padding: 0px 14px;
|
|
6
4
|
&.marked{
|
|
7
|
-
padding:
|
|
5
|
+
padding: 12px 16px;
|
|
8
6
|
margin-block-start: 0em!important;
|
|
9
7
|
margin-block-end: 0em!important;
|
|
10
8
|
}
|
|
@@ -15,7 +13,7 @@
|
|
|
15
13
|
}
|
|
16
14
|
|
|
17
15
|
p {
|
|
18
|
-
font-size:
|
|
16
|
+
font-size: var(--font-size-bubble-message);
|
|
19
17
|
margin: 0;
|
|
20
18
|
padding: 14px;
|
|
21
19
|
line-height: 1.4em;
|
|
@@ -10,8 +10,6 @@ export class TextComponent implements OnInit {
|
|
|
10
10
|
@Input() text: string;
|
|
11
11
|
@Input() htmlEnabled: boolean = false;
|
|
12
12
|
@Input() color: string;
|
|
13
|
-
@Input() fontSize: string;
|
|
14
|
-
@Input() fontFamily: string;
|
|
15
13
|
@Output() onBeforeMessageRender = new EventEmitter();
|
|
16
14
|
@Output() onAfterMessageRender = new EventEmitter();
|
|
17
15
|
|
|
@@ -1,7 +1,5 @@
|
|
|
1
1
|
// @import url(//netdna.bootstrapcdn.com/font-awesome/3.2.1/css/font-awesome.css);
|
|
2
2
|
// @import url(https://use.fontawesome.com/releases/v5.5.0/css/all.css);
|
|
3
|
-
// @import 'src/app/sass/variables';
|
|
4
|
-
|
|
5
3
|
#chat21-star-rating-widget {
|
|
6
4
|
background-color: #ffffff;
|
|
7
5
|
width: 100%;
|
|
@@ -82,11 +80,6 @@
|
|
|
82
80
|
.c21-body-content {
|
|
83
81
|
padding: 10px 0px;
|
|
84
82
|
/* star-rating */
|
|
85
|
-
.default-title {
|
|
86
|
-
font-size: 2em;
|
|
87
|
-
font-family:'Roboto';
|
|
88
|
-
color:var(--black);
|
|
89
|
-
}
|
|
90
83
|
.default-text {
|
|
91
84
|
font-size: 1.4em;
|
|
92
85
|
font-family:'Roboto';
|
|
@@ -331,6 +331,8 @@ export class GlobalSettingsService {
|
|
|
331
331
|
this.globals.setColorWithGradient();
|
|
332
332
|
/** set css iframe from parameters */
|
|
333
333
|
this.setCssIframe();
|
|
334
|
+
/** set main style */
|
|
335
|
+
this.setStyle();
|
|
334
336
|
|
|
335
337
|
this.logger.debug('[GLOBAL-SET] ***** END SET PARAMETERS *****');
|
|
336
338
|
this.obsSettingsService.next(true);
|
|
@@ -365,16 +367,40 @@ export class GlobalSettingsService {
|
|
|
365
367
|
}
|
|
366
368
|
// console.log('this.globals.fullscreenMode' + this.globals.fullscreenMode);
|
|
367
369
|
if (this.globals.fullscreenMode === true) {
|
|
368
|
-
divTiledeskiframe.style.left = 0;
|
|
369
|
-
divTiledeskiframe.style.right = 0;
|
|
370
|
-
divTiledeskiframe.style.top = 0;
|
|
371
|
-
divTiledeskiframe.style.bottom = 0;
|
|
372
|
-
divTiledeskiframe.style.width = '100%';
|
|
373
|
-
divTiledeskiframe.style.height = '100%';
|
|
374
|
-
divTiledeskiframe.style.maxHeight = 'none';
|
|
375
|
-
divTiledeskiframe.style.maxWidth = 'none';
|
|
370
|
+
// divTiledeskiframe.style.left = 0;
|
|
371
|
+
// divTiledeskiframe.style.right = 0;
|
|
372
|
+
// divTiledeskiframe.style.top = 0;
|
|
373
|
+
// divTiledeskiframe.style.bottom = 0;
|
|
374
|
+
// divTiledeskiframe.style.width = '100%';
|
|
375
|
+
// divTiledeskiframe.style.height = '100%';
|
|
376
|
+
// divTiledeskiframe.style.maxHeight = 'none';
|
|
377
|
+
// divTiledeskiframe.style.maxWidth = 'none';
|
|
378
|
+
divTiledeskiframe.classList.add('fullscreen')
|
|
376
379
|
}
|
|
377
380
|
}
|
|
381
|
+
|
|
382
|
+
setStyle(){
|
|
383
|
+
|
|
384
|
+
/** load custom FONT */
|
|
385
|
+
if(this.globals.fontFamily && this.globals.fontFamilySource){
|
|
386
|
+
this.loadFont(this.globals.fontFamily, this.globals.fontFamilySource)
|
|
387
|
+
}
|
|
388
|
+
}
|
|
389
|
+
loadFont(family: string, href: string,) {
|
|
390
|
+
// controlla se già esiste
|
|
391
|
+
if (document.querySelector(`link[data-font='${family}']`)) {
|
|
392
|
+
return;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
const link = document.createElement('link');
|
|
396
|
+
link.rel = 'stylesheet';
|
|
397
|
+
link.href = href;
|
|
398
|
+
link.setAttribute('data-font', family); // marker per non duplicare
|
|
399
|
+
document.head.appendChild(link);
|
|
400
|
+
|
|
401
|
+
// aggiorna la variabile CSS
|
|
402
|
+
document.documentElement.style.setProperty('--font-family', `'${family}', sans-serif`);
|
|
403
|
+
}
|
|
378
404
|
/**
|
|
379
405
|
* A: setVariablesFromService
|
|
380
406
|
*/
|
|
@@ -929,7 +955,12 @@ export class GlobalSettingsService {
|
|
|
929
955
|
TEMP = tiledeskSettings['fontFamily'];
|
|
930
956
|
// this.logger.debug('[GLOBAL-SET] setVariablesFromSettings > fontFamily:: ', TEMP]);
|
|
931
957
|
if (TEMP !== undefined) {
|
|
932
|
-
globals.fontFamily = TEMP;
|
|
958
|
+
globals.fontFamily = TEMP + ',' + globals.fontFamily;
|
|
959
|
+
}
|
|
960
|
+
TEMP = tiledeskSettings['fontFamilySource'];
|
|
961
|
+
// this.logger.debug('[GLOBAL-SET] setVariablesFromSettings > fontFamily:: ', TEMP]);
|
|
962
|
+
if (TEMP !== undefined) {
|
|
963
|
+
globals.fontFamilySource = TEMP;
|
|
933
964
|
}
|
|
934
965
|
TEMP = tiledeskSettings['buttonFontSize'];
|
|
935
966
|
// this.logger.debug('[GLOBAL-SET] setVariablesFromSettings > buttonFontSize:: ', TEMP]);
|
|
@@ -1260,7 +1291,11 @@ export class GlobalSettingsService {
|
|
|
1260
1291
|
}
|
|
1261
1292
|
TEMP = el.nativeElement.getAttribute('fontFamily');
|
|
1262
1293
|
if (TEMP !== null) {
|
|
1263
|
-
this.globals.fontFamily = TEMP;
|
|
1294
|
+
this.globals.fontFamily = TEMP + ',' + this.globals.fontFamily;
|
|
1295
|
+
}
|
|
1296
|
+
TEMP = el.nativeElement.getAttribute('fontFamilySource');
|
|
1297
|
+
if (TEMP !== null) {
|
|
1298
|
+
this.globals.fontFamilySource = TEMP;
|
|
1264
1299
|
}
|
|
1265
1300
|
TEMP = el.nativeElement.getAttribute('buttonFontSize');
|
|
1266
1301
|
if (TEMP !== null) {
|
|
@@ -38,6 +38,15 @@
|
|
|
38
38
|
|
|
39
39
|
--content-background-color: #fff;
|
|
40
40
|
--content-text-color: var(--black);
|
|
41
|
+
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
--font-family: Mulish, sans-serif;
|
|
45
|
+
--font-family-bubble-message: 'Roboto','Google Sans', Helvetica, Arial, sans-serif;
|
|
46
|
+
--font-family-callout: 'Helvetica Neue', 'Apple Color Emoji', Helvetica, Arial, sans-serif;
|
|
47
|
+
|
|
48
|
+
--font-size-bubble-message: 1.4em
|
|
49
|
+
|
|
41
50
|
}
|
|
42
51
|
|
|
43
52
|
$trasp-black:rgba(0,0,0,0.8);
|
package/src/app/utils/globals.ts
CHANGED
|
@@ -221,6 +221,8 @@ export class Globals {
|
|
|
221
221
|
|
|
222
222
|
allowedOnSpecificUrl: boolean // ******* new ********
|
|
223
223
|
allowedOnSpecificUrlList: Array<string> // ******* new ********
|
|
224
|
+
|
|
225
|
+
fontFamilySource: string; // ******* new ********
|
|
224
226
|
constructor(
|
|
225
227
|
) { }
|
|
226
228
|
|
|
@@ -357,7 +359,7 @@ export class Globals {
|
|
|
357
359
|
/** set the text color of bubble received message */
|
|
358
360
|
this.fontSize = '1.4em'
|
|
359
361
|
/** set the text size of bubble messages */
|
|
360
|
-
this.fontFamily = "'Roboto','Google Sans', Helvetica, Arial, sans-serif
|
|
362
|
+
this.fontFamily = "'Roboto','Google Sans', Helvetica, Arial, sans-serif"
|
|
361
363
|
/** set the text family of bubble messages */
|
|
362
364
|
this.buttonFontSize = '15px'
|
|
363
365
|
/** set the text size of attachment-buttons */
|
package/src/assets/i18n/en.json
CHANGED
|
@@ -53,8 +53,9 @@
|
|
|
53
53
|
"WAITING_TIME_NOT_FOUND": "The team will reply as soon as possible",
|
|
54
54
|
"CLOSED": "CLOSED",
|
|
55
55
|
"CLOSE_CHAT": "Close chat",
|
|
56
|
-
"MINIMIZE":"Minimize",
|
|
57
|
-
"MAXIMIZE":"
|
|
56
|
+
"MINIMIZE":"Minimize window",
|
|
57
|
+
"MAXIMIZE":"Expand window",
|
|
58
|
+
"FULLSCREEN":"Fullscreen",
|
|
58
59
|
"CONFIRM_CLOSE_CHAT":"Are you sure you want to close this chat?",
|
|
59
60
|
|
|
60
61
|
"INFO_SUPPORT_USER_ADDED_SUBJECT":"you",
|
package/src/assets/i18n/es.json
CHANGED
|
@@ -53,8 +53,9 @@
|
|
|
53
53
|
"WAITING_TIME_NOT_FOUND": "El equipo responderá lo antes posible",
|
|
54
54
|
"CLOSED": "CERRADA",
|
|
55
55
|
"CLOSE_CHAT": "Cerrar chat",
|
|
56
|
-
"MINIMIZE":"Minimizar",
|
|
57
|
-
"MAXIMIZE":"
|
|
56
|
+
"MINIMIZE":" Minimizar ventana",
|
|
57
|
+
"MAXIMIZE":"Expandir ventana",
|
|
58
|
+
"FULLSCREEN":"Pantalla completa",
|
|
58
59
|
"CONFIRM_CLOSE_CHAT":"¿Estás seguro de que quieres cerrar este chat?",
|
|
59
60
|
|
|
60
61
|
"INFO_SUPPORT_USER_ADDED_SUBJECT":"tú",
|
package/src/assets/i18n/fr.json
CHANGED
|
@@ -53,8 +53,9 @@
|
|
|
53
53
|
"WAITING_TIME_NOT_FOUND": "Nous vous répondrons dans les plus brefs délais",
|
|
54
54
|
"CLOSED": "Fermé",
|
|
55
55
|
"CLOSE_CHAT": "Fermer la discussion",
|
|
56
|
-
"MINIMIZE":"
|
|
57
|
-
"MAXIMIZE":"
|
|
56
|
+
"MINIMIZE":"Réduire la fenêtre",
|
|
57
|
+
"MAXIMIZE":"Agrandir la fenêtre",
|
|
58
|
+
"FULLSCREEN":"Plein écran",
|
|
58
59
|
"CONFIRM_CLOSE_CHAT":"Etes-vous sûr de vouloir fermer cette discussion?",
|
|
59
60
|
|
|
60
61
|
"INFO_SUPPORT_USER_ADDED_SUBJECT":"tu",
|
package/src/assets/i18n/it.json
CHANGED
|
@@ -53,8 +53,9 @@
|
|
|
53
53
|
"WAITING_TIME_NOT_FOUND": "Vi risponderemo appena possibile",
|
|
54
54
|
"CLOSED": "Chiusa",
|
|
55
55
|
"CLOSE_CHAT": "Chiudi chat",
|
|
56
|
-
"MINIMIZE":"
|
|
57
|
-
"MAXIMIZE":"
|
|
56
|
+
"MINIMIZE":"Comprimi finestra",
|
|
57
|
+
"MAXIMIZE":"Espandi finestra",
|
|
58
|
+
"FULLSCREEN":"Fullscreen",
|
|
58
59
|
"CONFIRM_CLOSE_CHAT":"Sei sicuro di voler chiudere questa chat?",
|
|
59
60
|
|
|
60
61
|
"INFO_SUPPORT_USER_ADDED_SUBJECT":"tu",
|
package/src/iframe-style.css
CHANGED
|
@@ -1,5 +1,10 @@
|
|
|
1
1
|
:root{
|
|
2
2
|
--messagePreviewHeight: 100px;
|
|
3
|
+
--iframeMinWidth: 400px; /*376px*/;
|
|
4
|
+
--iframeMinHeight: 704px; /*696px;*/
|
|
5
|
+
--iframeMaxWidth: 688px;
|
|
6
|
+
--iframeMaxHeight: 786px;
|
|
7
|
+
|
|
3
8
|
}
|
|
4
9
|
|
|
5
10
|
#tiledesk-container {
|
|
@@ -17,11 +22,11 @@
|
|
|
17
22
|
max-width: 420px;
|
|
18
23
|
min-width: 416px;
|
|
19
24
|
max-height: 640px; */
|
|
20
|
-
width:
|
|
21
|
-
height:
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
max-height: 620px;
|
|
25
|
+
width: var(--iframeMinWidth);
|
|
26
|
+
height: var(--iframeMinHeight);
|
|
27
|
+
/* min-width: var(--iframeMinWidth);
|
|
28
|
+
max-width: var(--iframeMaxWidth); 376px;
|
|
29
|
+
max-height: 620px; */
|
|
25
30
|
right: 0px;
|
|
26
31
|
bottom: 0px;
|
|
27
32
|
display: block;
|
|
@@ -32,21 +37,33 @@
|
|
|
32
37
|
#tiledeskdiv.decreaseSize {
|
|
33
38
|
/* transition: width 1s, height 1s; */
|
|
34
39
|
transition: all 1s ease-out;
|
|
35
|
-
width:
|
|
36
|
-
|
|
40
|
+
width: var(--iframeMinWidth);
|
|
41
|
+
height: var(--iframeMinHeight);
|
|
37
42
|
/* animation: right-animate 1s ease infinite alternate; */
|
|
38
43
|
|
|
39
44
|
}
|
|
40
45
|
|
|
41
46
|
#tiledeskdiv.increaseSize {
|
|
42
47
|
/* transition: width 1s, height 1s; */
|
|
43
|
-
transition: all
|
|
44
|
-
width:
|
|
45
|
-
|
|
48
|
+
transition: all 3s ease-in;
|
|
49
|
+
width: var(--iframeMaxWidth);
|
|
50
|
+
height: var(--iframeMaxHeight);
|
|
46
51
|
/* animation: right-animate 1s ease infinite alternate; */
|
|
47
52
|
|
|
48
53
|
}
|
|
49
54
|
|
|
55
|
+
#tiledeskdiv.fullscreen {
|
|
56
|
+
/* transition: width 1s, height 1s; */
|
|
57
|
+
transition: all 3s ease-in;
|
|
58
|
+
right: 0px;
|
|
59
|
+
left: 0px;
|
|
60
|
+
top: 0px;
|
|
61
|
+
bottom: 0px;
|
|
62
|
+
width: 100%;
|
|
63
|
+
height: 100%;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
|
|
50
67
|
@keyframes right-animate {
|
|
51
68
|
0% {
|
|
52
69
|
transform: translateX(140px);
|