@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.
Files changed (124) hide show
  1. package/CHANGELOG.md +19 -0
  2. package/Dockerfile +1 -1
  3. package/GoogleService-Info.plist +36 -0
  4. package/config.xml +6 -3
  5. package/google-services.json +40 -0
  6. package/package.json +8 -13
  7. package/resources/ios/icon/icon-1024.png +0 -0
  8. package/resources/ios/icon/icon-108@2x.png +0 -0
  9. package/resources/ios/icon/icon-20.png +0 -0
  10. package/resources/ios/icon/icon-20@2x.png +0 -0
  11. package/resources/ios/icon/icon-20@3x.png +0 -0
  12. package/resources/ios/icon/icon-24@2x.png +0 -0
  13. package/resources/ios/icon/icon-27.5@2x.png +0 -0
  14. package/resources/ios/icon/icon-29.png +0 -0
  15. package/resources/ios/icon/icon-29@2x.png +0 -0
  16. package/resources/ios/icon/icon-29@3x.png +0 -0
  17. package/resources/ios/icon/icon-40.png +0 -0
  18. package/resources/ios/icon/icon-40@2x.png +0 -0
  19. package/resources/ios/icon/icon-40@3x.png +0 -0
  20. package/resources/ios/icon/icon-44@2x.png +0 -0
  21. package/resources/ios/icon/icon-50.png +0 -0
  22. package/resources/ios/icon/icon-50@2x.png +0 -0
  23. package/resources/ios/icon/icon-60.png +0 -0
  24. package/resources/ios/icon/icon-60@2x.png +0 -0
  25. package/resources/ios/icon/icon-60@3x.png +0 -0
  26. package/resources/ios/icon/icon-72.png +0 -0
  27. package/resources/ios/icon/icon-72@2x.png +0 -0
  28. package/resources/ios/icon/icon-76.png +0 -0
  29. package/resources/ios/icon/icon-76@2x.png +0 -0
  30. package/resources/ios/icon/icon-83.5@2x.png +0 -0
  31. package/resources/ios/icon/icon-86@2x.png +0 -0
  32. package/resources/ios/icon/icon-98@2x.png +0 -0
  33. package/resources/ios/icon/icon.png +0 -0
  34. package/resources/ios/icon/icon@2x.png +0 -0
  35. package/resources/ios/icon.jpg +0 -0
  36. package/resources/ios/splash/Default-1792h~iphone.png +0 -0
  37. package/resources/ios/splash/Default-2436h.png +0 -0
  38. package/resources/ios/splash/Default-2688h~iphone.png +0 -0
  39. package/resources/ios/splash/Default-568h@2x~iphone.png +0 -0
  40. package/resources/ios/splash/Default-667h.png +0 -0
  41. package/resources/ios/splash/Default-736h.png +0 -0
  42. package/resources/ios/splash/Default-Landscape-1792h~iphone.png +0 -0
  43. package/resources/ios/splash/Default-Landscape-2436h.png +0 -0
  44. package/resources/ios/splash/Default-Landscape-2688h~iphone.png +0 -0
  45. package/resources/ios/splash/Default-Landscape-736h.png +0 -0
  46. package/resources/ios/splash/Default-Landscape@2x~ipad.png +0 -0
  47. package/resources/ios/splash/Default-Landscape@~ipadpro.png +0 -0
  48. package/resources/ios/splash/Default-Landscape~ipad.png +0 -0
  49. package/resources/ios/splash/Default-Portrait@2x~ipad.png +0 -0
  50. package/resources/ios/splash/Default-Portrait@~ipadpro.png +0 -0
  51. package/resources/ios/splash/Default-Portrait~ipad.png +0 -0
  52. package/resources/ios/splash/Default@2x~iphone.png +0 -0
  53. package/resources/ios/splash/Default@2x~universal~anyany.png +0 -0
  54. package/resources/ios/splash/Default~iphone.png +0 -0
  55. package/src/app/app-routing.module.ts +6 -5
  56. package/src/app/app.component.html +0 -1
  57. package/src/app/app.component.ts +58 -26
  58. package/src/app/app.module.ts +3 -7
  59. package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.spec.ts +0 -4
  60. package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.ts +0 -38
  61. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +10 -11
  62. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +1 -37
  63. package/src/app/chatlib/conversation-detail/message/image/image.component.html +0 -4
  64. package/src/app/chatlib/conversation-detail/message/image/image.component.ts +0 -21
  65. package/src/app/chatlib/conversation-detail/message/info-message/info-message.component.html +3 -3
  66. package/src/app/chatlib/conversation-detail/message/info-message/info-message.component.ts +0 -10
  67. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +14 -12
  68. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +4 -0
  69. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +13 -13
  70. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +14 -9
  71. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +4 -0
  72. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +20 -14
  73. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +11 -13
  74. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +12 -9
  75. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +3 -24
  76. package/src/app/components/conversation-info/advanced-info-accordion/advanced-info-accordion.component.html +0 -13
  77. package/src/app/components/conversation-info/advanced-info-accordion/advanced-info-accordion.component.ts +0 -9
  78. package/src/app/components/conversation-info/conversation-info.module.ts +0 -2
  79. package/src/app/components/conversation-info/info-content/info-content.component.ts +0 -1
  80. package/src/app/components/conversation-info/info-group/info-group.component.ts +0 -11
  81. package/src/app/components/conversations-list/header-conversations-list/header-conversations-list.component.html +4 -10
  82. package/src/app/components/conversations-list/header-conversations-list/header-conversations-list.component.ts +1 -9
  83. package/src/app/components/project-item/project-item.component.html +2 -4
  84. package/src/app/components/project-item/project-item.component.ts +1 -19
  85. package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +1 -1
  86. package/src/app/directives/tooltip.directive.spec.ts +20 -0
  87. package/src/app/directives/tooltip.directive.ts +134 -0
  88. package/src/app/pages/authentication/login/login.page.ts +1 -1
  89. package/src/app/pages/conversation-detail/conversation-detail.module.ts +0 -4
  90. package/src/app/pages/conversation-detail/conversation-detail.page.html +3 -3
  91. package/src/app/pages/conversation-detail/conversation-detail.page.ts +63 -33
  92. package/src/app/pages/conversations-list/conversations-list.page.scss +0 -1
  93. package/src/app/pages/conversations-list/conversations-list.page.ts +101 -19
  94. package/src/app/pages/profile-info/profile-info.module.ts +4 -2
  95. package/src/app/pages/profile-info/profile-info.page.html +76 -16
  96. package/src/app/pages/profile-info/profile-info.page.scss +71 -0
  97. package/src/app/pages/profile-info/profile-info.page.ts +89 -18
  98. package/src/app/shared/shared.module.ts +4 -4
  99. package/src/assets/chat21-logo.png +0 -0
  100. package/src/assets/images/channel_icons/chat21.svg +3 -0
  101. package/src/assets/images/channel_icons/direct.svg +3 -0
  102. package/src/assets/images/channel_icons/email-logo.svg +9 -0
  103. package/src/assets/images/channel_icons/form-logo_v2.svg +13 -0
  104. package/src/assets/images/channel_icons/group.svg +3 -0
  105. package/src/assets/images/channel_icons/messenger-logo.svg +8 -0
  106. package/src/assets/images/channel_icons/telegram-logo.svg +7 -0
  107. package/src/assets/images/channel_icons/whatsapp-logo.svg +12 -0
  108. package/src/assets/logo.png +0 -0
  109. package/src/assets/tiledesk-solo-logo.png +0 -0
  110. package/src/chat21-core/providers/firebase/firebase-auth-service.ts +1 -16
  111. package/src/chat21-core/providers/mqtt/mqtt-conversation-handler.ts +1 -0
  112. package/src/chat21-core/providers/mqtt/mqtt-notifications.ts +2 -2
  113. package/src/chat21-core/utils/constants.ts +7 -0
  114. package/src/chat21-core/utils/utils.ts +22 -12
  115. package/src/global.scss +134 -22
  116. package/src/index.html +1 -2
  117. package/resources/ios/icon.png +0 -0
  118. package/src/app/pages/details/details-routing.module.ts +0 -17
  119. package/src/app/pages/details/details.module.ts +0 -21
  120. package/src/app/pages/details/details.page.html +0 -28
  121. package/src/app/pages/details/details.page.scss +0 -23
  122. package/src/app/pages/details/details.page.spec.ts +0 -24
  123. package/src/app/pages/details/details.page.ts +0 -65
  124. package/src/assets/chat21-logo.svg +0 -78
@@ -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
- [tooltip]="closeGroupTooltip" [options]="tooltipOptions" placement="bottom" content-type="template">
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
- [tooltip]="openGroupTooltip" [options]="tooltipOptions" placement="bottom" content-type="template">
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?.channel && message?.attributes?.channel.includes(TYPE_MSG_EMAIL)">
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?.channel.includes('offline_')"
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)" [tooltip]="addAsCannedResponseTooltipText"
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>
@@ -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) {
@@ -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" [options]="tooltipOptions" [tooltip]="timeTooltipLeft" placement="left" content-type="template"></span>
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
- <svg xmlns="http://www.w3.org/2000/svg" height="15" width="15" viewBox="0 0 24 24" fill="#000000"><path d="M12 12c2.21 0 4-1.79 4-4s-1.79-4-4-4-4 1.79-4 4 1.79 4 4 4zm0 2c-2.67 0-8 1.34-8 4v2h16v-2c0-2.66-5.33-4-8-4z"/></svg>
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
- <svg xmlns="http://www.w3.org/2000/svg" height="15" width="15" viewBox="0 0 24 24" fill="#000000"><path d="M16 11c1.66 0 2.99-1.34 2.99-3S17.66 5 16 5c-1.66 0-3 1.34-3 3s1.34 3 3 3zm-8 0c1.66 0 2.99-1.34 2.99-3S9.66 5 8 5C6.34 5 5 6.34 5 8s1.34 3 3 3zm0 2c-2.33 0-7 1.17-7 3.5V19h14v-2.5c0-2.33-4.67-3.5-7-3.5zm8 0c-.29 0-.62.02-.97.05 1.16.84 1.97 1.97 1.97 3.45V19h6v-2.5c0-2.33-4.67-3.5-7-3.5z"/></svg>
105
- <span class="truncate">{{translationsMap.get('GROUP_CHAT')}}</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
- <svg xmlns="http://www.w3.org/2000/svg" data-v-78d18411="" width="15" height="15" fill="none" viewBox="0 0 24 24" class="inbox-icon"><path d="M22.002 12C22.002 6.477 17.524 2 12 2 6.476 1.999 2 6.477 2 12.001c0 5.186 3.947 9.45 9.001 9.952V20.11c-.778-.612-1.478-1.905-1.939-3.61h1.94V15H8.737a18.969 18.969 0 0 1-.135-5h6.794c.068.64.105 1.31.105 2h1.5c0-.684-.033-1.353-.095-2h3.358c.154.64.237 1.31.237 2h1.5ZM4.786 16.5h2.722l.102.396c.317 1.17.748 2.195 1.27 3.015a8.532 8.532 0 0 1-4.094-3.41ZM3.736 10h3.358a20.847 20.847 0 0 0-.095 2c0 1.043.075 2.051.217 3H4.043a8.483 8.483 0 0 1-.544-3c0-.682.08-1.347.232-1.983L3.736 10Zm5.122-5.902.023-.008C8.16 5.222 7.611 6.748 7.298 8.5H4.25c.905-2 2.56-3.587 4.608-4.402Zm3.026-.594L12 3.5l.126.006c1.262.126 2.48 2.125 3.045 4.995H8.83c.568-2.878 1.79-4.88 3.055-4.996Zm3.343.76-.107-.174.291.121a8.533 8.533 0 0 1 4.339 4.29h-3.048c-.298-1.665-.806-3.125-1.475-4.237Z M12 19a1 1 0 0 0 1 1h3v2h-.5a.5.5 0 1 0 0 1h4a.5.5 0 0 0 0-1H19v-2h3a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1h-9a1 1 0 0 0-1 1v5Z" fill="currentColor"/></svg>
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.conversation_with_fullname}}
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" [tooltip]="archiveTooltip" [options]="tooltip_options" placement="bottom" content-type="template"
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
- <ng-template #archiveTooltip>
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
- <svg xmlns="http://www.w3.org/2000/svg" data-v-78d18411="" width="15" height="15" fill="none" viewBox="0 0 24 24" class="inbox-icon"><path d="M22.002 12C22.002 6.477 17.524 2 12 2 6.476 1.999 2 6.477 2 12.001c0 5.186 3.947 9.45 9.001 9.952V20.11c-.778-.612-1.478-1.905-1.939-3.61h1.94V15H8.737a18.969 18.969 0 0 1-.135-5h6.794c.068.64.105 1.31.105 2h1.5c0-.684-.033-1.353-.095-2h3.358c.154.64.237 1.31.237 2h1.5ZM4.786 16.5h2.722l.102.396c.317 1.17.748 2.195 1.27 3.015a8.532 8.532 0 0 1-4.094-3.41ZM3.736 10h3.358a20.847 20.847 0 0 0-.095 2c0 1.043.075 2.051.217 3H4.043a8.483 8.483 0 0 1-.544-3c0-.682.08-1.347.232-1.983L3.736 10Zm5.122-5.902.023-.008C8.16 5.222 7.611 6.748 7.298 8.5H4.25c.905-2 2.56-3.587 4.608-4.402Zm3.026-.594L12 3.5l.126.006c1.262.126 2.48 2.125 3.045 4.995H8.83c.568-2.878 1.79-4.88 3.055-4.996Zm3.343.76-.107-.174.291.121a8.533 8.533 0 0 1 4.339 4.29h-3.048c-.298-1.665-.806-3.125-1.475-4.237Z M12 19a1 1 0 0 0 1 1h3v2h-.5a.5.5 0 1 0 0 1h4a.5.5 0 0 0 0-1H19v-2h3a1 1 0 0 0 1-1v-5a1 1 0 0 0-1-1h-9a1 1 0 0 0-1 1v5Z" fill="currentColor"/></svg>
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
- <!-- <ion-buttons slot="end"> -->
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
- <!-- <ion-button *ngIf="!openInfoConversation" ion-button fill="clear" (click)="onOpenCloseInfoConversation()">
90
- <ion-icon slot="icon-only" name="information-circle-outline"></ion-icon>
91
- </ion-button> -->
92
- <!-- <ion-button *ngIf="openInfoConversation" ion-button fill="clear" (click)="onOpenCloseInfoConversation()">
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
- <!-- </ion-buttons> -->
101
+ </ion-buttons>
97
102
 
98
103
  </ion-toolbar>
99
104
  </ion-header>
@@ -208,6 +208,10 @@ ion-header {
208
208
  span{
209
209
  padding-left: 5px
210
210
  }
211
+ .channel-icon{
212
+ vertical-align: sub;
213
+ filter: brightness(0) saturate(100%) invert(83%) sepia(45%) saturate(1879%) hue-rotate(178deg) brightness(79%) contrast(81%);
214
+ }
211
215
  }
212
216
  }
213
217
 
@@ -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 = true
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
- IS_ON_IOS_MOBILE_DEVICE: boolean
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
+
@@ -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')}}" [options]="tooltipOptions" placement="top">
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')}}" [options]="tooltipOptions" placement="top">
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="start-buttons" style="position: absolute;display: flex; top: 2px;">
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')}}" [options]="tooltipOptions" placement="top">
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')}}" [options]="tooltipOptions" placement="top"
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) && tagsCannedCount > 0"
52
- tooltip="{{translationMap?.get('YES_CANNED_RESPONSES')}}" [options]="tooltipOptions" placement="top"
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')}}" [options]="tooltipOptions"
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
- <!-- Emoji Picker Button tooltip="{{translationMap?.get('CANNED_RESPONSES')}}" [options]="tooltipOptions" placement="top" -->
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> -->