@chat21/chat21-ionic 3.4.13-rc5 → 3.4.14-rc1

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/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@chat21/chat21-ionic",
3
3
  "author": "Tiledesk SRL",
4
- "version": "3.4.13-rc5",
4
+ "version": "3.4.14-rc1",
5
5
  "license": "MIT License",
6
6
  "homepage": "https://tiledesk.com/",
7
7
  "repository": {
@@ -1242,9 +1242,9 @@ export class AppComponent implements OnInit {
1242
1242
  }
1243
1243
 
1244
1244
  goToDashboardLogin(){
1245
- let DASHBOARD_URL = this.appConfigProvider.getConfig().dashboardUrl + '#/login'
1246
- const myWindow = window.open(DASHBOARD_URL, '_self');
1247
- myWindow.focus();
1245
+ // let DASHBOARD_URL = this.appConfigProvider.getConfig().dashboardUrl + '#/login'
1246
+ // const myWindow = window.open(DASHBOARD_URL, '_self');
1247
+ // myWindow.focus();
1248
1248
  }
1249
1249
 
1250
1250
 
@@ -55,7 +55,7 @@
55
55
  <div *ngIf="!isMobile" class="manage_conversation_info_container" [ngClass]="{'close': !openInfoConversation, 'mobile': isMobile}">
56
56
  <ion-button fill="clear" *ngIf="openInfoConversation" (click)="onOpenCloseInfoConversationFN()"
57
57
  tooltip="{{translationMap?.get('LABEL_CLOSE_GROUP')}}" placement="bottom">
58
- <ion-icon name="arrow-forward-outline"></ion-icon>
58
+ <ion-icon name="chevron-forward-outline"></ion-icon>
59
59
  <!-- {{translationMap.get('LABEL_CLOSE_GROUP')}} -->
60
60
  <!-- <ng-template #closeGroupTooltip>
61
61
  <span> {{ translationMap?.get('LABEL_CLOSE_GROUP')}} </span>
@@ -63,7 +63,7 @@
63
63
  </ion-button>
64
64
  <ion-button fill="clear" *ngIf="!openInfoConversation" (click)="onOpenCloseInfoConversationFN()"
65
65
  tooltip="{{ translationMap?.get('LABEL_OPEN_INFO_CONVERSATION')}}" placement="bottom">
66
- <ion-icon name="arrow-back-outline"></ion-icon>
66
+ <ion-icon name="chevron-back-outline"></ion-icon>
67
67
  <!-- <ng-template #openGroupTooltip>
68
68
  <span> {{ translationMap?.get('LABEL_OPEN_INFO_CONVERSATION')}} </span>
69
69
  </ng-template> -->
@@ -107,31 +107,33 @@
107
107
  right: 0px;
108
108
  }
109
109
  &:not(.mobile):not(.close){
110
- right: calc(320px + var(--padding-conversation-detail));
111
- top: calc(60px + var(--padding-conversation-detail));
112
- }
113
- &::before{
114
- content: "";
115
- width: 102px;
116
- height: 34px;
117
- background-image: url(data:image/svg+xml;base64,PHN2ZyBmaWxsPSJub25lIiBoZWlnaHQ9IjM0IiB2aWV3Qm94PSIwIDAgMTAyIDM0IiB3aWR0aD0iMTAyIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPgogICAgPHBhdGggZD0ibTEwMiAwaC0xMDJsLjA3MTQwOC40MTk3NTNjMTEuMzE5MTkyLS4wMTU1NTggMjIuMjg4MTkyIDMuOTIwMzM3IDMxLjAxMjA5MiAxMS4xMjc2NDdsNy40ODk0IDYuNTAyIDEuNjUwOCAxLjQyMjkgNi42OTU1IDUuNzhjNi41Mzc0IDUuNjQwNSAxNC44ODU3IDguNzQ1MSAyMy41MjI3IDguNzQ3N2gzMS41NTQxeiIKICAgICAgICAgIGZpbGw9IiNlMmU4ZWYiLz4KPC9zdmc+);
118
- position: relative;
119
- left: 50px;
120
- z-index: -1;
110
+ right: calc(325px + var(--padding-conversation-detail));
111
+ top: calc(62px + var(--padding-conversation-detail));
121
112
  }
122
113
 
114
+
123
115
  ion-button {
124
116
  text-transform: unset;
125
117
  color: var(--basic-blue);
118
+ --padding-start: 0px;
119
+ --padding-end: 0px;
120
+ height: auto;
121
+ border-radius: 50%;
122
+ background-color: #f5f8fa;
123
+ --color: var(--icon-color);
124
+ border: 1px solid transparent;
125
+ box-shadow: 0 0px 2px rgba(0, 0, 0, 0.3);
126
+
126
127
  &:hover {
127
128
  --background-hover: transparent;
128
129
  text-decoration: underline;
129
130
  text-decoration-color: var(--basic-blue);
131
+ border: 1px solid var(--icon-color);
130
132
  }
131
133
  }
132
134
 
133
135
  ion-icon{
134
- margin: 5px;
136
+ margin: 2px;
135
137
  color: var(--icon-color)
136
138
  }
137
139
  }
@@ -10,8 +10,7 @@
10
10
  position: relative;
11
11
  display: inline-flex;
12
12
  width: 100%;
13
- padding: 0px 12px;
14
- margin: 6px 0px;
13
+ padding: 8px;
15
14
  }
16
15
 
17
16
  audio {
@@ -58,6 +58,13 @@
58
58
 
59
59
  </div>
60
60
  </div>
61
+ <!-- COPILOT-OPTION -->
62
+ <div *ngIf="isCopilotEnabled" class="copilot-container" id="copilot" tooltip="{{translationsMap?.get('COPILOT.SOLVE_WITH_AI')}}" placement="top">
63
+ <ion-button id="copilot" fill="clear" (click)="onOpenSection('copilot')">
64
+ <ion-icon class="channel-icon" src="assets/images/icons/copilot.svg"></ion-icon>
65
+ {{translationsMap?.get('COPILOT.SOLVE_WITH_AI')}}
66
+ </ion-button>
67
+ </div>
61
68
 
62
69
  <!-- <div>
63
70
  <ion-button class="live" ion-button color="danger">
@@ -130,6 +130,41 @@ ion-header {
130
130
  margin-right: 20px;
131
131
  }
132
132
  }
133
+
134
+ .copilot-container{
135
+ color: var(--icon-color);
136
+ position: relative;
137
+ display: flex;
138
+ align-items: center;
139
+ border-radius: 4px;
140
+
141
+ ion-button{
142
+ background-color: var(--copilot-background);
143
+ --color: var(--copilot-color);
144
+ padding-bottom: 0px;
145
+ --padding-start: 0px;
146
+ --ripple-color: transparent;
147
+ text-transform: unset;
148
+ padding: var(--button-padding);
149
+ border-radius: var(--button-border-radius);
150
+
151
+ ion-icon{
152
+ margin-right: 4px;
153
+ margin-left: 4px;
154
+ }
155
+
156
+ &#copilot {
157
+ &:hover{
158
+ ion-icon {
159
+ transition: transform 1s ease-in-out;
160
+ transform: rotate(180deg);
161
+ color: #ac87eb;
162
+ }
163
+ }
164
+
165
+ }
166
+ }
167
+ }
133
168
  }
134
169
 
135
170
  .avatar-and-typing-wpr{
@@ -170,7 +205,7 @@ ion-header {
170
205
  flex-direction: column;
171
206
  justify-content: center;
172
207
  margin-left: 12px;
173
- width: 80%;
208
+ width: 70%;
174
209
  }
175
210
 
176
211
  .user-presence {
@@ -34,14 +34,14 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
34
34
  @Input() conv_type: string
35
35
  @Input() liveInfo: {sourcePage: string, sourceTitle: string}
36
36
  @Input() isMobile: boolean
37
+ @Input() isCopilotEnabled: boolean = false;
37
38
  @Input() translationsMap: Map<string, string>
39
+ @Output() onClickHeaderSection = new EventEmitter();
38
40
  @Output() onOpenInfoConversation = new EventEmitter<boolean>();
39
41
  conversationWithFullname: string
40
42
  openInfoConversation = false
41
43
 
42
44
  isDirect = false
43
- borderColor = '#ffffff'
44
- fontColor = '#949494'
45
45
  platformName: string
46
46
  // conv_closed: boolean = false;
47
47
  IS_ON_MOBILE_DEVICE: boolean
@@ -66,7 +66,7 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
66
66
  // ----------------------------------------------------
67
67
  ngOnInit() {
68
68
 
69
- this.logger.log('[CONVS-DETAIL][HEADER] - (ngOnInit) - idLoggedUser', this.idLoggedUser,)
69
+ this.logger.log('[CONVS-DETAIL][HEADER] - (ngOnInit) - idLoggedUser', this.idLoggedUser,this.translationsMap)
70
70
  this.logger.log('[CONVS-DETAIL][HEADER] - (ngOnInit) - conversationAvatar', this.conversationAvatar,)
71
71
  this.logger.log('[CONVS-DETAIL][HEADER] - (ngOnInit) - conv_type', this.conv_type)
72
72
  this.IS_ON_MOBILE_DEVICE = isOnMobileDevice()
@@ -125,6 +125,9 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
125
125
  this.router.navigateByUrl('/conversations-list')
126
126
  }
127
127
 
128
+ onOpenSection(section){
129
+ this.onClickHeaderSection.emit(section)
130
+ }
128
131
  onOpenCloseInfoConversation(){
129
132
  this.openInfoConversation = !this.openInfoConversation
130
133
  this.onOpenInfoConversation.emit(this.openInfoConversation)
@@ -28,16 +28,6 @@
28
28
  </div>
29
29
  </div>
30
30
 
31
- <div *ngIf="isCopilotEnabled">
32
- <!-- COPILOT-OPTION -->
33
- <div class="section-option" id="copilot" tooltip="{{translationMap?.get('COPILOT.ASK_AI')}}" placement="top">
34
- <ion-button id="copilot" fill="clear" [class.active]="section ==='copilot'" (click)="onOpenSection('copilot')">
35
- <ion-icon class="channel-icon" src="assets/images/icons/copilot.svg"></ion-icon>
36
- {{translationMap?.get('COPILOT.ASK_AI')}}
37
- </ion-button>
38
- </div>
39
- </div>
40
-
41
31
  </div>
42
32
 
43
33
  <ion-row id="message-email" [style.display]="section==='email'? 'flex': 'none'">
@@ -417,6 +417,7 @@ export class MessageTextAreaComponent implements OnInit, AfterViewInit, OnChange
417
417
  translationMap: this.translationMap};
418
418
  const modal: HTMLIonModalElement =
419
419
  await this.modalController.create({
420
+ cssClass: 'sendMail-modal-class',
420
421
  component: SendEmailModal,
421
422
  componentProps: attributes,
422
423
  swipeToClose: false,
@@ -20,7 +20,21 @@ ion-content{
20
20
  padding-top: 40px;
21
21
  padding-left: 8%;
22
22
  padding-right: 8%;
23
-
23
+ height: 100%;
24
+ form{
25
+ height: 100%;
26
+ }
27
+ .field-wrapper-email{
28
+ height: 75%;
29
+ ion-textarea{
30
+ min-height: calc(100% - 70px);
31
+ max-height: calc(100% - 70px);
32
+
33
+ &::ng-deep textarea {
34
+ height: 100% !important;
35
+ }
36
+ }
37
+ }
24
38
  }
25
39
 
26
40
  .content-container[isMobile= true]{
@@ -124,7 +138,7 @@ ion-input{
124
138
  background-color: #f1f4f7;
125
139
  border: 0;
126
140
  border-radius: 6px;
127
- padding: 34px;
141
+ padding: 34px 34px 0px 34px;
128
142
  font-size: 16px;
129
143
  overflow: hidden;
130
144
 
@@ -139,8 +153,8 @@ ion-input{
139
153
  --padding-bottom: 12px;
140
154
  --padding-start:12px;
141
155
  --padding-end: 12px;
142
- min-height: 184px;
143
- max-height: 184px;
156
+ min-height: 284px;
157
+ max-height: 284px;
144
158
  color: rgb(98, 112, 139);
145
159
 
146
160
  &::ng-deep textarea {
@@ -157,8 +171,8 @@ ion-label.message-placeholder{
157
171
 
158
172
  .info-wrapper{
159
173
  display: flex;
160
- flex-direction: column;
161
174
  -webkit-box-align: center;
175
+ justify-content: center;
162
176
  align-items: center;
163
177
  margin-top: 20px;
164
178
  // padding-bottom: 30px;
@@ -166,9 +180,10 @@ ion-label.message-placeholder{
166
180
  text-align: center;
167
181
  color: rgb(98, 112, 139);
168
182
  font-size: 13px;
183
+ gap: 5px;
169
184
 
170
185
  img{
171
- max-width: 35%;
186
+ max-width: 20%;
172
187
  max-height: 50px;
173
188
  }
174
189
  }
@@ -46,6 +46,8 @@
46
46
  [liveInfo]="liveInfo"
47
47
  [translationsMap]="translationsHeaderMap"
48
48
  [conv_type]="conv_type"
49
+ [isCopilotEnabled]="isCopilotEnabled"
50
+ (onClickHeaderSection)="onClickHeaderSection($event)"
49
51
  (onOpenInfoConversation)="onOpenCloseInfoConversation($event)">
50
52
  </app-header-conversation-detail>
51
53
 
@@ -700,6 +700,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
700
700
  'ARRAY_DAYS',
701
701
  'LIVE',
702
702
  'Resolve',
703
+ 'COPILOT.SOLVE_WITH_AI'
703
704
  ]
704
705
 
705
706
  const keysContentDetail = [
@@ -1880,6 +1881,11 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1880
1881
  if (event === 'email' || event === 'templates') {
1881
1882
  this.getLeadDetail()
1882
1883
  }
1884
+
1885
+ }
1886
+
1887
+ onClickHeaderSection(event: string){
1888
+ this.logger.debug('[CONVS-DETAIL] onClickHeaderSection - section ', event)
1883
1889
  if(event === 'copilot'){
1884
1890
  this.SHOW_COPILOT_SUGGESTIONS = !this.SHOW_COPILOT_SUGGESTIONS
1885
1891
  this.SHOW_CANNED_RESPONSES = false
@@ -1887,6 +1893,7 @@ export class ConversationDetailPage implements OnInit, OnDestroy, AfterViewInit
1887
1893
  }
1888
1894
  }
1889
1895
 
1896
+
1890
1897
  // -------------- START SCROLL/RESIZE -------------- //
1891
1898
  /** */
1892
1899
  resizeTextArea() {
@@ -307,7 +307,8 @@
307
307
  },
308
308
  "HELLO":"Hello",
309
309
  "COPILOT": {
310
- "ASK_AI":"Ask to AI",
310
+ "ASK_AI":"Ask AI",
311
+ "SOLVE_WITH_AI":"Solve with AI",
311
312
  "NO_SUGGESTIONS_PRESENT":"No suggestions found",
312
313
  "INSERT_PROMPT_HERE":"Inster a prompt here",
313
314
  "HOW_CAN_I_HELP_YOU":"How can i help you?"
@@ -308,6 +308,7 @@
308
308
  "HELLO":"Ciao",
309
309
  "COPILOT": {
310
310
  "ASK_AI":"Chiedi all'AI",
311
+ "SOLVE_WITH_AI":"Risolvi con AI",
311
312
  "NO_SUGGESTIONS_PRESENT":"Nessun suggerimento trovato",
312
313
  "INSERT_PROMPT_HERE":"Inserisci un prompt qui",
313
314
  "HOW_CAN_I_HELP_YOU":"Come posso aiutarti?"
package/src/global.scss CHANGED
@@ -680,7 +680,11 @@ ul.dropdown-menu > li > a {
680
680
  .modal-wrapper{
681
681
  border-radius: 16px !important;
682
682
  }
683
-
683
+
684
+ .sendMail-modal-class .modal-wrapper{
685
+ --height: 90%;
686
+ --width: 70%;
687
+ }
684
688
  .json-modal-class .modal-wrapper{
685
689
  --height: 90%;
686
690
  --width: 70%;
@@ -58,6 +58,11 @@ body {
58
58
  --textarea-color: #06132b;
59
59
  // ***** Conversation-detail: end ***** //
60
60
 
61
+ // ***** Conversation-detail: HEADER: start ***** //
62
+ --copilot-background: #dce9ff;
63
+ --copilot-color: var(--basic-blue);
64
+ // ***** Conversation-detail: HEADER: end ***** //
65
+
61
66
  // ***** Conversation-detail PRIVATE-MSG: start ***** //
62
67
  --bubble-lightyellow: rgb(255, 247, 237);
63
68
  --bubble-privateMsg: rgb(254, 214, 168);
@@ -154,4 +159,9 @@ body {
154
159
  --tooltip-color: white;
155
160
  // ***** Sidebar: end ***** //
156
161
 
162
+ // ***** BUTTONS: start ***** //
163
+ --button-padding: 4px 10px;
164
+ --button-border-radius: 9999px;
165
+ // ***** BUTTONS: end ***** //
166
+
157
167
  }