@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.
Files changed (58) hide show
  1. package/CHANGELOG.md +15 -0
  2. package/package.json +1 -1
  3. package/src/app/app.component.scss +2 -88
  4. package/src/app/app.component.ts +3 -0
  5. package/src/app/component/conversation-detail/conversation/conversation.component.html +2 -2
  6. package/src/app/component/conversation-detail/conversation/conversation.component.scss +1 -7
  7. package/src/app/component/conversation-detail/conversation/conversation.component.ts +21 -18
  8. package/src/app/component/conversation-detail/conversation-audio-recorder/conversation-audio-recorder.component.html +0 -1
  9. package/src/app/component/conversation-detail/conversation-content/conversation-content.component.html +0 -4
  10. package/src/app/component/conversation-detail/conversation-content/conversation-content.component.scss +46 -32
  11. package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.scss +2 -3
  12. package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.ts +0 -5
  13. package/src/app/component/conversation-detail/conversation-header/conversation-header.component.html +21 -10
  14. package/src/app/component/conversation-detail/conversation-header/conversation-header.component.scss +0 -1
  15. package/src/app/component/conversation-detail/conversation-header/conversation-header.component.ts +3 -1
  16. package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.scss +0 -3
  17. package/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.scss +1 -3
  18. package/src/app/component/form/form-builder/form-builder.component.scss +0 -1
  19. package/src/app/component/form/inputs/form-text/form-text.component.scss +0 -1
  20. package/src/app/component/form/inputs/form-textarea/form-textarea.component.scss +0 -1
  21. package/src/app/component/form/prechat-form/prechat-form.component.scss +0 -2
  22. package/src/app/component/home/home.component.scss +1 -8
  23. package/src/app/component/home-conversations/home-conversations.component.scss +0 -3
  24. package/src/app/component/last-message/last-message.component.html +0 -2
  25. package/src/app/component/last-message/last-message.component.scss +0 -2
  26. package/src/app/component/list-all-conversations/list-all-conversations.component.scss +0 -3
  27. package/src/app/component/list-conversations/list-conversations.component.scss +0 -2
  28. package/src/app/component/menu-options/menu-options.component.scss +0 -2
  29. package/src/app/component/message/audio/audio.component.html +1 -1
  30. package/src/app/component/message/audio/audio.component.scss +1 -0
  31. package/src/app/component/message/audio/audio.component.ts +0 -1
  32. package/src/app/component/message/bubble-message/bubble-message.component.html +1 -4
  33. package/src/app/component/message/bubble-message/bubble-message.component.scss +0 -1
  34. package/src/app/component/message/bubble-message/bubble-message.component.ts +0 -2
  35. package/src/app/component/message/buttons/action-button/action-button.component.scss +2 -3
  36. package/src/app/component/message/buttons/link-button/link-button.component.scss +2 -3
  37. package/src/app/component/message/buttons/text-button/text-button.component.scss +2 -3
  38. package/src/app/component/message/carousel/carousel.component.scss +2 -3
  39. package/src/app/component/message/frame/frame.component.scss +0 -2
  40. package/src/app/component/message/html/html.component.scss +1 -3
  41. package/src/app/component/message/image/image.component.scss +0 -2
  42. package/src/app/component/message/info-message/info-message.component.scss +0 -2
  43. package/src/app/component/message/like-unlike/like-unlike.component.scss +0 -2
  44. package/src/app/component/message/text/text.component.html +1 -2
  45. package/src/app/component/message/text/text.component.scss +2 -4
  46. package/src/app/component/message/text/text.component.ts +0 -2
  47. package/src/app/component/selection-department/selection-department.component.scss +0 -4
  48. package/src/app/component/star-rating-widget/star-rating-widget.component.scss +0 -7
  49. package/src/app/providers/global-settings.service.ts +45 -10
  50. package/src/app/sass/_variables.scss +9 -0
  51. package/src/app/utils/constants.ts +2 -1
  52. package/src/app/utils/globals.ts +3 -1
  53. package/src/assets/i18n/en.json +3 -2
  54. package/src/assets/i18n/es.json +3 -2
  55. package/src/assets/i18n/fr.json +3 -2
  56. package/src/assets/i18n/it.json +3 -2
  57. package/src/chat21-core/utils/user-typing/user-typing.component.scss +0 -1
  58. 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
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@chat21/chat21-web-widget",
3
3
  "author": "Tiledesk SRL",
4
- "version": "5.1.0-rc18",
4
+ "version": "5.1.0-rc20",
5
5
  "license": "MIT",
6
6
  "homepage": "https://www.tiledesk.com",
7
7
  "repository": {
@@ -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: 'Roboto','Google Sans', Helvetica, Arial, sans-serif;
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
- /* LOADING */
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 */
@@ -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: Mulish, sans-serif;
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
- onWidgetHeightChange(mode){
1070
+ onWidgetSizeChange(mode){
1070
1071
  var tiledeskDiv = this.g.windowContext.window.document.getElementById('tiledeskdiv')
1071
1072
  if(mode==='max'){
1072
- tiledeskDiv.style.maxHeight = 'unset'
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.style.maxHeight = '620px'
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.onWidgetHeightChange('max')
1124
+ this.onWidgetSizeChange('max')
1112
1125
  break;
1113
1126
  case HEADER_MENU_OPTION.MINIMIZE:
1114
- this.onWidgetHeightChange('min')
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
 
@@ -9,7 +9,6 @@
9
9
  <chat-audio class="test" *ngIf="audioBlob && audioUrl"
10
10
  [audioBlob] = "audioBlob"
11
11
  [color]="'var(--chat-footer-color)'"
12
- [fontSize]="stylesMap.get('fontSize')"
13
12
  [stylesMap]="stylesMap">
14
13
  </chat-audio>
15
14
 
@@ -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
- // ============= END CSS c21-body ================= //
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
- -webkit-transform: scale(0);
299
- transform: scale(0);
310
+ -webkit-transform: scale(0);
311
+ transform: scale(0);
300
312
  } 40% {
301
- -webkit-transform: scale(1.0);
302
- transform: scale(1.0);
313
+ -webkit-transform: scale(1.0);
314
+ transform: scale(1.0);
303
315
  }
304
- }
316
+ }
317
+
318
+ // ============= END CSS c21-body ================= //
@@ -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: Mulish, sans-serif;
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: Mulish, sans-serif;
375
+ font-family: var(--font-family);
377
376
  letter-spacing: 0.24px;
378
377
  -webkit-font-smoothing: antialiased;
379
378
  padding: 4px 12px;
@@ -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 () {
@@ -123,23 +123,34 @@
123
123
  </div> -->
124
124
 
125
125
  <!-- ICON MAXIMIZE -->
126
- <!-- <div class="c21-header-button c21-right" *ngIf="heightStatus==='min'" (click)="maximizeMinimize('max')">
127
- <svg role="img" aria-labelledby="altIconTitle" [class="icon-menu" xmlns="http://www.w3.org/2000/svg"
128
- width="17" height="17" viewBox="0 0 62 62">
129
- <path d="M61,2H33a1,1,0,0,0-1,1V9a1,1,0,0,0,1,1H48.344L2.293,56.051a1,1,0,0,0,0,1.414l4.243,4.242a1,1,0,0,0,1.414,0L54,15.656V31a1,1,0,0,0,1,1h6a1,1,0,0,0,1-1V3A1,1,0,0,0,61,2Z"></path>
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
- <!-- <div class="c21-header-button c21-right" *ngIf="heightStatus==='max'" (click)="maximizeMinimize('min')">
136
- <svg role="img" aria-labelledby="altIconTitle" class="icon-menu" transform="rotate(180)" xmlns="http://www.w3.org/2000/svg"
137
- width="17" height="17" viewBox="0 0 62 62">
138
- <path d="M61,2H33a1,1,0,0,0-1,1V9a1,1,0,0,0,1,1H48.344L2.293,56.051a1,1,0,0,0,0,1.414l4.243,4.242a1,1,0,0,0,1.414,0L54,15.656V31a1,1,0,0,0,1,1h6a1,1,0,0,0,1-1V3A1,1,0,0,0,61,2Z"></path>
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()">
@@ -1,4 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
1
 
3
2
  /* SET SCROLLBAR */
4
3
  // ============= CSS c21-header ================= //
@@ -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
- maximizeMinimize(status){
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() {
@@ -1,6 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
-
3
-
4
1
  :host .c21-content ::ng-deep > chat-image {
5
2
 
6
3
  div {
@@ -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: 'Helvetica Neue', 'Apple Color Emoji', Helvetica, Arial, sans-serif;
183
+ font-family: var(--font-family-callout);
186
184
  font-weight: normal;
187
185
  word-wrap: break-word;
188
186
  margin: 0px;
@@ -1,4 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
1
 
3
2
  .c21-label-button {
4
3
  font-size: 1.2em !important;
@@ -1,4 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
1
 
3
2
  :host {
4
3
  --foregroundColor: #0000;
@@ -1,4 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
1
 
3
2
  :host {
4
3
  --foregroundColor: #0000;
@@ -1,5 +1,3 @@
1
- // @import '../../../sass/variables';
2
- // @import '../../../sass/normalize.css';
3
1
 
4
2
  #chat21-prechat-form {
5
3
  background-color: #ffffff;
@@ -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: Mulish, sans-serif;
304
+ font-family: var(--font-family);
312
305
  letter-spacing: 0.24px;
313
306
  -webkit-font-smoothing: antialiased;
314
307
 
@@ -1,6 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
- // @import '../../../sass/normalize.css';
3
-
4
1
  #c21-app-list-conversations{
5
2
  position: relative;
6
3
  display: block;
@@ -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>
@@ -1,5 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
-
3
1
  :host .c21-avatar-image ::ng-deep > chat-avatar-image {
4
2
 
5
3
  .c21-icon-avatar {
@@ -1,6 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
- // @import '../../../sass/normalize.css';
3
-
4
1
  #c21-app-list-all-conversations {
5
2
  position: relative;
6
3
  display: block;
@@ -1,5 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
-
3
1
  :host .c21-msg ::ng-deep > a > img {
4
2
  max-width: 24% !important;
5
3
  vertical-align: middle;
@@ -1,5 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
-
3
1
  #c21-menu-options{
4
2
 
5
3
  .modal-menu-options {
@@ -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" [style.font-size]="fontSize" >
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>
@@ -80,6 +80,7 @@ button {
80
80
  }
81
81
  .duration {
82
82
  padding: 0 3px;
83
+ font-size: var(--font-size-bubble-message);
83
84
  }
84
85
  }
85
86
 
@@ -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))? '10px 16px 8px 16px': '10px 8px 0px 8px'}" class="message_sender_fullname">
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>
@@ -1,4 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
1
  /* ====== SET MESSAGES ====== */
3
2
 
4
3
  .messages {
@@ -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: 'Muli', sans-serif;
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: 'Muli', sans-serif;
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: 'Muli', sans-serif;
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: 'Muli', sans-serif;
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
  :host{
4
2
  // --borderRadius: #{$border-radius-bubble-message};
5
3
  --borderRadius: 8px;
@@ -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: 'Muli', sans-serif !important;
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,5 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
-
3
1
  :host{
4
2
  // --borderRadius: #{$border-radius-bubble-message};
5
3
  --borderRadius: 8px;
@@ -1,5 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
-
3
1
  .info-container{
4
2
  display: flex;
5
3
  align-content: center;
@@ -1,5 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
-
3
1
  :host{
4
2
  // --borderRadius: #{$border-radius-bubble-message};
5
3
  --borderRadius: 25px;
@@ -1,4 +1,3 @@
1
1
  <p #messageEl class="message_innerhtml marked"
2
2
  [innerHTML]="printMessage(text, messageEl, this) | htmlEntitiesEncode | marked"
3
- [style.color]="color"
4
- [style.font-size]="fontSize"></p>
3
+ [style.color]="color"></p>
@@ -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:8px;
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: 1.4em;
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,3 @@
1
- // @import 'src/app/sass/variables';
2
- // @import '../../../sass/normalize.css';
3
-
4
-
5
1
  #chat21-selection-department {
6
2
 
7
3
  --backgroundColor: #{var(--light-white)};
@@ -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);
@@ -73,6 +73,7 @@ export const HEADER_MENU_OPTION = {
73
73
  DETAIL : 'detail',
74
74
  RESTART : 'restart',
75
75
  MAXIMIZE : 'maximize',
76
- MINIMIZE : 'minimize'
76
+ MINIMIZE : 'minimize',
77
+ FULLSCREEN : 'fullscreen'
77
78
  }
78
79
 
@@ -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 */
@@ -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":"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",
@@ -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":"Maximizar",
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ú",
@@ -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":"Minimiser",
57
- "MAXIMIZE":"Maximiser",
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",
@@ -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":"Minimizza",
57
- "MAXIMIZE":"Massimizza",
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",
@@ -1,4 +1,3 @@
1
- // @import 'src/app/sass/variables';
2
1
  :root {
3
2
  --bubbleReceivedBackgroundColor: var(--blue);
4
3
  --foregroundColor: var(--bck-msg-sent);
@@ -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: 376px;
21
- height: calc(100% - 40px);
22
- max-width: 696px; /*376px;*/
23
- min-width: 376px;
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: 376px;
36
- max-height: 620px;
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 1s ease-in;
44
- width: 696px;
45
- max-height: 712px;
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);