@chat21/chat21-web-widget 5.0.55 → 5.0.56-rc.2

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 (130) hide show
  1. package/.github/workflows/build.yml +1 -0
  2. package/CHANGELOG.md +16 -0
  3. package/angular.json +6 -7
  4. package/package.json +5 -4
  5. package/src/app/app.component.html +1 -11
  6. package/src/app/app.component.scss +12 -13
  7. package/src/app/app.component.spec.ts +0 -2
  8. package/src/app/app.component.ts +29 -35
  9. package/src/app/app.module.ts +4 -5
  10. package/src/app/component/conversation-detail/conversation/conversation.component.html +1 -10
  11. package/src/app/component/conversation-detail/conversation/conversation.component.scss +5 -428
  12. package/src/app/component/conversation-detail/conversation/conversation.component.ts +23 -25
  13. package/src/app/component/conversation-detail/conversation-content/conversation-content.component.html +7 -66
  14. package/src/app/component/conversation-detail/conversation-content/conversation-content.component.scss +11 -81
  15. package/src/app/component/conversation-detail/conversation-content/conversation-content.component.spec.ts +0 -3
  16. package/src/app/component/conversation-detail/conversation-content/conversation-content.component.ts +6 -6
  17. package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.html +7 -32
  18. package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.scss +11 -11
  19. package/src/app/component/conversation-detail/conversation-footer/conversation-footer.component.ts +8 -8
  20. package/src/app/component/conversation-detail/conversation-header/conversation-header.component.html +4 -25
  21. package/src/app/component/conversation-detail/conversation-header/conversation-header.component.scss +5 -5
  22. package/src/app/component/conversation-detail/conversation-header/conversation-header.component.ts +4 -88
  23. package/src/app/component/conversation-detail/conversation-internal-frame/conversation-internal-frame.component.html +7 -16
  24. package/src/app/component/conversation-detail/conversation-internal-frame/conversation-internal-frame.component.ts +2 -26
  25. package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.html +1 -11
  26. package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.scss +5 -5
  27. package/src/app/component/conversation-detail/conversation-preview/conversation-preview.component.ts +2 -19
  28. package/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.html +10 -42
  29. package/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.scss +1 -2
  30. package/src/app/component/eyeeye-catcher-card/eyeeye-catcher-card.component.ts +2 -3
  31. package/src/app/component/form/form-builder/form-builder.component.html +0 -1
  32. package/src/app/component/form/form-builder/form-builder.component.scss +1 -1
  33. package/src/app/component/form/form-builder/form-builder.component.ts +4 -5
  34. package/src/app/component/form/inputs/form-checkbox/form-checkbox.component.scss +1 -2
  35. package/src/app/component/form/inputs/form-checkbox/form-checkbox.component.ts +2 -3
  36. package/src/app/component/form/inputs/form-label/form-label.component.ts +0 -1
  37. package/src/app/component/form/inputs/form-text/form-text.component.scss +3 -13
  38. package/src/app/component/form/inputs/form-text/form-text.component.ts +1 -2
  39. package/src/app/component/form/inputs/form-textarea/form-textarea.component.html +0 -13
  40. package/src/app/component/form/inputs/form-textarea/form-textarea.component.scss +4 -4
  41. package/src/app/component/form/inputs/form-textarea/form-textarea.component.ts +0 -10
  42. package/src/app/component/form/prechat-form/prechat-form.component.html +0 -2
  43. package/src/app/component/form/prechat-form/prechat-form.component.scss +2 -2
  44. package/src/app/component/form/prechat-form/prechat-form.component.ts +2 -2
  45. package/src/app/component/home/home.component.scss +7 -7
  46. package/src/app/component/home/home.component.ts +1 -4
  47. package/src/app/component/home-conversations/home-conversations.component.scss +7 -7
  48. package/src/app/component/home-conversations/home-conversations.component.ts +9 -12
  49. package/src/app/component/last-message/last-message.component.scss +4 -4
  50. package/src/app/component/last-message/last-message.component.ts +4 -7
  51. package/src/app/component/launcher-button/launcher-button.component.ts +3 -3
  52. package/src/app/component/list-all-conversations/list-all-conversations.component.scss +2 -2
  53. package/src/app/component/list-all-conversations/list-all-conversations.component.ts +3 -3
  54. package/src/app/component/list-conversations/list-conversations.component.html +1 -1
  55. package/src/app/component/list-conversations/list-conversations.component.scss +3 -3
  56. package/src/app/component/list-conversations/list-conversations.component.ts +3 -6
  57. package/src/app/component/menu-options/menu-options.component.html +1 -8
  58. package/src/app/component/menu-options/menu-options.component.scss +4 -4
  59. package/src/app/component/menu-options/menu-options.component.ts +1 -1
  60. package/src/app/component/message/bubble-message/bubble-message.component.html +3 -4
  61. package/src/app/component/message/bubble-message/bubble-message.component.scss +3 -3
  62. package/src/app/component/message/bubble-message/bubble-message.component.spec.ts +0 -2
  63. package/src/app/component/message/bubble-message/bubble-message.component.ts +10 -15
  64. package/src/app/component/message/buttons/action-button/action-button.component.scss +6 -6
  65. package/src/app/component/message/buttons/link-button/link-button.component.scss +7 -7
  66. package/src/app/component/message/buttons/text-button/text-button.component.scss +8 -8
  67. package/src/app/component/message/frame/frame.component.scss +1 -1
  68. package/src/app/component/message/frame/frame.component.ts +1 -1
  69. package/src/app/component/message/html/html.component.scss +4 -4
  70. package/src/app/component/message/html/html.component.ts +1 -2
  71. package/src/app/component/message/image/image.component.scss +1 -1
  72. package/src/app/component/message/image/image.component.ts +2 -3
  73. package/src/app/component/message/info-message/info-message.component.html +2 -1
  74. package/src/app/component/message/info-message/info-message.component.scss +6 -6
  75. package/src/app/component/message/like-unlike/like-unlike.component.scss +1 -1
  76. package/src/app/component/message/like-unlike/like-unlike.component.ts +2 -2
  77. package/src/app/component/message/text/text.component.scss +2 -2
  78. package/src/app/component/message/text/text.component.ts +1 -1
  79. package/src/app/component/message-attachment/message-attachment.component.ts +1 -1
  80. package/src/app/component/selection-department/selection-department.component.scss +6 -6
  81. package/src/app/component/selection-department/selection-department.component.ts +2 -2
  82. package/src/app/component/send-button/send-button.component.ts +1 -2
  83. package/src/app/component/star-rating-widget/star-rating-widget.component.scss +6 -6
  84. package/src/app/component/star-rating-widget/star-rating-widget.component.ts +2 -2
  85. package/src/app/pipe/date-ago.pipe.spec.ts +8 -0
  86. package/src/app/pipe/date-ago.pipe.ts +42 -0
  87. package/src/app/providers/app-config.service.ts +0 -1
  88. package/src/app/providers/global-settings.service.ts +3 -31
  89. package/src/app/providers/star-rating-widget.service.ts +4 -4
  90. package/src/app/providers/translator.service.ts +3 -11
  91. package/src/app/providers/waiting.service.ts +2 -2
  92. package/src/app/sass/_variables.scss +29 -26
  93. package/src/app/utils/globals.ts +4 -34
  94. package/src/app/utils/rules.ts +5 -7
  95. package/src/app/utils/utils.ts +47 -37
  96. package/src/assets/i18n/en.json +0 -2
  97. package/src/assets/i18n/es.json +0 -2
  98. package/src/assets/i18n/fr.json +0 -2
  99. package/src/assets/i18n/it.json +0 -2
  100. package/src/assets/twp/index.html +6 -60
  101. package/src/chat21-core/providers/firebase/firebase-archivedconversations-handler.ts +15 -23
  102. package/src/chat21-core/providers/firebase/firebase-auth-service.ts +21 -20
  103. package/src/chat21-core/providers/firebase/firebase-conversation-handler.ts +15 -13
  104. package/src/chat21-core/providers/firebase/firebase-conversations-handler.ts +16 -23
  105. package/src/chat21-core/providers/firebase/firebase-groups-handler.ts +15 -11
  106. package/src/chat21-core/providers/firebase/firebase-image-repo.ts +13 -4
  107. package/src/chat21-core/providers/firebase/firebase-init-service.ts +3 -3
  108. package/src/chat21-core/providers/firebase/firebase-notifications.ts +11 -9
  109. package/src/chat21-core/providers/firebase/firebase-presence.service.ts +14 -11
  110. package/src/chat21-core/providers/firebase/firebase-typing.service.ts +17 -11
  111. package/src/chat21-core/providers/firebase/firebase-upload.service.ts +12 -9
  112. package/src/chat21-core/providers/localSessionStorage.ts +2 -15
  113. package/src/chat21-core/providers/mqtt/chat-service.ts +12 -2
  114. package/src/chat21-core/providers/mqtt/mqtt-archivedconversations-handler.ts +1 -34
  115. package/src/chat21-core/providers/mqtt/mqtt-auth-service.ts +4 -6
  116. package/src/chat21-core/providers/mqtt/mqtt-conversations-handler.ts +1 -11
  117. package/src/chat21-core/providers/mqtt/mqtt-notifications.ts +13 -7
  118. package/src/chat21-core/providers/mqtt/mqtt-presence.service.ts +3 -3
  119. package/src/chat21-core/providers/mqtt/mqtt-typing.service.ts +3 -3
  120. package/src/chat21-core/providers/tiledesk/tiledesk-auth.service.ts +0 -1
  121. package/src/chat21-core/utils/user-typing/user-typing.component.scss +3 -3
  122. package/src/chat21-core/utils/utils.ts +47 -163
  123. package/src/launch.js +42 -12
  124. package/src/models/message.ts +0 -23
  125. package/src/test-new.html +0 -6
  126. package/src/app/providers/settings-saver.service.spec.ts +0 -17
  127. package/src/app/providers/settings-saver.service.ts +0 -56
  128. package/src/app/providers/storage.service.spec.ts +0 -16
  129. package/src/app/providers/storage.service.ts +0 -220
  130. package/src/app/utils/translations.ts +0 -122
@@ -1,9 +1,9 @@
1
- import { Component, EventEmitter, Input, OnInit, Output, SimpleChanges, OnChanges } from '@angular/core';
1
+ import { Component, EventEmitter, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';
2
2
  import { Globals } from 'src/app//utils/globals';
3
3
  import { AppConfigService } from 'src/app/providers/app-config.service';
4
- import { convertColorToRGBA } from 'src/chat21-core/utils/utils';
5
4
  import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
6
5
  import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
6
+ import { convertColorToRGBA } from 'src/chat21-core/utils/utils';
7
7
 
8
8
  @Component({
9
9
  selector: 'chat-conversation-header',
@@ -48,18 +48,15 @@ export class ConversationHeaderComponent implements OnInit, OnChanges {
48
48
 
49
49
  isButtonsDisabled = true;
50
50
 
51
- // public isTypings = false;
52
51
  public isDirect = false;
53
52
  public writingMessage: string;
54
- // public nameUserTypingNow: string;
55
- private setTimeoutWritingMessages;
56
53
 
57
54
  subscriptions = [];
58
55
 
59
56
  membersConversation = ['SYSTEM'];
60
57
  heightStatus: string = 'min'
61
58
 
62
- // text used within the html
59
+
63
60
  private API_URL: string;
64
61
  private logger: LoggerService = LoggerInstance.getInstance()
65
62
  constructor(
@@ -82,85 +79,12 @@ export class ConversationHeaderComponent implements OnInit, OnChanges {
82
79
  }
83
80
 
84
81
  ngAfterViewInit() {
85
- // this.isShowSpinner();
86
82
  this.logger.debug('[CONV-HEADER] --------ngAfterViewInit: conversation-header-------- ');
87
- // this.appStorageService.setItem('activeConversation', this.conversation.uid);
88
- // --------------------------- //
89
- // after animation intro
90
- // setTimeout(() => {
91
- // this.initAll();
92
- // this.setFocusOnId('chat21-main-message-context');
93
-
94
- // this.g.currentConversationComponent = this;
95
- // if (this.g.newConversationStart === true) {
96
- // this.onNewConversationComponentInit();
97
- // this.g.newConversationStart = false;
98
- // }
99
- //this.subscriptionTyping();
100
- // if (this.afConversationComponent) {
101
- // this.afConversationComponent.nativeElement.focus();
102
- // }
103
- this.isButtonsDisabled = false;
104
- // }, 300);
105
- this.setSubscriptions();
106
-
83
+ this.isButtonsDisabled = false;
107
84
  }
108
85
 
109
-
110
- // initializeTyping() {
111
- // this.logger.debug('[CONV-HEADER] membersconversation', this.membersConversation)
112
- // this.typingService.isTyping(this.idConversation, this.senderId, this.isDirect);
113
-
114
- // }
115
-
116
- // /** */
117
- private setSubscriptions() {
118
- // const that = this;
119
- // const conversationSelected = this.subscriptions.find(item => item.key === this.idConversation);
120
- // if (!conversationSelected) {
121
- // const subscribeBSIsTyping = this.typingService.BSIsTyping.subscribe((data: any) => {
122
- // this.logger.debug('[CONV-HEADER] ***** BSIsTyping *****', data);
123
- // if (data) {
124
- // const isTypingUid = data.uid; //support-group-...
125
- // if (this.idConversation === isTypingUid) {
126
- // that.subscribeTypings(data);
127
- // }
128
- // }
129
- // });
130
- // const subscribe = {key: this.idConversation, value: subscribeBSIsTyping };
131
- // this.subscriptions.push(subscribe);
132
- // }
133
- }
134
-
135
- /** */
136
- // subscribeTypings(data: any) {
137
- // const that = this;
138
- // try {
139
- // const key = data.uidUserTypingNow;
140
- // this.nameUserTypingNow = null;
141
- // if (data.nameUserTypingNow) {
142
- // this.nameUserTypingNow = data.nameUserTypingNow;
143
- // }
144
- // this.logger.debug('[CONV-HEADER] subscribeTypings data:', data);
145
- // const userTyping = this.membersConversation.includes(key);
146
- // if ( !userTyping) {
147
- // this.isTypings = true;
148
- // clearTimeout(this.setTimeoutWritingMessages);
149
- // this.setTimeoutWritingMessages = setTimeout(() => {
150
- // that.isTypings = false;
151
- // }, 2000);
152
- // }
153
- // } catch (error) {
154
- // this.logger.error('[CONV-HEADER] error: ', error);
155
- // }
156
-
157
- // }
158
-
159
-
160
86
  // =========== BEGIN: event emitter function ====== //
161
87
  returnHome() {
162
- // this.appStorageService.removeItem('activeConversation');
163
- // this.g.setParameter('activeConversation', null, false);
164
88
  this.onBack.emit();
165
89
  }
166
90
 
@@ -174,7 +98,6 @@ export class ConversationHeaderComponent implements OnInit, OnChanges {
174
98
  }
175
99
 
176
100
  closeWidget() {
177
- //this.g.setParameter('activeConversation', null, false);
178
101
  this.onCloseWidget.emit();
179
102
  }
180
103
  // =========== END: event emitter function ====== //
@@ -183,12 +106,10 @@ export class ConversationHeaderComponent implements OnInit, OnChanges {
183
106
  const url = this.API_URL + 'public/requests/' + this.idConversation + '/messages-user.html';
184
107
  const windowContext = this.windowContext;
185
108
  windowContext.open(url, '_blank');
186
- // this.isMenuShow = false;
187
109
  this.onMenuOptionShow.emit(false)
188
110
  }
189
111
 
190
112
  toggleSound() {
191
- //this.isMenuShow = false;
192
113
  this.onMenuOptionShow.emit(false)
193
114
  this.onSoundChange.emit(!this.soundEnabled)
194
115
  }
@@ -199,7 +120,6 @@ export class ConversationHeaderComponent implements OnInit, OnChanges {
199
120
 
200
121
  toggleMenu() {
201
122
  this.onMenuOptionShow.emit(!this.isMenuShow)
202
- // this.isMenuShow = !this.isMenuShow;
203
123
  }
204
124
 
205
125
  /**
@@ -218,15 +138,11 @@ export class ConversationHeaderComponent implements OnInit, OnChanges {
218
138
  /**
219
139
  * elimino tutte le sottoscrizioni
220
140
  */
221
- // tslint:disable-next-line:use-life-cycle-interface
222
141
  ngOnDestroy() {
223
142
  this.logger.debug('[CONV-HEADER] ngOnDestroy ------------------> this.subscriptions', this.subscriptions);
224
- //this.appStorageService.removeItem('activeConversation');
225
- // this.unsubscribe();
226
143
  this.unsubescribeAll()
227
144
  }
228
145
 
229
-
230
146
  /** */
231
147
  private unsubescribeAll() {
232
148
  this.logger.debug('[CONV-HEADER] unsubescribeAll: ', this.subscriptions);
@@ -10,7 +10,7 @@
10
10
  <path d="M15.41 7.41L14 6l-6 6 6 6 1.41-1.41L10.83 12l4.58-4.59z" />
11
11
  <title id="altIconTitle">{{ translationMap?.get('CLOSE') }}</title>
12
12
  </svg>
13
- </button>
13
+ </button>
14
14
 
15
15
  <!-- ICON OPEN EXTERNAL -->
16
16
  <button *ngIf="openExternalLinkButton" tabindex="1530" class="c21-header-button c21-right c21-button-clean" (click)="returnOpenExternal()">
@@ -18,28 +18,19 @@
18
18
  width="24px" height="24px" viewBox="0 0 24 24">
19
19
  <path d="M0 0h24v24H0z" fill="none"/>
20
20
  <path d="M19 19H5V5h7V3H5c-1.11 0-2 .9-2 2v14c0 1.1.89 2 2 2h14c1.1 0 2-.9 2-2v-7h-2v7zM14 3v2h3.59l-9.83 9.83 1.41 1.41L19 6.41V10h2V3h-7z"/>
21
- <!-- <title id="altIconTitle">{{ translationMap?.get('CLOSE') }}</title> -->
22
21
  </svg>
23
- </button>
22
+ </button>
24
23
 
25
- <!-- TITLE HEADER -->
26
- <div class="c21-title" [ngStyle]="{'color': stylesMap?.get('foregroundColor') }">
27
- <div class="titleText">{{button?.value}}</div>
28
- </div>
24
+ <!-- TITLE HEADER -->
25
+ <div class="c21-title" [ngStyle]="{'color': stylesMap?.get('foregroundColor') }">
26
+ <div class="titleText">{{button?.value}}</div>
27
+ </div>
29
28
  </div>
30
29
  <div class="c21-iframe">
31
30
  <div *ngIf="!hideSpinner" class="lds-roller">
32
31
  <div></div><div></div><div></div><div></div><div></div><div></div><div></div><div></div>
33
32
  </div>
34
- <!-- <span *ngIf="!hideSpinner">
35
- <div class="chat21-spinner active" id="chat21-spinner">
36
- <div class="chat21-bounce1"></div>
37
- <div class="chat21-bounce2"></div>
38
- <div class="chat21-bounce3"></div>
39
- <span>loading</span>
40
- </div>
41
- </span> -->
42
- <!-- referrerpolicy="no-referrer" -->
33
+
43
34
  <iframe id="contentFrame" #iframe allowfullscreen title="" width="100%" height="100%" style= "border:none;" [src] = "url" (load)="onIframeLoaded($event)" (error)="onError($event)"></iframe>
44
35
  </div>
45
36
  </div>
@@ -1,9 +1,9 @@
1
+ import { animate, style, transition, trigger } from '@angular/animations';
1
2
  import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
2
3
  import { DomSanitizer } from '@angular/platform-browser';
3
- import { convertColorToRGBA } from 'src/chat21-core/utils/utils';
4
- import { trigger, style, animate, transition } from '@angular/animations';
5
4
  import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
6
5
  import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
6
+ import { convertColorToRGBA } from 'src/chat21-core/utils/utils';
7
7
 
8
8
  @Component({
9
9
  selector: 'chat-internal-frame',
@@ -20,32 +20,8 @@ import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance'
20
20
  style({transform: 'translateX(0)', opacity: 1}),
21
21
  animate('400ms', style({transform: 'translateX(100%)', opacity: 0}))
22
22
  ])
23
- // state('in', style({
24
- // transform: 'translateX(100%)',
25
- // opacity: 0
26
- // })),
27
- // state('out', style({
28
- // transform: 'translateX(0)',
29
- // opacity: 1
30
- // })),
31
- // transition('in => out', animate('400ms', style({transform: 'translateX(0)', opacity: 1}))),
32
- // transition('out => in', animate('400ms', style({transform: 'translateX(100%)', opacity: 0})))
33
23
  ]
34
24
  )
35
- // trigger('enterAnimation', [
36
- // state('open', style({
37
- // opacity: 1,
38
- // })),
39
- // state('closed', style({
40
- // opacity: 1,
41
- // })),
42
- // transition('closed => open', [
43
- // animate('1s', style({transform: 'translateX(0)', opacity: 1}))
44
- // ]),
45
- // transition('open => closed', [
46
- // animate('0.5s', style({transform: 'translateX(100%)', opacity: 0}))
47
- // ]),
48
- // ]),
49
25
  ]
50
26
  })
51
27
  export class ConversationInternalFrameComponent implements OnInit {
@@ -37,8 +37,6 @@
37
37
 
38
38
  <div id="c21-footer">
39
39
  <div class="visible-text-area">
40
- <!-- isFilePendingToUpload || -->
41
- <!-- [attr.disabled] = "isFilePendingToLoad" -->
42
40
  <textarea
43
41
  start-focus-chat21-conversation-preview-component
44
42
  inputTextArea
@@ -55,18 +53,10 @@
55
53
  (paste)="onPaste($event)"
56
54
  placeholder="{{ translationMap?.get('LABEL_PLACEHOLDER') }}">
57
55
  </textarea>
58
-
59
- <!-- <chat-message-text-area
60
- [text]="textInputTextArea"
61
- (onChangeTextArea)="returnText($event)"
62
- ></chat-message-text-area> -->
63
-
56
+
64
57
  </div>
65
58
  <div tabindex="-1" class="chat21-textarea-button" id="chat21-button-send" [class.active]="!isFilePendingToLoad " (click)="onSendPressed($event)">
66
59
  <span class="v-align-center">
67
- <!-- <svg xmlns="http://www.w3.org/2000/svg" [ngStyle]="{'fill': stylesMap?.get('themeColor') }" width="24" height="24" viewBox="0 0 28 28">
68
- <path d="M2.01 21L23 12 2.01 3 2 10l15 2-15 2z" />
69
- </svg> -->
70
60
  <svg xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewBox="0 0 24 24" style="enable-background:new 0 0 24 24;" xml:space="preserve">
71
61
  <path d="M1.8,18.9V1.7L22,10.3L1.8,18.9z M3.9,15.6l12.6-5.4L3.9,4.9v3.7l6.4,1.6l-6.4,1.6V15.6z M3.9,15.6V4.9v7V15.6z"/>
72
62
  </svg>
@@ -1,4 +1,4 @@
1
- @import 'src/app/sass/variables';
1
+ // @import 'src/app/sass/variables';
2
2
 
3
3
 
4
4
  :host .c21-content ::ng-deep > chat-image {
@@ -22,7 +22,7 @@
22
22
  --modal-width: 80%;
23
23
 
24
24
  --content-height: 160px;
25
- --border-radius: #{$chat-footer-border-radius};
25
+ --border-radius: #{var(--chat-footer-border-radius)};
26
26
 
27
27
  background-color: rgba(0,0,0,0.4);
28
28
  height: 100%;
@@ -194,7 +194,7 @@
194
194
  resize: horizontal;
195
195
  overflow-y: auto;
196
196
  box-sizing: border-box;
197
- color: $black;
197
+ color: var(--black);
198
198
  min-width: 100%;
199
199
  outline: 0;
200
200
  resize: none;
@@ -247,7 +247,7 @@
247
247
  .visible-text-area {
248
248
  pointer-events: auto;
249
249
  border-radius: 10px;
250
- background-color: $chat-footer-background-color;
250
+ background-color: var(--chat-footer-background-color);
251
251
  -webkit-box-flex: 1;
252
252
  width: 88%;
253
253
  }
@@ -256,7 +256,7 @@
256
256
  pointer-events: auto;
257
257
  }
258
258
  .chat21-textarea-button {
259
- fill: $icon-fill-color;
259
+ fill: var(--icon-fill-color);
260
260
  pointer-events: auto;
261
261
  }
262
262
 
@@ -1,4 +1,4 @@
1
- import { Component, Input, OnInit, EventEmitter, Output, ViewChild, ElementRef } from '@angular/core';
1
+ import { Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild } from '@angular/core';
2
2
  import { DomSanitizer } from '@angular/platform-browser';
3
3
  import { MIN_WIDTH_IMAGES } from 'src/app/utils/constants';
4
4
  import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
@@ -47,7 +47,6 @@ export class ConversationPreviewComponent implements OnInit {
47
47
  ngOnInit() {
48
48
  this.logger.log('[LOADER-PREVIEW-PAGE] Hello!', this.textInputTextArea);
49
49
  this.setFocusOnId('chat21-main-message-context-preview')
50
- // tslint:disable-next-line: prefer-for-of
51
50
  // this.selectedFiles = this.files;
52
51
  for (let i = 0; i < this.attachments.length; i++) {
53
52
  this.logger.log('[LOADER-PREVIEW-PAGE] ngOnInit', this.attachments[i])
@@ -171,15 +170,13 @@ export class ConversationPreviewComponent implements OnInit {
171
170
  onTextAreaChange(){
172
171
  this.resizeInputField();
173
172
  this.resizeModalHeight()
174
- // this.setWritingMessages(this.textInputTextArea)
175
173
  }
176
174
 
177
175
  setFocusOnId(id) {
178
176
  setTimeout(function () {
179
177
  const textarea = document.getElementById(id);
180
178
  if (textarea) {
181
- // that.logger.debug('[CONV-FOOTER] 1--------> FOCUSSSSSS : ', textarea);
182
- textarea.setAttribute('value', ' ');
179
+ textarea.setAttribute('value', '');
183
180
  textarea.focus();
184
181
  }
185
182
  }, 500);
@@ -188,7 +185,6 @@ export class ConversationPreviewComponent implements OnInit {
188
185
  resizeInputField() {
189
186
  try {
190
187
  const target = document.getElementById('chat21-main-message-context-preview') as HTMLInputElement;
191
- // that.logger.debug('[CONV-FOOTER] H:: this.textInputTextArea', (document.getElementById('chat21-main-message-context') as HTMLInputElement).value , target.style.height, target.scrollHeight, target.offsetHeight, target.clientHeight);
192
188
  target.style.height = '100%';
193
189
  if (target.value === '\n') {
194
190
  target.value = '';
@@ -198,18 +194,11 @@ export class ConversationPreviewComponent implements OnInit {
198
194
  target.style.minHeight = this.HEIGHT_DEFAULT;
199
195
 
200
196
  } else {
201
- // that.logger.debug('[CONV-FOOTER] PASSO 3');
202
197
  target.style.height = this.HEIGHT_DEFAULT;
203
- // segno sto scrivendo
204
- // target.offsetHeight - 15 + 'px';
205
198
  }
206
- //this.setWritingMessages(target.value);
207
- // this.onChangeTextArea.emit({textAreaEl: target, minHeightDefault: this.HEIGHT_DEFAULT})
208
199
  } catch (e) {
209
200
  this.logger.error('[LOADER-PREVIEW-PAGE] > Error :' + e);
210
201
  }
211
- // tslint:disable-next-line:max-line-length
212
- // that.logger.debug('[CONV-FOOTER] H:: this.textInputTextArea', this.textInputTextArea, target.style.height, target.scrollHeight, target.offsetHeight, target.clientHeight);
213
202
  }
214
203
 
215
204
 
@@ -235,7 +224,6 @@ export class ConversationPreviewComponent implements OnInit {
235
224
  }
236
225
 
237
226
  private restoreTextArea() {
238
- // that.logger.debug('[CONV-FOOTER] AppComponent:restoreTextArea::restoreTextArea');
239
227
  this.resizeInputField();
240
228
  const textArea = (<HTMLInputElement>document.getElementById('chat21-main-message-context-preview'));
241
229
  this.textInputTextArea = ''; // clear the textarea
@@ -257,11 +245,6 @@ export class ConversationPreviewComponent implements OnInit {
257
245
  this.textInputTextArea = ((document.getElementById('chat21-main-message-context-preview') as HTMLInputElement).value);
258
246
  if (keyCode === 13) {
259
247
  if (this.textInputTextArea && this.textInputTextArea.trim() !== '') {
260
- // that.logger.debug('[CONV-FOOTER] sendMessage -> ', this.textInputTextArea);
261
- // this.resizeInputField();
262
- // this.messagingService.sendMessage(msg, TYPE_MSG_TEXT);
263
- // this.setDepartment();
264
- // this.textInputTextArea = replaceBr(this.textInputTextArea);
265
248
  this.onSendAttachment.emit(this.textInputTextArea);
266
249
  this.restoreTextArea();
267
250
  }
@@ -1,45 +1,23 @@
1
1
 
2
2
  <!-- ******* EYE-CATCHER CARD - DISPLAYED ONLY IS-MOBILE IS FALSE ******** -->
3
3
  <div *ngIf="!g.isOpenNewMessage" class="eye-catcher-card scale-in-center"
4
- [class.mobile]="g.isMobile"
5
- [ngClass]="{'c21-align-left' : g.align === 'left', 'c21-align-right' : g.align !== 'left'}"
6
- [ngStyle]="{ 'display':g.displayEyeCatcherCard, 'bottom': g.marginY+'px', 'left':(g.align==='left')?g.marginX+'px':'', 'right':(g.align==='right')?g.marginX+'px':'' }"
7
- (mouseenter) ="mouseEnter()" (mouseleave) ="mouseLeave()">
4
+ [class.mobile]="g.isMobile"
5
+ [ngClass]="{'c21-align-left' : g.align === 'left', 'c21-align-right' : g.align !== 'left'}"
6
+ [ngStyle]="{ 'display':g.displayEyeCatcherCard, 'bottom': g.marginY+'px', 'left':(g.align==='left')?g.marginX+'px':'', 'right':(g.align==='right')?g.marginX+'px':'' }">
8
7
 
9
-
10
-
11
- <!-- ******* EYE-CATCHER CLOSE BTN IF IS-MOBILE IS TRUE ******* -->
12
- <!-- <div *ngIf="!g.isMobile">
13
- <div class="eye-catcher-card-close-btn-img-is-mobile-wrapper" (click)="closeEyeCatcherCardWhenMobile()"
14
- [ngStyle]="{'display':displayEyeCatcherCardCloseBtnIsMobileWrapper}">
15
- <img class="eye-catcher-card-close-btn-img-is-mobile" src="{{g.baseLocation}}/assets/images/tiledesk-chat-close-dark-gray.svg"/>
16
- </div>
17
- </div> -->
18
-
19
- <!-- <button (click)="rotate()">Press me to rotate</button> -->
20
- <!-- <div class="eye-catcher_row" (mouseenter) ="mouseEnter()" (mouseleave) ="mouseLeave()" (click)="openChatFromEyeCatcherCard()"> -->
21
8
  <div class="eye-catcher_row">
22
9
 
23
10
  <!-- ******* EYE-CATCHER CLOSE BTN IF IS-MOBILE IS FALSE ******** -->
24
- <!-- <div> -->
25
- <div class="eye-catcher-card-close-btn-wrapper">
26
- <!-- [ngStyle]="{'display':displayEyeCatcherCardCloseBtnWrapper}" (mouseenter) ="mouseEnter()" (mouseleave) ="mouseLeave()"></div>
27
- [ngStyle]="{'display':displayEyeCatcherCardCloseBtn}"
28
- -->
29
- <div class="eye-catcher-card-close-btn" (click)="closeEyeCatcherCard()">
30
- <svg class="eye-catcher-card-close-btn-img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white" width="24px" height="24px">
31
- <path d="M0 0h24v24H0V0z" fill="none"/>
32
- <path d="M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z"/>
33
- </svg>
34
- <!-- <img class="eye-catcher-card-close-btn-img" src="{{g.baseLocation}}/assets/images/tiledesk-chat-close.svg"/> -->
35
- </div>
11
+ <div class="eye-catcher-card-close-btn-wrapper">
12
+ <div class="eye-catcher-card-close-btn" (click)="closeEyeCatcherCard()">
13
+ <svg class="eye-catcher-card-close-btn-img" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 24 24" fill="white" width="24px" height="24px">
14
+ <path d="M0 0h24v24H0V0z" fill="none"/>
15
+ <path d="M18.3 5.71c-.39-.39-1.02-.39-1.41 0L12 10.59 7.11 5.7c-.39-.39-1.02-.39-1.41 0-.39.39-.39 1.02 0 1.41L10.59 12 5.7 16.89c-.39.39-.39 1.02 0 1.41.39.39 1.02.39 1.41 0L12 13.41l4.89 4.89c.39.39 1.02.39 1.41 0 .39-.39.39-1.02 0-1.41L13.41 12l4.89-4.89c.38-.38.38-1.02 0-1.4z"/>
16
+ </svg>
36
17
  </div>
37
- <!-- </div> -->
18
+ </div>
38
19
 
39
20
  <div class="eye-catcher_column ec_left" (click)="openChatFromEyeCatcherCard()">
40
- <!-- <div class="eye-catcher-card-img-wrapper" [ngStyle]="{'background-color': g.themeColor }">
41
- <img class="chat21-card-img" src="{{g.baseLocation}}/assets/images/tiledesk-chat-ballon-big-badge.svg"/>
42
- </div> -->
43
21
  <div [@rotatedState]='state' class="eye-catcher-card-emoticons-wrapper">
44
22
  <span *ngIf="emoticon" class="chat21-card-emoticons">{{emoticon}}</span>
45
23
  </div>
@@ -49,16 +27,6 @@
49
27
  <div class="eye-catcher-card-text-wrapper">
50
28
  <p class="eye-catcher-card-title">{{title}}</p>
51
29
 
52
- <!-- Need Help? -->
53
- <!-- <p *ngIf="g.calloutTitle !== ''; else calloutTitle_placeholder" class="eye-catcher-card-title">
54
- {{ g.calloutTitle }}
55
- </p>
56
- <ng-template #calloutTitle_placeholder>
57
- <p class="eye-catcher-card-title">
58
- {{ g.CALLOUT_TITLE_PLACEHOLDER }}
59
- </p>
60
- </ng-template> -->
61
-
62
30
  <!-- Click here and start chatting with us! -->
63
31
  <p *ngIf="g.calloutMsg !== ''; else calloutMsg_placeholder" class="eye-catcher-card-msg">
64
32
  {{ g.calloutMsg }}
@@ -3,8 +3,7 @@
3
3
  * EYE-CATCHER CARD & EYE-CATCHER CARD CLOSE BTN
4
4
  * *********************************************
5
5
  */
6
- @import 'src/app/sass/variables';
7
- // @import '../../../sass/variables';
6
+ // @import 'src/app/sass/variables';
8
7
 
9
8
 
10
9
 
@@ -1,9 +1,8 @@
1
- import { Component, OnInit, Output, EventEmitter } from '@angular/core';
1
+ import { Component, EventEmitter, OnInit, Output } from '@angular/core';
2
2
  import { Globals } from '../../utils/globals';
3
- import { isEmoji } from '../../utils/utils';
4
3
 
5
4
 
6
- import { trigger, state, style, animate, transition } from '@angular/animations';
5
+ import { trigger } from '@angular/animations';
7
6
  import { LoggerService } from '../../../chat21-core/providers/abstract/logger.service';
8
7
  import { LoggerInstance } from '../../../chat21-core/providers/logger/loggerInstance';
9
8
 
@@ -38,7 +38,6 @@
38
38
  </span>
39
39
  </form>
40
40
 
41
- <!-- [disabled]="!preChatFormGroupCustom?.valid" -->
42
41
  <div class="c21-new-conversation">
43
42
  <button [tabindex]="lastTabIndex" class="c21-button-primary"
44
43
  (click)="onSubmitPreChatForm()"
@@ -1,4 +1,4 @@
1
- @import 'src/app/sass/variables';
1
+ // @import 'src/app/sass/variables';
2
2
 
3
3
  .c21-label-button {
4
4
  font-size: 1.2em !important;
@@ -1,12 +1,11 @@
1
- import { FormGroup, FormBuilder, FormControl, Validators } from '@angular/forms';
1
+ import { Component, EventEmitter, Input, OnInit, Output, SimpleChange } from '@angular/core';
2
+ import { FormBuilder, FormControl, FormGroup, Validators } from '@angular/forms';
3
+ import * as parser from 'accept-language-parser';
2
4
  import { FormArray } from 'src/chat21-core/models/formArray';
3
- import { Component, OnInit, SimpleChange, EventEmitter, Output, Input, ChangeDetectorRef } from '@angular/core';
4
- import { isString } from 'util';
5
5
  import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
6
+ import { CustomTranslateService } from 'src/chat21-core/providers/custom-translate.service';
6
7
  import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
7
8
  import { validateRegex } from 'src/chat21-core/utils/utils';
8
- import * as parser from 'accept-language-parser'
9
- import { CustomTranslateService } from 'src/chat21-core/providers/custom-translate.service';
10
9
 
11
10
  @Component({
12
11
  selector: 'chat-form-builder',
@@ -32,10 +32,9 @@ input[type="checkbox"] {
32
32
  border: 1px solid var(--themeColor);
33
33
  border-radius:3px;
34
34
  -webkit-border-radius:3px;
35
- -webkit-appearance: none;
35
+ appearance: none;
36
36
  -webkit-transition: box-shadow 200ms;
37
37
  transition: box-shadow 200ms;
38
-
39
38
  }
40
39
 
41
40
 
@@ -1,6 +1,5 @@
1
- import { Component, Input, OnInit, ElementRef, EventEmitter, Output, SimpleChanges } from '@angular/core';
2
- import { FormGroupDirective } from '@angular/forms';
3
- import { FormGroup } from '@angular/forms';
1
+ import { Component, ElementRef, EventEmitter, Input, OnInit, Output, SimpleChanges } from '@angular/core';
2
+ import { FormGroup, FormGroupDirective } from '@angular/forms';
4
3
  import { FormArray } from '../../../../../chat21-core/models/formArray';
5
4
 
6
5
  @Component({
@@ -1,4 +1,3 @@
1
- import { element } from 'protractor';
2
1
  import { Component, Input, OnInit } from '@angular/core';
3
2
  import { FormGroup, FormGroupDirective } from '@angular/forms';
4
3
  import { FormArray } from '../../../../../chat21-core/models/formArray';
@@ -1,4 +1,4 @@
1
- @import 'src/app/sass/variables';
1
+ // @import 'src/app/sass/variables';
2
2
 
3
3
  :host {
4
4
  --foregroundColor: #0000;
@@ -30,16 +30,6 @@
30
30
  background-color: #ffffff;
31
31
  vertical-align: middle;
32
32
  }
33
- // input {
34
- // display: block;
35
- // padding: 11px 10px 8px 10px;
36
- // color: #616161;
37
- // font-size: 1.3em;
38
- // font-weight: 300;
39
- // line-height: 1.2em;
40
- // -webkit-box-shadow: none;
41
- // box-shadow: none;
42
- // }
43
33
  input::placeholder {
44
34
  color: rgb(179, 182, 184);
45
35
  font-weight: initial;
@@ -102,11 +92,11 @@ input {
102
92
  background-size: 0 2px,100% 1px;
103
93
  background-repeat: no-repeat;
104
94
  background-position: center bottom,center calc(100% - 1px);
105
- background-color:$chat-footer-background-color;
95
+ background-color: var(--chat-footer-background-color);
106
96
  transition: background 0s ease-out;
107
97
  float: none;
108
98
  box-shadow: none;
109
- border-radius: $chat-footer-border-radius;
99
+ border-radius: var(--chat-footer-border-radius);
110
100
  font-weight: 400;
111
101
  height: 48px;
112
102
  padding: 0px 16px;
@@ -1,5 +1,4 @@
1
- import { style } from '@angular/animations';
2
- import { Component, ElementRef, Input, OnInit, SimpleChange, ViewChild, OnChanges, Output, EventEmitter } from '@angular/core';
1
+ import { Component, ElementRef, EventEmitter, Input, OnInit, Output, SimpleChange, ViewChild } from '@angular/core';
3
2
  import { FormGroup, FormGroupDirective } from '@angular/forms';
4
3
  import { FormArray } from '../../../../../chat21-core/models/formArray';
5
4
 
@@ -1,17 +1,4 @@
1
1
  <form [formGroup]="form">
2
- <!-- <div class="c21-input-container" >
3
- <input
4
- class="form-control"
5
- tabindex="1411"
6
- type="text"
7
- id="form-field-name"
8
- [formControlName]="element.name"
9
- [placeholder]="element.label"
10
- [ngClass]="{'errors': form.controls[element.name].errors && form.controls[element.name].touched }">
11
- <!- - <small [hidden]="form.controls[element.name].valid || form.controls[element.name].pristine">
12
- Field required
13
- </small> - ->
14
- </div> -->
15
2
  <div class="form-group label-floating" id="div_input" #div_input
16
3
  [ngClass]="{'is-empty': !form?.controls[element.name]?.value}">
17
4
  <label class="control-label">
@@ -1,4 +1,4 @@
1
- @import 'src/app/sass/variables';
1
+ // @import 'src/app/sass/variables';
2
2
 
3
3
  :host {
4
4
  --foregroundColor: #0000;
@@ -96,14 +96,14 @@ textarea {
96
96
  background-size: 0 2px,100% 1px;
97
97
  background-repeat: no-repeat;
98
98
  background-position: center bottom,center calc(100% - 1px);
99
- background-color: $chat-footer-background-color;
99
+ background-color: var(--chat-footer-background-color);
100
100
  transition: background 0s ease-out;
101
101
  float: none;
102
102
  box-shadow: none;
103
- border-radius: $chat-footer-border-radius;
103
+ border-radius: var(--chat-footer-border-radius);
104
104
  font-weight: 400;
105
105
  // height: 36px;
106
- padding: 0px 16px;
106
+ padding: 8px 16px;
107
107
  font-size: 14px;
108
108
  line-height: 1.42857143;
109
109
  display: block;