@chat21/chat21-ionic 3.0.97-rc.1 → 3.0.97-rc.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +19 -0
- package/Dockerfile +1 -1
- package/GoogleService-Info.plist +36 -0
- package/config.xml +6 -3
- package/google-services.json +40 -0
- package/package.json +8 -13
- package/resources/ios/icon/icon-1024.png +0 -0
- package/resources/ios/icon/icon-108@2x.png +0 -0
- package/resources/ios/icon/icon-20.png +0 -0
- package/resources/ios/icon/icon-20@2x.png +0 -0
- package/resources/ios/icon/icon-20@3x.png +0 -0
- package/resources/ios/icon/icon-24@2x.png +0 -0
- package/resources/ios/icon/icon-27.5@2x.png +0 -0
- package/resources/ios/icon/icon-29.png +0 -0
- package/resources/ios/icon/icon-29@2x.png +0 -0
- package/resources/ios/icon/icon-29@3x.png +0 -0
- package/resources/ios/icon/icon-40.png +0 -0
- package/resources/ios/icon/icon-40@2x.png +0 -0
- package/resources/ios/icon/icon-40@3x.png +0 -0
- package/resources/ios/icon/icon-44@2x.png +0 -0
- package/resources/ios/icon/icon-50.png +0 -0
- package/resources/ios/icon/icon-50@2x.png +0 -0
- package/resources/ios/icon/icon-60.png +0 -0
- package/resources/ios/icon/icon-60@2x.png +0 -0
- package/resources/ios/icon/icon-60@3x.png +0 -0
- package/resources/ios/icon/icon-72.png +0 -0
- package/resources/ios/icon/icon-72@2x.png +0 -0
- package/resources/ios/icon/icon-76.png +0 -0
- package/resources/ios/icon/icon-76@2x.png +0 -0
- package/resources/ios/icon/icon-83.5@2x.png +0 -0
- package/resources/ios/icon/icon-86@2x.png +0 -0
- package/resources/ios/icon/icon-98@2x.png +0 -0
- package/resources/ios/icon/icon.png +0 -0
- package/resources/ios/icon/icon@2x.png +0 -0
- package/resources/ios/icon.jpg +0 -0
- package/resources/ios/splash/Default-1792h~iphone.png +0 -0
- package/resources/ios/splash/Default-2436h.png +0 -0
- package/resources/ios/splash/Default-2688h~iphone.png +0 -0
- package/resources/ios/splash/Default-568h@2x~iphone.png +0 -0
- package/resources/ios/splash/Default-667h.png +0 -0
- package/resources/ios/splash/Default-736h.png +0 -0
- package/resources/ios/splash/Default-Landscape-1792h~iphone.png +0 -0
- package/resources/ios/splash/Default-Landscape-2436h.png +0 -0
- package/resources/ios/splash/Default-Landscape-2688h~iphone.png +0 -0
- package/resources/ios/splash/Default-Landscape-736h.png +0 -0
- package/resources/ios/splash/Default-Landscape@2x~ipad.png +0 -0
- package/resources/ios/splash/Default-Landscape@~ipadpro.png +0 -0
- package/resources/ios/splash/Default-Landscape~ipad.png +0 -0
- package/resources/ios/splash/Default-Portrait@2x~ipad.png +0 -0
- package/resources/ios/splash/Default-Portrait@~ipadpro.png +0 -0
- package/resources/ios/splash/Default-Portrait~ipad.png +0 -0
- package/resources/ios/splash/Default@2x~iphone.png +0 -0
- package/resources/ios/splash/Default@2x~universal~anyany.png +0 -0
- package/resources/ios/splash/Default~iphone.png +0 -0
- package/src/app/app-routing.module.ts +6 -5
- package/src/app/app.component.html +0 -1
- package/src/app/app.component.ts +58 -26
- package/src/app/app.module.ts +3 -7
- package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.spec.ts +0 -4
- package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.ts +0 -38
- package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +10 -11
- package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +1 -37
- package/src/app/chatlib/conversation-detail/message/image/image.component.html +0 -4
- package/src/app/chatlib/conversation-detail/message/image/image.component.ts +0 -21
- package/src/app/chatlib/conversation-detail/message/info-message/info-message.component.html +3 -3
- package/src/app/chatlib/conversation-detail/message/info-message/info-message.component.ts +0 -10
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +14 -12
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +4 -0
- package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +13 -13
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +14 -9
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +4 -0
- package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +20 -14
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +11 -13
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +12 -9
- package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +3 -24
- package/src/app/components/conversation-info/advanced-info-accordion/advanced-info-accordion.component.html +0 -13
- package/src/app/components/conversation-info/advanced-info-accordion/advanced-info-accordion.component.ts +0 -9
- package/src/app/components/conversation-info/conversation-info.module.ts +0 -2
- package/src/app/components/conversation-info/info-content/info-content.component.ts +0 -1
- package/src/app/components/conversation-info/info-group/info-group.component.ts +0 -11
- package/src/app/components/conversations-list/header-conversations-list/header-conversations-list.component.html +4 -10
- package/src/app/components/conversations-list/header-conversations-list/header-conversations-list.component.ts +1 -9
- package/src/app/components/project-item/project-item.component.html +2 -4
- package/src/app/components/project-item/project-item.component.ts +1 -19
- package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +1 -1
- package/src/app/directives/tooltip.directive.spec.ts +20 -0
- package/src/app/directives/tooltip.directive.ts +134 -0
- package/src/app/pages/authentication/login/login.page.ts +1 -1
- package/src/app/pages/conversation-detail/conversation-detail.module.ts +0 -4
- package/src/app/pages/conversation-detail/conversation-detail.page.html +3 -3
- package/src/app/pages/conversation-detail/conversation-detail.page.ts +63 -33
- package/src/app/pages/conversations-list/conversations-list.page.scss +0 -1
- package/src/app/pages/conversations-list/conversations-list.page.ts +101 -19
- package/src/app/pages/profile-info/profile-info.module.ts +4 -2
- package/src/app/pages/profile-info/profile-info.page.html +76 -16
- package/src/app/pages/profile-info/profile-info.page.scss +71 -0
- package/src/app/pages/profile-info/profile-info.page.ts +89 -18
- package/src/app/shared/shared.module.ts +4 -4
- package/src/assets/chat21-logo.png +0 -0
- package/src/assets/images/channel_icons/chat21.svg +3 -0
- package/src/assets/images/channel_icons/direct.svg +3 -0
- package/src/assets/images/channel_icons/email-logo.svg +9 -0
- package/src/assets/images/channel_icons/form-logo_v2.svg +13 -0
- package/src/assets/images/channel_icons/group.svg +3 -0
- package/src/assets/images/channel_icons/messenger-logo.svg +8 -0
- package/src/assets/images/channel_icons/telegram-logo.svg +7 -0
- package/src/assets/images/channel_icons/whatsapp-logo.svg +12 -0
- package/src/assets/logo.png +0 -0
- package/src/assets/tiledesk-solo-logo.png +0 -0
- package/src/chat21-core/providers/firebase/firebase-auth-service.ts +1 -16
- package/src/chat21-core/providers/mqtt/mqtt-conversation-handler.ts +1 -0
- package/src/chat21-core/providers/mqtt/mqtt-notifications.ts +2 -2
- package/src/chat21-core/utils/constants.ts +7 -0
- package/src/chat21-core/utils/utils.ts +22 -12
- package/src/global.scss +134 -22
- package/src/index.html +1 -2
- package/resources/ios/icon.png +0 -0
- package/src/app/pages/details/details-routing.module.ts +0 -17
- package/src/app/pages/details/details.module.ts +0 -21
- package/src/app/pages/details/details.page.html +0 -28
- package/src/app/pages/details/details.page.scss +0 -23
- package/src/app/pages/details/details.page.spec.ts +0 -24
- package/src/app/pages/details/details.page.ts +0 -65
- package/src/assets/chat21-logo.svg +0 -78
package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.ts
CHANGED
|
@@ -63,16 +63,6 @@ export class ConversationContentComponent implements OnInit {
|
|
|
63
63
|
MESSAGE_TYPE_OTHERS = MESSAGE_TYPE_OTHERS;
|
|
64
64
|
// ========== end:: check message type functions ======= //
|
|
65
65
|
|
|
66
|
-
tooltipOptions = {
|
|
67
|
-
'show-delay': 1500,
|
|
68
|
-
'tooltip-class': 'chat-tooltip',
|
|
69
|
-
'theme': 'light',
|
|
70
|
-
'shadow': false,
|
|
71
|
-
'hide-delay-mobile': 0,
|
|
72
|
-
'hideDelayAfterClick': 3000,
|
|
73
|
-
'hide-delay': 200
|
|
74
|
-
};
|
|
75
|
-
|
|
76
66
|
urlBOTImage = 'https://s3.eu-west-1.amazonaws.com/tiledesk-widget/dev/2.0.4-beta.7/assets/images/avatar_bot_tiledesk.svg'
|
|
77
67
|
uploadProgress: number;
|
|
78
68
|
showUploadProgress: boolean = false;
|
|
@@ -227,34 +217,6 @@ export class ConversationContentComponent implements OnInit {
|
|
|
227
217
|
|
|
228
218
|
// ========= END:: functions scroll position ======= //
|
|
229
219
|
|
|
230
|
-
/**
|
|
231
|
-
* function customize tooltip
|
|
232
|
-
*/
|
|
233
|
-
handleTooltipEvents() {
|
|
234
|
-
const that = this;
|
|
235
|
-
const showDelay = this.tooltipOptions['showDelay'];
|
|
236
|
-
// console.log(this.tooltipOptions);
|
|
237
|
-
setTimeout(function () {
|
|
238
|
-
try {
|
|
239
|
-
const domRepresentation = document.getElementsByClassName('chat-tooltip');
|
|
240
|
-
if (domRepresentation) {
|
|
241
|
-
const item = domRepresentation[0] as HTMLInputElement;
|
|
242
|
-
// console.log(item);
|
|
243
|
-
if (!item.classList.contains('tooltip-show')) {
|
|
244
|
-
item.classList.add('tooltip-show');
|
|
245
|
-
}
|
|
246
|
-
setTimeout(function () {
|
|
247
|
-
if (item.classList.contains('tooltip-show')) {
|
|
248
|
-
item.classList.remove('tooltip-show');
|
|
249
|
-
}
|
|
250
|
-
}, that.tooltipOptions['hideDelayAfterClick']);
|
|
251
|
-
}
|
|
252
|
-
} catch (err) {
|
|
253
|
-
this.logger.error('[CONV-CONTENT-W] handleTooltipEvents > Error :' + err);
|
|
254
|
-
}
|
|
255
|
-
}, showDelay);
|
|
256
|
-
}
|
|
257
|
-
|
|
258
220
|
isLastMessage(idMessage: string):boolean {
|
|
259
221
|
return isLastMessage(this.messages, idMessage)
|
|
260
222
|
// if (idMessage === this.messages[this.messages.length - 1].uid) {
|
|
@@ -52,21 +52,21 @@
|
|
|
52
52
|
<!-- ----------------------------------------------------------- -->
|
|
53
53
|
<!-- nk - no tag ionic -->
|
|
54
54
|
<!-- ----------------------------------------------------------- -->
|
|
55
|
-
<div class="manage_conversation_info_container" [ngClass]="{'close': !openInfoConversation, 'mobile': isMobile}">
|
|
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
58
|
<ion-icon name="arrow-forward-outline"></ion-icon>
|
|
59
59
|
<!-- {{translationMap.get('LABEL_CLOSE_GROUP')}} -->
|
|
60
|
-
<ng-template #closeGroupTooltip>
|
|
60
|
+
<!-- <ng-template #closeGroupTooltip>
|
|
61
61
|
<span> {{ translationMap?.get('LABEL_CLOSE_GROUP')}} </span>
|
|
62
|
-
</ng-template>
|
|
62
|
+
</ng-template> -->
|
|
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
66
|
<ion-icon name="arrow-back-outline"></ion-icon>
|
|
67
|
-
<ng-template #openGroupTooltip>
|
|
67
|
+
<!-- <ng-template #openGroupTooltip>
|
|
68
68
|
<span> {{ translationMap?.get('LABEL_OPEN_INFO_CONVERSATION')}} </span>
|
|
69
|
-
</ng-template>
|
|
69
|
+
</ng-template> -->
|
|
70
70
|
<!-- {{translationMap.get('LABEL_OPEN_INFO_CONVERSATION')}} -->
|
|
71
71
|
</ion-button>
|
|
72
72
|
</div>
|
|
@@ -110,10 +110,10 @@
|
|
|
110
110
|
|
|
111
111
|
<div class="bubble-container">
|
|
112
112
|
|
|
113
|
-
<div class="email-logo" *ngIf="message?.attributes?.
|
|
113
|
+
<div class="email-logo" *ngIf="message?.attributes?.offline_channel && message?.attributes?.offline_channel.includes(TYPE_MSG_EMAIL)">
|
|
114
114
|
<ion-icon name="mail"></ion-icon>
|
|
115
115
|
<ion-icon name="flash"
|
|
116
|
-
*ngIf="message?.attributes?.
|
|
116
|
+
*ngIf="message?.attributes?.offline_channel.includes('offline_')"
|
|
117
117
|
[ngStyle]="{'color': stylesMap.get('bubbleSentBackground')}">
|
|
118
118
|
</ion-icon>
|
|
119
119
|
</div>
|
|
@@ -186,8 +186,7 @@
|
|
|
186
186
|
|
|
187
187
|
<ng-container *ngIf="message?.attributes && message?.attributes?.sourcePage && !isSameSender(message?.sender, i)">
|
|
188
188
|
<ion-button shape="round" size="small" class="btn-info-msg " ion-button fill="clear"
|
|
189
|
-
(click)="onClickInfoMessage(message, i)"
|
|
190
|
-
[options]="tooltipOptions" placement="bottom">
|
|
189
|
+
(click)="onClickInfoMessage(message, i)" tooltip="{{addAsCannedResponseTooltipText}}" placement="bottom">
|
|
191
190
|
<ion-icon slot="icon-only" name="information-circle-outline"></ion-icon>
|
|
192
191
|
</ion-button>
|
|
193
192
|
</ng-container>
|
package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts
CHANGED
|
@@ -43,16 +43,7 @@ export class BubbleMessageComponent implements OnInit, OnChanges {
|
|
|
43
43
|
// ========== end:: check message type functions ======= //
|
|
44
44
|
|
|
45
45
|
public browserLang: string;
|
|
46
|
-
|
|
47
|
-
tooltipOptions = {
|
|
48
|
-
'show-delay': 500,
|
|
49
|
-
'tooltip-class': 'chat-tooltip',
|
|
50
|
-
'theme': 'light',
|
|
51
|
-
'shadow': false,
|
|
52
|
-
'hide-delay-mobile': 0,
|
|
53
|
-
'hideDelayAfterClick': 3000,
|
|
54
|
-
'hide-delay': 200
|
|
55
|
-
};
|
|
46
|
+
|
|
56
47
|
sizeImage : { width: number, height: number}
|
|
57
48
|
fullnameColor: string;
|
|
58
49
|
public logger: LoggerService = LoggerInstance.getInstance()
|
|
@@ -165,33 +156,6 @@ export class BubbleMessageComponent implements OnInit, OnChanges {
|
|
|
165
156
|
return sizeImage
|
|
166
157
|
}
|
|
167
158
|
|
|
168
|
-
/**
|
|
169
|
-
* function customize tooltip
|
|
170
|
-
*/
|
|
171
|
-
handleTooltipEvents(event) {
|
|
172
|
-
const that = this;
|
|
173
|
-
const showDelay = this.tooltipOptions['show-delay'];
|
|
174
|
-
setTimeout(function () {
|
|
175
|
-
try {
|
|
176
|
-
const domRepresentation = document.getElementsByClassName('chat-tooltip');
|
|
177
|
-
if (domRepresentation) {
|
|
178
|
-
const item = domRepresentation[0] as HTMLInputElement;
|
|
179
|
-
if (item && !item.classList.contains('tooltip-show')) {
|
|
180
|
-
item.classList.add('tooltip-show');
|
|
181
|
-
}
|
|
182
|
-
setTimeout(function () {
|
|
183
|
-
if (item && item.classList.contains('tooltip-show')) {
|
|
184
|
-
item.classList.remove('tooltip-show');
|
|
185
|
-
}
|
|
186
|
-
}, that.tooltipOptions['hideDelayAfterClick']);
|
|
187
|
-
}
|
|
188
|
-
} catch (err) {
|
|
189
|
-
that.logger.error('[BUBBLE-MESSAGE] handleTooltipEvents >>>> Error :' + err);
|
|
190
|
-
}
|
|
191
|
-
}, showDelay);
|
|
192
|
-
}
|
|
193
|
-
|
|
194
|
-
|
|
195
159
|
// onClickOptionsMessage(event, message){
|
|
196
160
|
// this.logger.log('[BUBBLE-MESSAGE] - onClickOptionsMessage', message);
|
|
197
161
|
// this.presentPopover(event, message)
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
<!-- [ngStyle]="{ 'max-width': width +'px', 'max-height': height +'px' }" style="position: relative; " -->
|
|
2
2
|
<div [ngStyle]="{'max-height': height +'px' }" class="c21-img-container">
|
|
3
3
|
<div *ngIf="loading" class="loader" [ngStyle]="{ 'width': width , 'height': height }"></div>
|
|
4
|
-
<!-- [tooltip]="timeTooltipRight" [options]="tooltipOptions" placement="bottom" content-type="template" -->
|
|
5
4
|
<img id="myImg"
|
|
6
5
|
class="message-contentX message-content-imageX"
|
|
7
6
|
[ngClass]="{'isLoadingImage': loading}"
|
|
@@ -10,7 +9,4 @@
|
|
|
10
9
|
[src]="metadata.src"
|
|
11
10
|
(load)="onLoaded($event)"
|
|
12
11
|
(click)="openImageViewerModal(metadata.src, metadata.name)" />
|
|
13
|
-
<!-- <ng-template #timeTooltipRight>
|
|
14
|
-
<span>{{ tooltipMessage }}</span>
|
|
15
|
-
</ng-template> -->
|
|
16
12
|
</div>
|
|
@@ -13,33 +13,12 @@ export class ImageComponent implements OnInit {
|
|
|
13
13
|
@Output() onElementRendered = new EventEmitter<{element: string, status: boolean}>();
|
|
14
14
|
|
|
15
15
|
loading: boolean = true
|
|
16
|
-
tooltipMessage: string;
|
|
17
16
|
modal: any
|
|
18
17
|
span: any
|
|
19
18
|
|
|
20
|
-
tooltipOptions = {
|
|
21
|
-
'show-delay': 0,
|
|
22
|
-
'tooltip-class': 'chat-tooltip',
|
|
23
|
-
'theme': 'light',
|
|
24
|
-
'shadow': false,
|
|
25
|
-
'hide-delay-mobile': 0,
|
|
26
|
-
'hideDelayAfterClick': 3000,
|
|
27
|
-
'hide-delay': 200
|
|
28
|
-
};
|
|
29
|
-
|
|
30
19
|
constructor() { }
|
|
31
20
|
|
|
32
21
|
ngOnInit() {
|
|
33
|
-
this.getBrowserLanguageAndTranslateTooltipMsg()
|
|
34
|
-
}
|
|
35
|
-
getBrowserLanguageAndTranslateTooltipMsg() {
|
|
36
|
-
var userLang = navigator.language;
|
|
37
|
-
// console.log('Image COMP - userLang ', userLang)
|
|
38
|
-
if (userLang === 'en') {
|
|
39
|
-
this.tooltipMessage = "Click to download"
|
|
40
|
-
} else {
|
|
41
|
-
this.tooltipMessage = "Clicca per scaricare"
|
|
42
|
-
}
|
|
43
22
|
}
|
|
44
23
|
|
|
45
24
|
onLoaded(event) {
|
package/src/app/chatlib/conversation-detail/message/info-message/info-message.component.html
CHANGED
|
@@ -6,10 +6,10 @@
|
|
|
6
6
|
</div>
|
|
7
7
|
|
|
8
8
|
<div style="max-width: 70%;">
|
|
9
|
-
<span class="base_info" [innerHTML]="message?.text | marked"
|
|
10
|
-
<ng-template #timeTooltipLeft>
|
|
9
|
+
<span class="base_info" [innerHTML]="message?.text | marked" tooltip="{{message.timestamp | amTimeAgo}} ({{message.timestamp | amLocal | amDateFormat: 'L HH:mm:ss'}})" placement="left"></span>
|
|
10
|
+
<!-- <ng-template #timeTooltipLeft>
|
|
11
11
|
<span>{{message.timestamp | amTimeAgo}} ({{message.timestamp | amLocal | amDateFormat: 'L HH:mm:ss'}})</span>
|
|
12
|
-
</ng-template>
|
|
12
|
+
</ng-template> -->
|
|
13
13
|
</div>
|
|
14
14
|
|
|
15
15
|
<div class="spinner">
|
|
@@ -16,16 +16,6 @@ export class InfoMessageComponent implements OnInit, OnChanges {
|
|
|
16
16
|
|
|
17
17
|
public message_text: string
|
|
18
18
|
private logger: LoggerService = LoggerInstance.getInstance()
|
|
19
|
-
|
|
20
|
-
tooltipOptions = {
|
|
21
|
-
'show-delay': 500,
|
|
22
|
-
'tooltip-class': 'chat-tooltip',
|
|
23
|
-
'theme': 'light',
|
|
24
|
-
'shadow': false,
|
|
25
|
-
'hide-delay-mobile': 0,
|
|
26
|
-
'hideDelayAfterClick': 3000,
|
|
27
|
-
'hide-delay': 200
|
|
28
|
-
};
|
|
29
19
|
|
|
30
20
|
constructor() { }
|
|
31
21
|
|
|
@@ -96,24 +96,29 @@
|
|
|
96
96
|
<div class="conversation_project truncate">
|
|
97
97
|
<!-- DIRECT CONV -->
|
|
98
98
|
<div *ngIf="conversation.channel_type === TYPE_DIRECT">
|
|
99
|
-
<
|
|
99
|
+
<img class="channel-icon" src="/assets/images/channel_icons/direct.svg">
|
|
100
100
|
<span class="truncate">{{translationsMap.get('DIRECT_CHAT')}}</span>
|
|
101
101
|
</div>
|
|
102
102
|
<!-- GROUP CONV -->
|
|
103
103
|
<div *ngIf="conversation.uid.startsWith(TYPE_GROUP)">
|
|
104
|
-
<
|
|
105
|
-
<span
|
|
104
|
+
<img class="channel-icon" src="/assets/images/channel_icons/group.svg">
|
|
105
|
+
<span class="truncate">{{translationsMap.get('GROUP_CHAT')}}</span>
|
|
106
106
|
</div>
|
|
107
107
|
<!-- SUPPORT-GROUP CONV -->
|
|
108
|
-
<div *ngIf="conversation.uid.startsWith(TYPE_SUPPORT_GROUP)">
|
|
109
|
-
<
|
|
108
|
+
<div *ngIf="conversation.uid.startsWith(TYPE_SUPPORT_GROUP) && !IS_ON_MOBILE_DEVICE">
|
|
109
|
+
<img class="channel-icon" src="assets/images/channel_icons/chat21.svg" *ngIf="conversation?.attributes && ( (conversation?.attributes?.channel && conversation?.attributes?.channel === CHANNEL_TYPE_CHAT21) || !conversation?.attributes?.channel) " >
|
|
110
|
+
<img class="channel-icon" src="assets/images/channel_icons/email-logo.svg" *ngIf="conversation?.attributes && conversation?.attributes?.channel && conversation?.attributes?.channel === CHANNEL_TYPE_EMAIL" >
|
|
111
|
+
<img class="channel-icon" src="assets/images/channel_icons/form-logo_v2.svg" *ngIf="conversation?.attributes && conversation?.attributes?.channel && conversation?.attributes?.channel === CHANNEL_TYPE_FORM" >
|
|
112
|
+
<img class="channel-icon" src="assets/images/channel_icons/messenger-logo.svg" *ngIf="conversation?.attributes && conversation?.attributes?.channel && conversation?.attributes?.channel === CHANNEL_TYPE_MESSANGER" >
|
|
113
|
+
<img class="channel-icon" src="assets/images/channel_icons/whatsapp-logo.svg" *ngIf="conversation?.attributes && conversation?.attributes?.channel && conversation?.attributes?.channel === CHANNEL_TYPE_WHATSAPP" >
|
|
114
|
+
<img class="channel-icon" src="assets/images/channel_icons/telegram-logo.svg" *ngIf="conversation?.attributes && conversation?.attributes?.channel && conversation?.attributes?.channel === CHANNEL_TYPE_TELEGRAM" >
|
|
110
115
|
<span *ngIf="conversation?.attributes?.project_name" class="truncate">{{conversation?.attributes?.project_name}}</span>
|
|
111
116
|
<span *ngIf="!conversation?.attributes?.project_name" class="truncate">{{conversation?.attributes?.projectId}}</span>
|
|
112
117
|
</div>
|
|
113
118
|
</div>
|
|
114
119
|
<div style="display: flex;">
|
|
115
120
|
<span class="conversation_with truncate" [class.not-read]="conversation.is_new">
|
|
116
|
-
{{conversation
|
|
121
|
+
{{conversation?.conversation_with_fullname}}
|
|
117
122
|
</span>
|
|
118
123
|
</div>
|
|
119
124
|
<div class="conversation_message truncate-conv-msg" [ngClass]="{'truncate-on-desktop': !isApp}">
|
|
@@ -156,16 +161,13 @@
|
|
|
156
161
|
</ion-note>
|
|
157
162
|
|
|
158
163
|
<ion-buttons slot="end">
|
|
159
|
-
<ion-button *ngIf="!conversation.archived"
|
|
164
|
+
<ion-button *ngIf="!conversation.archived" tooltip="{{ translationsMap?.get('Resolve')}}" placement="bottom"
|
|
160
165
|
[ngClass]="{'hide': !isApp, 'button-on-desktop': !isApp, 'button-on-mobile': isApp }"
|
|
161
166
|
id="{{ 'close_conversation_button' + conversation.uid }}" class="close-conversation-button" ion-button clear
|
|
162
167
|
item-end (click)="closeConversation(conversation);$event.stopPropagation();" padding>
|
|
163
168
|
<ion-icon slot="icon-only" style="display:block;" id="{{ 'close_button_icon' + conversation.uid }}" name="archive-outline" item-end></ion-icon>
|
|
164
|
-
|
|
165
|
-
<
|
|
166
|
-
<span *ngIf="conversation?.recipient.startsWith('support-group')"> {{ translationsMap?.get('Resolve')}} </span>
|
|
167
|
-
<span *ngIf="!conversation?.recipient.startsWith('support-group')"> {{ translationsMap?.get('Archive') }} </span>
|
|
168
|
-
</ng-template>
|
|
169
|
+
<div *ngIf="conversation?.recipient.startsWith('support-group')" tooltip="{{ translationsMap?.get('Resolve')}}"></div>
|
|
170
|
+
<div *ngIf="conversation?.recipient.startsWith('support-group')" tooltip="{{ translationsMap?.get('Archive')}}"></div>
|
|
169
171
|
</ion-button>
|
|
170
172
|
|
|
171
173
|
<!-- <ion-button *ngIf="conversation?.recipient.startsWith('support-group') && !conversation.archived" [tooltip]="joinTooltip" [options]="tooltip_options" placement="bottom" content-type="template"
|
|
@@ -99,6 +99,10 @@ ion-item {
|
|
|
99
99
|
span{
|
|
100
100
|
padding-left: 5px
|
|
101
101
|
}
|
|
102
|
+
.channel-icon{
|
|
103
|
+
vertical-align: sub;
|
|
104
|
+
filter: brightness(0) saturate(100%) invert(83%) sepia(45%) saturate(1879%) hue-rotate(178deg) brightness(79%) contrast(81%);
|
|
105
|
+
}
|
|
102
106
|
}
|
|
103
107
|
.conversation_with {
|
|
104
108
|
color: rgba(0, 0, 0, 1);
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { TYPE_GROUP, TYPE_SUPPORT_GROUP } from './../../../../chat21-core/utils/constants';
|
|
1
|
+
import { CHANNEL_TYPE_CHAT21, CHANNEL_TYPE_EMAIL, CHANNEL_TYPE_FORM, CHANNEL_TYPE_MESSANGER, CHANNEL_TYPE_TELEGRAM, CHANNEL_TYPE_WHATSAPP, TYPE_GROUP, TYPE_SUPPORT_GROUP } from './../../../../chat21-core/utils/constants';
|
|
2
2
|
import { TYPE_DIRECT } from 'src/chat21-core/utils/constants';
|
|
3
3
|
import { Component, EventEmitter, Input, IterableDiffers, KeyValueDiffers, OnInit, Output, SimpleChange } from '@angular/core';
|
|
4
4
|
import { ConversationModel } from 'src/chat21-core/models/conversation';
|
|
5
5
|
import { ImageRepoService } from 'src/chat21-core/providers/abstract/image-repo.service';
|
|
6
|
-
import { convertMessage } from 'src/chat21-core/utils/utils';
|
|
6
|
+
import { convertMessage, isOnMobileDevice } from 'src/chat21-core/utils/utils';
|
|
7
7
|
import { ListConversationsComponent } from '../list-conversations/list-conversations.component';
|
|
8
8
|
import { Platform } from '@ionic/angular';
|
|
9
9
|
import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
|
|
@@ -49,19 +49,19 @@ export class IonListConversationsComponent extends ListConversationsComponent im
|
|
|
49
49
|
public youAreNoLongerAmongTheTeammatesManagingThisConversation_lbl: string;
|
|
50
50
|
public ok_lbl: string;
|
|
51
51
|
|
|
52
|
-
tooltip_options = {
|
|
53
|
-
'show-delay': 0,
|
|
54
|
-
'tooltip-class': 'chat-tooltip',
|
|
55
|
-
'theme': 'light',
|
|
56
|
-
'shadow': false,
|
|
57
|
-
'hide-delay-mobile': 0,
|
|
58
|
-
'hideDelayAfterClick': 3000,
|
|
59
|
-
'hide-delay': 100
|
|
60
|
-
};
|
|
61
|
-
|
|
62
52
|
TYPE_DIRECT = TYPE_DIRECT;
|
|
63
53
|
TYPE_GROUP = TYPE_GROUP;
|
|
64
54
|
TYPE_SUPPORT_GROUP = TYPE_SUPPORT_GROUP;
|
|
55
|
+
|
|
56
|
+
//ATTRIBUTES CHANNEL
|
|
57
|
+
CHANNEL_TYPE_CHAT21 = CHANNEL_TYPE_CHAT21;
|
|
58
|
+
CHANNEL_TYPE_EMAIL = CHANNEL_TYPE_EMAIL;
|
|
59
|
+
CHANNEL_TYPE_FORM = CHANNEL_TYPE_FORM;
|
|
60
|
+
CHANNEL_TYPE_MESSANGER = CHANNEL_TYPE_MESSANGER;
|
|
61
|
+
CHANNEL_TYPE_WHATSAPP = CHANNEL_TYPE_WHATSAPP;
|
|
62
|
+
CHANNEL_TYPE_TELEGRAM = CHANNEL_TYPE_TELEGRAM;
|
|
63
|
+
|
|
64
|
+
IS_ON_MOBILE_DEVICE: boolean
|
|
65
65
|
/**
|
|
66
66
|
*
|
|
67
67
|
* @param iterableDiffers
|
|
@@ -109,7 +109,7 @@ export class IonListConversationsComponent extends ListConversationsComponent im
|
|
|
109
109
|
ngOnInit() {
|
|
110
110
|
this.isApp = this.platform.is('ios') || this.platform.is('android')
|
|
111
111
|
this.logger.log('[ION-LIST-CONVS-COMP] - ngOnInit - IS-APP ', this.isApp);
|
|
112
|
-
|
|
112
|
+
this.IS_ON_MOBILE_DEVICE = isOnMobileDevice()
|
|
113
113
|
}
|
|
114
114
|
|
|
115
115
|
ngOnChanges(changes: { [property: string]: SimpleChange }) {
|
|
@@ -43,8 +43,13 @@
|
|
|
43
43
|
<span class="truncate">{{translationsMap.get('GROUP_CHAT')}}</span>
|
|
44
44
|
</div>
|
|
45
45
|
<!-- SUPPORT-GROUP CONV -->
|
|
46
|
-
<div *ngIf="conversationUid?.startsWith(TYPE_SUPPORT_GROUP)">
|
|
47
|
-
<
|
|
46
|
+
<div *ngIf="conversationUid?.startsWith(TYPE_SUPPORT_GROUP) && !IS_ON_MOBILE_DEVICE">
|
|
47
|
+
<img class="channel-icon" src="assets/images/channel_icons/chat21.svg" *ngIf="( (conversationAvatar?.channel && conversationAvatar?.channel === CHANNEL_TYPE_CHAT21) || !conversationAvatar?.channel) " >
|
|
48
|
+
<img class="channel-icon" src="assets/images/channel_icons/email-logo.svg" *ngIf="conversationAvatar?.channel && conversationAvatar?.channel === CHANNEL_TYPE_EMAIL" >
|
|
49
|
+
<img class="channel-icon" src="assets/images/channel_icons/form-logo_v2.svg" *ngIf="conversationAvatar?.channel && conversationAvatar?.channel === CHANNEL_TYPE_FORM" >
|
|
50
|
+
<img class="channel-icon" src="assets/images/channel_icons/messenger-logo.svg" *ngIf="conversationAvatar?.channel && conversationAvatar?.channel === CHANNEL_TYPE_MESSANGER" >
|
|
51
|
+
<img class="channel-icon" src="assets/images/channel_icons/whatsapp-logo.svg" *ngIf="conversationAvatar?.channel && conversationAvatar?.channel === CHANNEL_TYPE_WHATSAPP" >
|
|
52
|
+
<img class="channel-icon" src="assets/images/channel_icons/telegram-logo.svg" *ngIf="conversationAvatar?.channel && conversationAvatar?.channel === CHANNEL_TYPE_TELEGRAM" >
|
|
48
53
|
<span *ngIf="conversationAvatar?.project_name" class="truncate">{{conversationAvatar?.project_name}}</span>
|
|
49
54
|
<span *ngIf="!conversationAvatar?.project_name" class="truncate">{{conversationAvatar?.projectId}}</span>
|
|
50
55
|
</div>
|
|
@@ -73,7 +78,7 @@
|
|
|
73
78
|
|
|
74
79
|
</ion-title>
|
|
75
80
|
<!-- openInfoConversation {{openInfoConversation}} -->
|
|
76
|
-
|
|
81
|
+
<ion-buttons slot="end" *ngIf="isMobile">
|
|
77
82
|
|
|
78
83
|
<!-- <ion-button ion-button fill="clear" color="primary" size="small" (click)="presentCreateTicketModal()" [ngClass]="{'resolve-conv-margin-right': !isMobile}">
|
|
79
84
|
<ion-icon name="ticket-outline"></ion-icon>
|
|
@@ -86,14 +91,14 @@
|
|
|
86
91
|
<span style="text-transform: capitalize; margin-left: 5px;"> {{translationsMap?.get('Resolve')}} </span>
|
|
87
92
|
</ion-button> -->
|
|
88
93
|
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
</ion-button>
|
|
92
|
-
|
|
94
|
+
<ion-button *ngIf="!openInfoConversation" ion-button fill="clear" (click)="onOpenCloseInfoConversation()">
|
|
95
|
+
<ion-icon slot="icon-only" name="information-circle-outline"></ion-icon>
|
|
96
|
+
</ion-button>
|
|
97
|
+
<ion-button *ngIf="openInfoConversation" ion-button fill="clear" (click)="onOpenCloseInfoConversation()">
|
|
93
98
|
<ion-icon slot="icon-only" name="close-circle-outline"></ion-icon>
|
|
94
|
-
</ion-button>
|
|
99
|
+
</ion-button>
|
|
95
100
|
|
|
96
|
-
|
|
101
|
+
</ion-buttons>
|
|
97
102
|
|
|
98
103
|
</ion-toolbar>
|
|
99
104
|
</ion-header>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { TYPE_GROUP } from './../../../../chat21-core/utils/constants';
|
|
1
|
+
import { CHANNEL_TYPE_CHAT21, CHANNEL_TYPE_EMAIL, CHANNEL_TYPE_FORM, CHANNEL_TYPE_MESSANGER, CHANNEL_TYPE_TELEGRAM, CHANNEL_TYPE_WHATSAPP, TYPE_GROUP } from './../../../../chat21-core/utils/constants';
|
|
2
2
|
import {
|
|
3
3
|
Component,
|
|
4
4
|
OnInit,
|
|
@@ -20,6 +20,7 @@ import { EventsService } from 'src/app/services/events-service'
|
|
|
20
20
|
import { CreateTicketPage } from 'src/app/modals/create-ticket/create-ticket.page'
|
|
21
21
|
import { TiledeskService } from 'src/app/services/tiledesk/tiledesk.service'
|
|
22
22
|
import { TYPE_DIRECT, TYPE_SUPPORT_GROUP } from 'src/chat21-core/utils/constants'
|
|
23
|
+
import { isOnMobileDevice } from 'src/chat21-core/utils/utils';
|
|
23
24
|
|
|
24
25
|
@Component({
|
|
25
26
|
selector: 'app-header-conversation-detail',
|
|
@@ -35,20 +36,29 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
|
|
|
35
36
|
@Input() liveInfo: {sourcePage: string, sourceTitle: string}
|
|
36
37
|
@Input() isMobile: boolean
|
|
37
38
|
@Input() translationsMap: Map<string, string>
|
|
39
|
+
@Output() onOpenInfoConversation = new EventEmitter<boolean>();
|
|
38
40
|
conversationWithFullname: string
|
|
39
|
-
openInfoConversation =
|
|
41
|
+
openInfoConversation = false
|
|
40
42
|
|
|
41
43
|
isDirect = false
|
|
42
44
|
borderColor = '#ffffff'
|
|
43
45
|
fontColor = '#949494'
|
|
44
46
|
platformName: string
|
|
45
47
|
// conv_closed: boolean = false;
|
|
46
|
-
|
|
48
|
+
IS_ON_MOBILE_DEVICE: boolean
|
|
47
49
|
private logger: LoggerService = LoggerInstance.getInstance()
|
|
48
50
|
|
|
49
51
|
TYPE_SUPPORT_GROUP = TYPE_SUPPORT_GROUP
|
|
50
52
|
TYPE_GROUP = TYPE_GROUP
|
|
51
53
|
|
|
54
|
+
//ATTRIBUTES CHANNEL
|
|
55
|
+
CHANNEL_TYPE_CHAT21 = CHANNEL_TYPE_CHAT21;
|
|
56
|
+
CHANNEL_TYPE_EMAIL = CHANNEL_TYPE_EMAIL;
|
|
57
|
+
CHANNEL_TYPE_FORM = CHANNEL_TYPE_FORM;
|
|
58
|
+
CHANNEL_TYPE_MESSANGER = CHANNEL_TYPE_MESSANGER;
|
|
59
|
+
CHANNEL_TYPE_WHATSAPP = CHANNEL_TYPE_WHATSAPP;
|
|
60
|
+
CHANNEL_TYPE_TELEGRAM = CHANNEL_TYPE_TELEGRAM;
|
|
61
|
+
|
|
52
62
|
constructor(
|
|
53
63
|
public imageRepoService: ImageRepoService,
|
|
54
64
|
private route: ActivatedRoute,
|
|
@@ -56,7 +66,6 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
|
|
|
56
66
|
private router: Router,
|
|
57
67
|
public tiledeskService: TiledeskService,
|
|
58
68
|
public events: EventsService,
|
|
59
|
-
public modalController: ModalController,
|
|
60
69
|
) {
|
|
61
70
|
|
|
62
71
|
}
|
|
@@ -69,20 +78,11 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
|
|
|
69
78
|
this.logger.log('[CONVS-DETAIL][HEADER] - (ngOnInit) - idLoggedUser', this.idLoggedUser,)
|
|
70
79
|
this.logger.log('[CONVS-DETAIL][HEADER] - (ngOnInit) - conversationAvatar', this.conversationAvatar,)
|
|
71
80
|
this.logger.log('[CONVS-DETAIL][HEADER] - (ngOnInit) - conv_type', this.conv_type)
|
|
81
|
+
this.IS_ON_MOBILE_DEVICE = isOnMobileDevice()
|
|
72
82
|
// this.listenToConversationHasBeenClosed()
|
|
73
83
|
// this.isOniOSMobileDevice()
|
|
74
84
|
}
|
|
75
85
|
|
|
76
|
-
isOniOSMobileDevice() {
|
|
77
|
-
this.IS_ON_IOS_MOBILE_DEVICE = false;
|
|
78
|
-
if (/iPad|iPhone|iPod/i.test(window.navigator.userAgent)) {
|
|
79
|
-
this.IS_ON_IOS_MOBILE_DEVICE = true;
|
|
80
|
-
|
|
81
|
-
}
|
|
82
|
-
// console.log('[CONVS-DETAIL][HEADER] IS_ON_IOS_MOBILE_DEVICE ', this.IS_ON_IOS_MOBILE_DEVICE)
|
|
83
|
-
return this.IS_ON_IOS_MOBILE_DEVICE;
|
|
84
|
-
}
|
|
85
|
-
|
|
86
86
|
ngOnChanges() {
|
|
87
87
|
this.logger.log('[CONVS-DETAIL][HEADER] - (ngOnChanges) - conversationAvatar', this.conversationAvatar)
|
|
88
88
|
if (this.conversationAvatar) {
|
|
@@ -134,6 +134,11 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
|
|
|
134
134
|
this.router.navigateByUrl('/conversations-list')
|
|
135
135
|
}
|
|
136
136
|
|
|
137
|
+
onOpenCloseInfoConversation(){
|
|
138
|
+
this.openInfoConversation = !this.openInfoConversation
|
|
139
|
+
this.onOpenInfoConversation.emit(this.openInfoConversation)
|
|
140
|
+
}
|
|
141
|
+
|
|
137
142
|
// -----------------------------------------------------------------
|
|
138
143
|
// PRESENT MODAL CREATE TICKET (MOVED IN ddp-deader.component.ts)
|
|
139
144
|
// -----------------------------------------------------------------
|
|
@@ -153,3 +158,4 @@ export class HeaderConversationDetailComponent implements OnInit, OnChanges {
|
|
|
153
158
|
// return await modal.present();
|
|
154
159
|
// }
|
|
155
160
|
}
|
|
161
|
+
|
package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
<ion-grid>
|
|
2
2
|
<div class="footer-options-container">
|
|
3
3
|
<!-- CHAT-OPTION -->
|
|
4
|
-
<div class="section-option" id="chat" tooltip="{{translationMap?.get('LABEL_CHAT')}}"
|
|
4
|
+
<div class="section-option" id="chat" tooltip="{{translationMap?.get('LABEL_CHAT')}}" placement="top">
|
|
5
5
|
<ion-button fill="clear" (click)="onOpenSection('chat')" [class.active]="section==='chat'">
|
|
6
6
|
<ion-icon name="chatbubbles"></ion-icon>
|
|
7
7
|
{{translationMap.get('LABEL_CHAT')}}
|
|
8
8
|
</ion-button>
|
|
9
9
|
</div>
|
|
10
10
|
<!-- EMAIL-OPTION -->
|
|
11
|
-
<div *ngIf="emailSection" class="section-option" id="email" tooltip="{{translationMap?.get('LABEL_EMAIL')}}"
|
|
11
|
+
<div *ngIf="emailSection" class="section-option" id="email" tooltip="{{translationMap?.get('LABEL_EMAIL')}}" placement="top">
|
|
12
12
|
<ion-button fill="clear" [class.active]="section==='email'" (click)="onOpenSection('email')" [disabled]="channelType === 'direct'">
|
|
13
13
|
<ion-icon name="mail-open"></ion-icon>
|
|
14
14
|
{{translationMap.get('LABEL_EMAIL')}}
|
|
@@ -30,34 +30,32 @@
|
|
|
30
30
|
|
|
31
31
|
<ion-row id="message-text-area" [style.display]="section==='chat'? 'flex': 'none'">
|
|
32
32
|
|
|
33
|
-
<ion-col col-auto>
|
|
33
|
+
<ion-col col-auto style="display: flex;">
|
|
34
34
|
|
|
35
|
-
<div class="
|
|
35
|
+
<div class="buttons-left">
|
|
36
36
|
|
|
37
37
|
<!-- CANNED RESPONSES -->
|
|
38
38
|
<ng-container *ngIf="areVisibleCAR && supportMode">
|
|
39
39
|
<div class="canned-responses-btn-wpr"
|
|
40
|
-
tooltip="{{translationMap?.get('CANNED_RESPONSES')}}"
|
|
40
|
+
tooltip="{{translationMap?.get('CANNED_RESPONSES')}}" placement="top">
|
|
41
41
|
<ion-button ion-button fill="clear" class="canned-responses-btn" (click)="openCannedResponses()"
|
|
42
42
|
[disabled]="!conversationWith?.startsWith(TYPE_SUPPORT_GROUP) || disableTextarea">
|
|
43
43
|
<ion-icon slot="icon-only" lazy="true" name="flash-outline" style="font-size: 24px;"></ion-icon>
|
|
44
44
|
</ion-button>
|
|
45
45
|
</div>
|
|
46
46
|
<div *ngIf="conversationWith?.startsWith(TYPE_SUPPORT_GROUP) && tagsCannedCount === 0"
|
|
47
|
-
tooltip="{{translationMap?.get('NO_CANNED_RESPONSES')}}"
|
|
47
|
+
tooltip="{{translationMap?.get('NO_CANNED_RESPONSES')}}" placement="top"
|
|
48
48
|
class="no-canned-responses-btn-badge">
|
|
49
49
|
<ion-icon name="alert-sharp" style="vertical-align: middle;"></ion-icon>
|
|
50
50
|
</div>
|
|
51
|
-
<div *ngIf="conversationWith?.startsWith(TYPE_SUPPORT_GROUP)
|
|
52
|
-
tooltip="{{translationMap?.get('YES_CANNED_RESPONSES')}}"
|
|
53
|
-
class="canned-responses-btn-badge">
|
|
51
|
+
<div *ngIf="conversationWith?.startsWith(TYPE_SUPPORT_GROUP) && (tagsCannedCount > 0)"
|
|
52
|
+
tooltip="{{translationMap?.get('YES_CANNED_RESPONSES')}}" placement="top" class="canned-responses-btn-badge">
|
|
54
53
|
<ion-icon name="information-sharp" style="vertical-align: middle;"></ion-icon>
|
|
55
54
|
</div>
|
|
56
55
|
</ng-container>
|
|
57
56
|
|
|
58
57
|
<!-- UPLOAD ATTACHMENT -->
|
|
59
|
-
<div class="upload-image-btn-wpr" tooltip="{{translationMap?.get('UPLOAD')}}"
|
|
60
|
-
placement="top">
|
|
58
|
+
<div *ngIf="!IS_ON_MOBILE_DEVICE" class="upload-image-btn-wpr" tooltip="{{translationMap?.get('UPLOAD')}}" placement="top">
|
|
61
59
|
<ion-button ion-button fill="clear" class="upload-image-btn" [disabled]="disableTextarea">
|
|
62
60
|
<ion-icon slot="icon-only" lazy="true" name="attach-outline"
|
|
63
61
|
style="font-size: 30px;transform: rotate(42deg);"></ion-icon>
|
|
@@ -68,9 +66,9 @@
|
|
|
68
66
|
|
|
69
67
|
<!-- <ion-icon (click)="showEmojiPicker = !showEmojiPicker" color="secondary" name="happy" style="zoom:2;"></ion-icon> -->
|
|
70
68
|
<!-- --------------------------------------------- -->
|
|
71
|
-
<!--
|
|
69
|
+
<!-- EMOJII PICKER BUTTON -->
|
|
72
70
|
<!-- --------------------------------------------- -->
|
|
73
|
-
<div class="emoji-picker-btn-wpr">
|
|
71
|
+
<div class="emoji-picker-btn-wpr" *ngIf="!IS_ON_MOBILE_DEVICE">
|
|
74
72
|
<ion-button ion-button fill="clear" class="emoji-picker-btn" (click)="showEmojiPicker = !showEmojiPicker"
|
|
75
73
|
[disabled]="disableTextarea">
|
|
76
74
|
<!-- <ion-icon slot="icon-only" lazy="true" name="flash-outline" style="font-size: 24px;"></ion-icon> -->
|