@chat21/chat21-ionic 3.0.85 → 3.0.86-rc.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (171) hide show
  1. package/CHANGELOG.md +121 -4
  2. package/README.md +2 -2
  3. package/package.json +4 -3
  4. package/src/app/app-routing.module.ts +7 -2
  5. package/src/app/app.component.html +7 -1
  6. package/src/app/app.component.scss +20 -2
  7. package/src/app/app.component.ts +131 -20
  8. package/src/app/app.module.ts +8 -3
  9. package/src/app/chatlib/conversation-detail/conversation-content/conversation-content.component.ts +11 -4
  10. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.html +86 -23
  11. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.scss +188 -88
  12. package/src/app/chatlib/conversation-detail/ion-conversation-detail/ion-conversation-detail.component.ts +42 -3
  13. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.html +11 -24
  14. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.scss +6 -10
  15. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.spec.ts +2 -2
  16. package/src/app/chatlib/conversation-detail/message/bubble-message/bubble-message.component.ts +16 -26
  17. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.html +5 -1
  18. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.scss +22 -15
  19. package/src/app/chatlib/conversation-detail/message/buttons/action-button/action-button.component.ts +25 -5
  20. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.html +2 -1
  21. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.scss +14 -15
  22. package/src/app/chatlib/conversation-detail/message/buttons/link-button/link-button.component.ts +24 -5
  23. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.html +6 -1
  24. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.scss +12 -13
  25. package/src/app/chatlib/conversation-detail/message/buttons/text-button/text-button.component.ts +26 -5
  26. package/src/app/chatlib/conversation-detail/message/frame/frame.component.html +8 -2
  27. package/src/app/chatlib/conversation-detail/message/frame/frame.component.scss +36 -0
  28. package/src/app/chatlib/conversation-detail/message/frame/frame.component.ts +2 -2
  29. package/src/app/chatlib/conversation-detail/message/html/html.component.ts +0 -1
  30. package/src/app/chatlib/conversation-detail/message/image/image.component.html +3 -2
  31. package/src/app/chatlib/conversation-detail/message/image/image.component.scss +17 -5
  32. package/src/app/chatlib/conversation-detail/message/image/image.component.ts +1 -1
  33. package/src/app/chatlib/conversation-detail/message/info-message/info-message.component.scss +3 -2
  34. package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.html +16 -6
  35. package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.scss +1 -3
  36. package/src/app/chatlib/conversation-detail/message/message-attachment/message-attachment.component.ts +2 -0
  37. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.html +78 -52
  38. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.scss +63 -20
  39. package/src/app/chatlib/list-conversations-component/ion-list-conversations/ion-list-conversations.component.ts +14 -10
  40. package/src/app/components/canned-response/canned-response.component.html +9 -9
  41. package/src/app/components/canned-response/canned-response.component.scss +14 -7
  42. package/src/app/components/canned-response/canned-response.component.ts +5 -4
  43. package/src/app/components/contacts-directory/contacts-directory.component.html +22 -26
  44. package/src/app/components/contacts-directory/contacts-directory.component.scss +8 -6
  45. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.html +64 -47
  46. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.scss +98 -61
  47. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component.ts +24 -44
  48. package/src/app/components/conversation-detail/header-conversation-detail/header-conversation-detail.component_2.html +116 -0
  49. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.html +39 -42
  50. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.scss +67 -4
  51. package/src/app/components/conversation-detail/message-text-area/message-text-area.component.ts +82 -154
  52. package/src/app/components/conversation-info/info-content/info-content.component.html +23 -2
  53. package/src/app/components/conversation-info/info-content/info-content.component.ts +5 -6
  54. package/src/app/components/conversation-info/info-direct/info-direct.component.html +7 -14
  55. package/src/app/components/conversation-info/info-direct/info-direct.component.scss +23 -0
  56. package/src/app/components/conversation-info/info-direct/info-direct.component.ts +1 -6
  57. package/src/app/components/conversation-info/info-group/info-group.component.html +44 -108
  58. package/src/app/components/conversation-info/info-group/info-group.component.scss +101 -61
  59. package/src/app/components/conversation-info/info-group/info-group.component.ts +1 -0
  60. package/src/app/components/conversation-info/info-support-group/info-support-group.component.html +2 -1
  61. package/src/app/components/conversation-info/info-support-group/info-support-group.component.ts +0 -1
  62. package/src/app/components/{ddp-header/ddp-header.component.html → conversations-list/header-conversations-list/header-conversations-list.component.html} +3 -3
  63. package/src/app/components/{ddp-header/ddp-header.component.scss → conversations-list/header-conversations-list/header-conversations-list.component.scss} +16 -4
  64. package/src/app/components/{conversation-detail/bubble-my-message/bubble-my-message.component.spec.ts → conversations-list/header-conversations-list/header-conversations-list.component.spec.ts} +6 -6
  65. package/src/app/components/{ddp-header/ddp-header.component.ts → conversations-list/header-conversations-list/header-conversations-list.component.ts} +7 -16
  66. package/src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.html +12 -0
  67. package/src/app/components/conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.scss +14 -0
  68. package/src/app/components/{conversation-detail/option-header/option-header.component.spec.ts → conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.spec.ts} +5 -5
  69. package/src/app/components/{conversation-detail/option-header/option-header.component.ts → conversations-list/header-conversations-list-archived/header-conversations-list-archived.component.ts} +5 -4
  70. package/src/app/components/navbar/navbar.component.html +103 -0
  71. package/src/app/components/navbar/navbar.component.scss +249 -0
  72. package/src/app/components/{ddp-header/ddp-header.component.spec.ts → navbar/navbar.component.spec.ts} +6 -6
  73. package/src/app/components/navbar/navbar.component.ts +195 -0
  74. package/src/app/components/project-item/project-item.component.html +98 -149
  75. package/src/app/components/project-item/project-item.component.scss +43 -35
  76. package/src/app/components/project-item/project-item.component.ts +16 -4
  77. package/src/app/components/sidebar-user-details/sidebar-user-details.component.html +5 -5
  78. package/src/app/components/sidebar-user-details/sidebar-user-details.component.ts +24 -13
  79. package/src/app/components/utils/user-presence/user-presence.component.html +7 -2
  80. package/src/app/components/utils/user-presence/user-presence.component.scss +35 -18
  81. package/src/app/components/utils/user-presence/user-presence.component.ts +6 -10
  82. package/src/app/{pages → modals}/create-canned-response/create-canned-response-routing.module.ts +0 -0
  83. package/src/app/{pages → modals}/create-canned-response/create-canned-response.module.ts +0 -0
  84. package/src/app/{pages → modals}/create-canned-response/create-canned-response.page.html +0 -0
  85. package/src/app/{pages → modals}/create-canned-response/create-canned-response.page.scss +0 -0
  86. package/src/app/{pages → modals}/create-canned-response/create-canned-response.page.spec.ts +0 -0
  87. package/src/app/{pages → modals}/create-canned-response/create-canned-response.page.ts +13 -13
  88. package/src/app/{pages → modals}/loader-preview/loader-preview-routing.module.ts +0 -0
  89. package/src/app/{pages → modals}/loader-preview/loader-preview.module.ts +0 -0
  90. package/src/app/{pages → modals}/loader-preview/loader-preview.page.html +1 -1
  91. package/src/app/{pages → modals}/loader-preview/loader-preview.page.scss +4 -0
  92. package/src/app/{pages → modals}/loader-preview/loader-preview.page.spec.ts +0 -0
  93. package/src/app/{pages → modals}/loader-preview/loader-preview.page.ts +1 -2
  94. package/src/app/modals/send-email/send-email-routing.module.ts +17 -0
  95. package/src/app/modals/send-email/send-email.module.ts +31 -0
  96. package/src/app/modals/send-email/send-email.page.html +46 -0
  97. package/src/app/modals/send-email/send-email.page.scss +161 -0
  98. package/src/app/modals/send-email/send-email.page.spec.ts +24 -0
  99. package/src/app/modals/send-email/send-email.page.ts +89 -0
  100. package/src/app/pages/contacts-directory/contacts-directory.page.html +1 -1
  101. package/src/app/pages/contacts-directory/contacts-directory.page.scss +47 -0
  102. package/src/app/pages/contacts-directory/contacts-directory.page.ts +2 -0
  103. package/src/app/pages/conversation-detail/conversation-detail.module.ts +0 -8
  104. package/src/app/pages/conversation-detail/conversation-detail.page.html +48 -27
  105. package/src/app/pages/conversation-detail/conversation-detail.page.scss +45 -254
  106. package/src/app/pages/conversation-detail/conversation-detail.page.ts +330 -138
  107. package/src/app/pages/conversations-list/conversations-list.page.html +11 -8
  108. package/src/app/pages/conversations-list/conversations-list.page.scss +18 -2
  109. package/src/app/pages/conversations-list/conversations-list.page.ts +26 -24
  110. package/src/app/pages/profile-info/profile-info.page.html +2 -4
  111. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.html +1 -1
  112. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.scss +42 -0
  113. package/src/app/pages/unassigned-conversations/unassigned-conversations.page.ts +1 -0
  114. package/src/app/services/canned-responses/canned-responses.service.ts +26 -0
  115. package/src/app/services/projects/projects.service.spec.ts +12 -0
  116. package/src/app/services/projects/projects.service.ts +43 -0
  117. package/src/app/services/tiledesk/tiledesk.service.ts +33 -17
  118. package/src/app/shared/shared.module.ts +24 -33
  119. package/src/app/utils/toast.spec.ts +7 -0
  120. package/src/app/utils/toast.ts +48 -0
  121. package/src/assets/i18n/ar.json +288 -265
  122. package/src/assets/i18n/az.json +24 -1
  123. package/src/assets/i18n/de.json +25 -2
  124. package/src/assets/i18n/en.json +25 -2
  125. package/src/assets/i18n/es.json +26 -3
  126. package/src/assets/i18n/fr.json +24 -1
  127. package/src/assets/i18n/it.json +24 -1
  128. package/src/assets/i18n/kk.json +25 -2
  129. package/src/assets/i18n/pt.json +25 -2
  130. package/src/assets/i18n/ru.json +24 -1
  131. package/src/assets/i18n/sr.json +287 -264
  132. package/src/assets/i18n/sv.json +25 -2
  133. package/src/assets/i18n/tr.json +25 -2
  134. package/src/assets/i18n/uk.json +25 -2
  135. package/src/assets/i18n/uz.json +24 -1
  136. package/src/assets/js/chat21client.js +1 -1
  137. package/src/assets/sounds/interface-start.mp3 +0 -0
  138. package/src/assets/sounds/wheep-wheep.mp3 +0 -0
  139. package/src/chat-config-mqtt-localhost.json +2 -2
  140. package/src/chat-config-native-mqtt.json +3 -0
  141. package/src/chat21-core/models/conversation.ts +0 -1
  142. package/src/chat21-core/models/projects.ts +27 -0
  143. package/src/chat21-core/providers/firebase/firebase-typing.service.ts +7 -9
  144. package/src/chat21-core/providers/logger/customLogger.ts +1 -1
  145. package/src/chat21-core/providers/mqtt/mqtt-auth-service.ts +7 -8
  146. package/src/chat21-core/utils/constants.ts +7 -1
  147. package/src/chat21-core/utils/convertRequestToConversation.ts +41 -0
  148. package/src/chat21-core/utils/user-typing/user-typing.component.html +8 -5
  149. package/src/chat21-core/utils/user-typing/user-typing.component.scss +87 -17
  150. package/src/chat21-core/utils/user-typing/user-typing.component.ts +12 -94
  151. package/src/chat21-core/utils/utils.ts +41 -11
  152. package/src/global.scss +59 -255
  153. package/src/index.html +0 -9
  154. package/src/variables.scss +30 -10
  155. package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.html +0 -3
  156. package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.scss +0 -21
  157. package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.spec.ts +0 -24
  158. package/src/app/components/conversation-detail/bubble-day-message/bubble-day-message.component.ts +0 -14
  159. package/src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component.html +0 -54
  160. package/src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component.scss +0 -98
  161. package/src/app/components/conversation-detail/bubble-my-message/bubble-my-message.component.ts +0 -84
  162. package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.html +0 -30
  163. package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.scss +0 -83
  164. package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.spec.ts +0 -24
  165. package/src/app/components/conversation-detail/bubble-others-message/bubble-others-message.component.ts +0 -68
  166. package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.html +0 -3
  167. package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.scss +0 -10
  168. package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.spec.ts +0 -24
  169. package/src/app/components/conversation-detail/bubble-system-message/bubble-system-message.component.ts +0 -14
  170. package/src/app/components/conversation-detail/option-header/option-header.component.html +0 -13
  171. package/src/app/components/conversation-detail/option-header/option-header.component.scss +0 -0
package/CHANGELOG.md CHANGED
@@ -1,5 +1,24 @@
1
1
  # chat21-ionic ver 3.0
2
2
 
3
+ ### 3.0.86 in PROD
4
+
5
+ ### 3.0.86-rc.2
6
+ - bug-fixed: undefined reading 'channel' while render email icon in ion-conversation-detail component
7
+
8
+ ### 3.0.86-rc.1
9
+ - added: send-email modal on Email footer option click
10
+ - added: handle window['analytics'] error
11
+ - added: send Offline message email if lead is offline and conversation is still open
12
+ - changed: info-conversation width from 300px to 320px
13
+ - changed: z-index of element when canned-list is open
14
+ - changed: chat21client.js file to 1.12.3
15
+ - changed: disable email section for direct conversations
16
+ - changed: do not reload right side bar conversation-info component
17
+ - bug-fixed: canned element is not focused on arrowDown keyboard action
18
+ - bug-fixed: if scroll over canned element, focus on text-area is missed
19
+ - bug-fixed: on text-area change, scroll conversation-detail if needed
20
+ - removed: 'Resolve' conversation button from header-conversation detail component
21
+
3
22
  ## 3.0.85 in PROD
4
23
  - bug-fixed: remove focus from last edited canned
5
24
  - changed: do not cache right side-bar conversation-info component
@@ -16,19 +35,117 @@
16
35
  - bug-fixed: do not disable textArea if is a direct archived conversation
17
36
  - bug-fixed: canned item not fire click event on Firefox browser
18
37
 
19
- ## 3.0.81 in PROD
38
+ ### 3.0.82-rc.7
39
+ - bug-fixed: do not disable textArea if is a direct archived conversation
40
+ - bug-fixed: canned item not fire click event on Firefox browser
41
+
42
+ ### 3.0.82-rc.6
43
+ - bug-fixed: axios is undefined in chat21Client.js
44
+ - bug-fixed: if userImage not exist in sidebar--user-detail, no info of fillColor exist
45
+
46
+ ### 3.0.82-rc.3
47
+ - bug-fixed: incorrect dashboard urls in navbar
48
+ - changed: used logger in mqtt auth service
49
+
50
+ ### 3.0.82-rc.2
51
+ - changed: 'force' parameter to /close post as body content
52
+ - changed: enabled MTT
53
+ - changed: position of 'LogOut' button in sidebar-user-detail component
54
+ - bug-fixed: removed scrollbar on firefox browser in conversation-list, contacts-directory pages
55
+
56
+ ### 3.0.82-rc.1
57
+ - changed: forceArchive to force while calling /close API URL
58
+ - changed: chat21Client.js from 1.12.1 to 1.12.2
59
+ - changed: list conversations component with from 360px to 320px
60
+
61
+ ### 3.0.81 in PROD
62
+
63
+ ### 3.0.81-rc.3
64
+ - bug-fixed: if window width is less then 991px, move 'Close detail' icon to right
65
+ - changed: removed segment from index.html and loaded dynamically only if in not production
66
+
67
+ ### 3.0.81-rc.2
68
+ - changed: canned loader
20
69
  - bug-fixed: if search for a string that not correspond with an existing canned, was shown loader ever
21
70
 
22
- ## 3.0.80 in PROD
71
+ ### 3.0.81-rc.1
72
+ - added: remove bubble-message background if is image or iframe and no text is in message
73
+ - added: new sound if unassigned request arrive
74
+ - added: animation on hover an image
75
+ - added: parameter to /close to forse the closing of a conversation
76
+ - added: v.0.1.12.1 chatclient.js
77
+ - changed: info-message UI, image UI, frame UI
78
+ - bug-fixed: if click on canned icon, then close and clear '/' char, if click again on canned icon, '/' was not added to message text-area
79
+
80
+ ### 3.0.80 in PROD
23
81
  - bug-fixed: if search a canned response, after clicked it does not replaced into text-area
24
82
 
25
- ## 3.0.79 in PROD
83
+ ### 3.0.80-rc.1
84
+ - changed: moved sender_fullname inside bubble-message component
85
+ - changed: publish onConversationSelect event to stop audio after agent has clicked on it
86
+ - bug-fixed: /null loading flag_url in sidebar-user-detail
87
+
88
+ ### 3.0.79 in PROD
26
89
  - added: segment analytics events
27
90
 
28
- ## 3.0.78 in PROD
91
+ ### 3.0.79-rc.4
92
+ - bug-fixed: testsiteBaseUrl wrong value env property
93
+
94
+ ### 3.0.79-rc.3
95
+ - added: segment analytics for SignIn-SignOut-Resolved-MsgAdded-ConvAdded
96
+ - added: navbar component if not mobile
97
+ - added: NAVBAR translations
98
+ - changed: minor improvements on UI
99
+ - changed: ion-split-pane UI if mobile
100
+ - changed: moved hover 'add canned' button from bubble-message to ion-conversation-detail component
101
+ - changed: moved addNewCanned to tiledesk service to canned-responses service
102
+ - bug-fixed: open/close detail icon not aligned correctly on click 'close'
103
+
104
+ ### 3.0.79-rc.2
105
+ - added: new sound if new conversation is triggered in agent's chat
106
+ - changed: header UI of header-conversation-detail and unassigned-conversations components
107
+
108
+ ### 3.0.79-rc.1
109
+ - added: LABEL_ONLINE, LABEL_OFFLINE translations
110
+ - changed: renamed ddp-header with conversations-list-header
111
+ - changed: unified control to mobile/desktop app
112
+ - changed: LABEL_AVAILABLE/NOT_AVAILABLE with LABEL_ONLINE/OFFLINE in user-presence component
113
+ - changed: icon to user-presence
114
+ - changed: UI for conversation-list, conversation-detail and info-group for desktop and mobile
115
+ - changed: renamed option-header component with header-conversations-list-archived
116
+ - changed: contacts-directory UI
117
+ - bug-fixed: if app is opened and user press width expand, move correctly the right position
118
+
119
+ ## 3.0.78 in PROD
29
120
  - bug-fixed: unassigned request not sound the if is the first at all
30
121
  - bug-fixed: canned responses opens in incorrect mode
31
122
 
123
+ ### 3.0.78-rc.4
124
+ - bug-fixed: unassigned request not sound the if is the first at all
125
+ - bug-fixed: translations missed
126
+ - bug-fixed: direct info not showed in conversation-header component
127
+ - removed: conversation-footer border top
128
+ - changed: colors to message-text-area icons and message-attachment components
129
+
130
+ ### 3.0.78-rc.3
131
+ - changed: user-typing location moved from conversation-header to conversation-detail component
132
+ - changed: replace includes with startsWith for check what type of conversation is in project info conversation-list component
133
+ - added: styleMap integrations to some elements
134
+ - bug-fixed: no tooltip showed if no unserved request are present
135
+
136
+ ### 3.0.78-rc.2
137
+ - changed: project item UI and tooltip msg
138
+ - changed: conversation UI in conversations list component
139
+ - changed: conversation detail header component
140
+ - added: open/close info-conversation moved from conversation-header to conversation detail component
141
+ - bug-fixed: canned responses opens in incorrect mode
142
+
143
+ ### 3.0.78-rc.1
144
+ - changed: conversation-list page width increased
145
+ - changed: background changed in info-message component
146
+ - changed: project-item UI
147
+ - changed: conversation-list page UI
148
+
32
149
  ## 3.0.77 in PROD
33
150
 
34
151
  ### 3.0.77-rc.3
package/README.md CHANGED
@@ -100,8 +100,8 @@ Use [Docker Compose Tiledesk installation guide](https://github.com/Tiledesk/til
100
100
  },
101
101
  "apiUrl": "https://<YOUR-TILEDESK-API-URL>",
102
102
  "baseImageUrl": "https://<YOUR-BASE-IMAGE-URL>",
103
- "dashboardUrl": "https://<YOUR-DASHBOARD-URL>",
104
- "testsiteBaseUrl": "https:<YOUR-WIDGET-URL>/test_widget_page/index.html",
103
+ "dashboardUrl": "https://<YOUR-DASHBOARD-URL>"
104
+ "testsiteBaseUrl": "https:<YOUR-WIDGET-URL>/test_widget_page/index.html"
105
105
  "wsUrl": 'ws://' + window.location.hostname + '/ws/',
106
106
  }
107
107
  };
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@chat21/chat21-ionic",
3
3
  "author": "Tiledesk SRL",
4
- "version": "3.0.85",
4
+ "version": "3.0.86-rc.2",
5
5
  "license": "MIT License",
6
6
  "homepage": "https://tiledesk.com/",
7
7
  "repository": {
@@ -42,6 +42,7 @@
42
42
  "@ng-select/ng-select": "^3.7.3",
43
43
  "@ngx-translate/core": "^12.1.2",
44
44
  "@ngx-translate/http-loader": "^4.0.0",
45
+ "@types/marked": "^1.1.0",
45
46
  "angular2-moment": "^1.9.0",
46
47
  "autolinker": "^3.14.2",
47
48
  "cordova-android": "9.1.0",
@@ -59,7 +60,7 @@
59
60
  "core-js": "^2.5.4",
60
61
  "file-saver": "^2.0.5",
61
62
  "firebase": "^8.6.7",
62
- "marked": "^2.0.1",
63
+ "marked": "^2.1.3",
63
64
  "material-icons": "^1.11.2",
64
65
  "moment": "^2.24.0",
65
66
  "moment-timezone": "^0.5.28",
@@ -119,4 +120,4 @@
119
120
  "android"
120
121
  ]
121
122
  }
122
- }
123
+ }
@@ -43,7 +43,7 @@ const routes: Routes = [
43
43
  },
44
44
  {
45
45
  path: 'loader-preview',
46
- loadChildren: () => import('./pages/loader-preview/loader-preview.module').then( m => m.LoaderPreviewPageModule)
46
+ loadChildren: () => import('./modals/loader-preview/loader-preview.module').then( m => m.LoaderPreviewPageModule)
47
47
  },
48
48
  {
49
49
  path: 'unassigned-conversations',
@@ -59,13 +59,18 @@ const routes: Routes = [
59
59
  },
60
60
  {
61
61
  path: 'create-canned-response',
62
- loadChildren: () => import('./pages/create-canned-response/create-canned-response.module').then( m => m.CreateCannedResponsePageModule)
62
+ loadChildren: () => import('./modals/create-canned-response/create-canned-response.module').then( m => m.CreateCannedResponsePageModule)
63
+ },
64
+ {
65
+ path: 'send-email',
66
+ loadChildren: () => import('./modals/send-email/send-email.module').then( m => m.SendEmailModalModule)
63
67
  }
64
68
 
65
69
 
66
70
 
67
71
 
68
72
 
73
+
69
74
  // {
70
75
  // path: 'conversation-detail/:IDConv',
71
76
  // loadChildren: () => import('./pages/conversation-detail/conversation-detail.module').then( m => m.ConversationDetailPageModule)
@@ -5,6 +5,12 @@
5
5
 
6
6
  <app-network-offline></app-network-offline>
7
7
 
8
+
9
+ <app-navbar *ngIf="!IS_ON_MOBILE_DEVICE"
10
+ [isSoundEnabled]="isSoundEnabled"
11
+ (onSoundChange)="onSoundChange($event)">
12
+ </app-navbar>
13
+
8
14
  <div class="sidebar" [ngClass]="{'hide-sidebar': IS_ONLINE === false || IS_ON_MOBILE_DEVICE === true || SUPPORT_MODE === false}">
9
15
  <app-sidebar></app-sidebar>
10
16
  </div>
@@ -13,7 +19,7 @@
13
19
  <app-sidebar-user-details> </app-sidebar-user-details>
14
20
  </div>
15
21
 
16
- <ion-split-pane when="md" contentId="main">
22
+ <ion-split-pane when="md" contentId="main" [ngClass]="{'mobile': IS_ON_MOBILE_DEVICE}">
17
23
  <!-- 'sidebar-visible': IS_ONLINE === true && SUPPORT_MODE === true, -->
18
24
  <ion-nav #sidebarNav [root]="sidebarPage" [ngClass]="{'sidebar-hidden': IS_ON_MOBILE_DEVICE === true || SUPPORT_MODE === false}"></ion-nav>
19
25
  <!-- our side menu -->
@@ -1,7 +1,21 @@
1
+ @import '../variables.scss';
2
+
1
3
  .split-pane-md.split-pane-visible > .split-pane-side {
2
- min-width: 312px;
4
+ min-width: 320px; //360px; //312px;
3
5
  display: block; // Safari bug fix
4
- margin-left: 60px;
6
+ margin-left: var(--sidebar-width);
7
+ --border: 0px;
8
+ }
9
+
10
+ .split-pane-md:not(.mobile){
11
+ height: calc( 100% - var(--nav-bar-heigth));
12
+ margin-top: var(--nav-bar-heigth);
13
+ }
14
+
15
+ .navbar{
16
+ display: flex;
17
+ position: fixed;
18
+ top: 0px;
5
19
  }
6
20
 
7
21
  .sidebar-visible {
@@ -20,6 +34,10 @@
20
34
  left: 60px
21
35
  }
22
36
 
37
+ // ion-nav {
38
+ // background-color: var(--list-bkg-color);
39
+ // }
40
+
23
41
  // @media (min-width: 768px) {
24
42
  // .split-pane-md.split-pane-visible > .split-pane-side {
25
43
  // min-width: 312px;
@@ -1,5 +1,6 @@
1
- import { TYPE_DIRECT, TYPE_SUPPORT_GROUP } from 'src/chat21-core/utils/constants';
2
- import { tranlatedLanguage, URL_SOUND_LIST_CONVERSATION } from './../chat21-core/utils/constants';
1
+
2
+ import { TYPE_DIRECT, TYPE_SUPPORT_GROUP, URL_SOUND_CONVERSATION_UNASSIGNED } from 'src/chat21-core/utils/constants';
3
+ import { tranlatedLanguage, URL_SOUND_CONVERSATION_ADDED, URL_SOUND_LIST_CONVERSATION } from 'src/chat21-core/utils/constants';
3
4
  import { ArchivedConversationsHandlerService } from 'src/chat21-core/providers/abstract/archivedconversations-handler.service';
4
5
  import { AppStorageService } from 'src/chat21-core/providers/abstract/app-storage.service';
5
6
 
@@ -38,8 +39,8 @@ import { LoginPage } from './pages/authentication/login/login.page';
38
39
  import { ConversationListPage } from './pages/conversations-list/conversations-list.page';
39
40
 
40
41
  // utils
41
- import { checkPlatformIsMobile, isGroup, getParameterByName, searchIndexInArrayForUid, compareValues } from '../chat21-core/utils/utils';
42
- import { STORAGE_PREFIX, PLATFORM_MOBILE, PLATFORM_DESKTOP, CHAT_ENGINE_FIREBASE, AUTH_STATE_OFFLINE, AUTH_STATE_ONLINE } from '../chat21-core/utils/constants';
42
+ import { checkPlatformIsMobile, isGroup, getParameterByName, searchIndexInArrayForUid, compareValues, stripTags } from 'src/chat21-core/utils/utils';
43
+ import { STORAGE_PREFIX, PLATFORM_MOBILE, PLATFORM_DESKTOP, CHAT_ENGINE_FIREBASE, AUTH_STATE_OFFLINE, AUTH_STATE_ONLINE } from 'src/chat21-core/utils/constants';
43
44
  import { environment } from '../environments/environment';
44
45
  import { UserModel } from '../chat21-core/models/user';
45
46
  import { ConversationModel } from 'src/chat21-core/models/conversation';
@@ -87,11 +88,15 @@ export class AppComponent implements OnInit {
87
88
  public authModal: any;
88
89
 
89
90
  private audio: any;
91
+ private audio_NewConv: any;
92
+ private audio_Unassigned: any;
90
93
  private setIntervalTime: any;
91
94
  private setTimeoutSound: any;
92
95
  private isTabVisible: boolean = true;
93
- private isSoundEnabled: boolean;
96
+ public isSoundEnabled: boolean;
94
97
  private hasPlayed: boolean;
98
+ private hasPlayedConversation: boolean;
99
+ private hasPlayedConversationUnassigned: boolean;
95
100
  private tabTitle: string;
96
101
  private setTimeoutConversationsEvent: any;
97
102
  private logger: LoggerService = LoggerInstance.getInstance();
@@ -335,6 +340,7 @@ export class AppComponent implements OnInit {
335
340
 
336
341
 
337
342
  this.initializeApp('oninit');
343
+ this.initSegment()
338
344
  this.listenToPostMsgs();
339
345
  }
340
346
 
@@ -467,6 +473,7 @@ export class AppComponent implements OnInit {
467
473
  this.statusBar.styleDefault();
468
474
  this.navService.init(this.sidebarNav, this.detailNav);
469
475
  // this.persistence = appconfig.authPersistence;
476
+ // this.appStorageService.initialize(environment.storage_prefix, this.persistence, '')
470
477
  this.tiledeskAuthService.initialize(this.appConfigProvider.getConfig().apiUrl);
471
478
  this.messagingAuthService.initialize();
472
479
 
@@ -830,6 +837,14 @@ export class AppComponent implements OnInit {
830
837
  this.audio.src = chatBaseUrl + URL_SOUND_LIST_CONVERSATION;
831
838
  this.audio.load();
832
839
 
840
+ this.audio_NewConv = new Audio();
841
+ this.audio_NewConv.src = chatBaseUrl + URL_SOUND_CONVERSATION_ADDED;
842
+ this.audio_NewConv.load();
843
+
844
+ this.audio_Unassigned = new Audio();
845
+ this.audio_Unassigned.src = chatBaseUrl + URL_SOUND_CONVERSATION_UNASSIGNED;
846
+ this.audio_Unassigned.load();
847
+
833
848
  const sound_status = localStorage.getItem('dshbrd----sound')
834
849
  if(sound_status && sound_status !== 'undefined'){
835
850
  this.isSoundEnabled = sound_status === 'enabled'? true: false
@@ -839,7 +854,14 @@ export class AppComponent implements OnInit {
839
854
 
840
855
  }
841
856
 
842
- private manageTabNotification(badgeNotificationCount?: number) {
857
+ onSoundChange(event){
858
+ if(event && event !== undefined){
859
+ localStorage.setItem('dshbrd----sound', event)
860
+ this.isSoundEnabled = event === 'enabled'? true: false
861
+ }
862
+ }
863
+
864
+ private manageTabNotification(sound_type: string, badgeNotificationCount?: number) {
843
865
  if (!this.isTabVisible) {
844
866
  // TAB IS HIDDEN --> manage title and SOUND
845
867
  let badgeNewConverstionNumber = badgeNotificationCount? badgeNotificationCount : this.conversationsHandlerService.countIsNew()
@@ -863,7 +885,26 @@ export class AppComponent implements OnInit {
863
885
  this.isSoundEnabled = sound_status === 'enabled'? true: false
864
886
  }
865
887
  this.logger.debug('[APP-COMP] manageTabNotification can saund?', this.isInitialized, this.isSoundEnabled)
866
- if(this.isInitialized && this.isSoundEnabled) this.soundMessage()
888
+ if(this.isInitialized && this.isSoundEnabled) {
889
+ switch(sound_type){
890
+ case 'conv_added': {
891
+ this.soundConversationAdded();
892
+ break;
893
+ }
894
+ case 'new_message': {
895
+ this.soundMessage();
896
+ break;
897
+ }
898
+ case 'conv_unassigned': {
899
+ this.soundConversationUnassigned();
900
+ break;
901
+ }
902
+ default:{
903
+ this.soundMessage();
904
+ break;
905
+ }
906
+ }
907
+ }
867
908
  }
868
909
 
869
910
  soundMessage() {
@@ -879,7 +920,7 @@ export class AppComponent implements OnInit {
879
920
  // }, 4000);
880
921
 
881
922
  //play sound every 4s from the fist time you receive a conversation added/changed
882
- if(!this.hasPlayed){
923
+ if(!this.hasPlayed && !this.hasPlayedConversation){
883
924
  that.audio.play().then(() => {
884
925
  that.hasPlayed = true
885
926
  that.logger.debug('[APP-COMP] ****** soundMessage played *****');
@@ -891,6 +932,36 @@ export class AppComponent implements OnInit {
891
932
  });
892
933
  }
893
934
  }
935
+
936
+ soundConversationAdded(){
937
+ const that = this;
938
+ if(!this.hasPlayedConversation ){
939
+ that.audio_NewConv.play().then(() => {
940
+ that.hasPlayedConversation = true
941
+ that.logger.debug('[APP-COMP] ****** soundConversationAdded played *****');
942
+ setTimeout(() => {
943
+ that.hasPlayedConversation = false
944
+ }, 4000);
945
+ }).catch((error: any) => {
946
+ that.logger.error('[APP-COMP] ***soundConversationAdded error*', error);
947
+ });
948
+ }
949
+ }
950
+
951
+ soundConversationUnassigned(){
952
+ const that = this;
953
+ if(!this.hasPlayedConversationUnassigned ){
954
+ that.audio_Unassigned.play().then(() => {
955
+ that.hasPlayedConversationUnassigned = true
956
+ that.logger.debug('[APP-COMP] ****** soundConversationUnassigned played *****');
957
+ setTimeout(() => {
958
+ that.hasPlayedConversationUnassigned = false
959
+ }, 4000);
960
+ }).catch((error: any) => {
961
+ that.logger.error('[APP-COMP] ***soundConversationUnassigned error*', error);
962
+ });
963
+ }
964
+ }
894
965
  /**---------------- SOUND FUNCTIONS --> END <--- +*/
895
966
  /***************************************************+*/
896
967
 
@@ -938,11 +1009,11 @@ export class AppComponent implements OnInit {
938
1009
  this.events.subscribe('uidConvSelected:changed', this.subscribeChangedConversationSelected);
939
1010
  this.events.subscribe('profileInfoButtonClick:logout', this.subscribeProfileInfoButtonLogOut);
940
1011
  this.events.subscribe('unservedRequest:count', this.subscribeUnservedRequestCount)
941
-
1012
+ this.events.subscribe('convList:onConversationSelected', this.subscribeConversationSelected)
942
1013
  this.conversationsHandlerService.conversationAdded.subscribe((conversation: ConversationModel) => {
943
1014
  // this.logger.log('[APP-COMP] ***** subscribeConversationAdded *****', conversation);
944
1015
  if (conversation && conversation.is_new === true) {
945
- this.manageTabNotification()
1016
+ this.manageTabNotification('conv_added')
946
1017
  }
947
1018
  if(conversation) this.updateConversationsOnStorage()
948
1019
  });
@@ -960,7 +1031,7 @@ export class AppComponent implements OnInit {
960
1031
  this.logger.log('[APP-COMP] ***** subscribeConversationChangedDetailed currentUser: ', currentUser);
961
1032
  if (changes.value && changes.value.sender !== currentUser.uid) {
962
1033
  if(changes.value.is_new === changes.previousValue.is_new){
963
- this.manageTabNotification();
1034
+ this.manageTabNotification('new_message');
964
1035
  }
965
1036
  }
966
1037
  }
@@ -972,7 +1043,6 @@ export class AppComponent implements OnInit {
972
1043
  this.updateConversationsOnStorage();
973
1044
  isDevMode()? null: this.segmentResolved(conversation)
974
1045
  }
975
-
976
1046
  });
977
1047
  }
978
1048
 
@@ -1018,7 +1088,6 @@ export class AppComponent implements OnInit {
1018
1088
  this.initConversationsHandler(currentUser.uid);
1019
1089
  this.initArchivedConversationsHandler(currentUser.uid);
1020
1090
  isDevMode()? null: this.segmentSignIn()
1021
-
1022
1091
  }
1023
1092
  this.checkPlatform();
1024
1093
  try {
@@ -1059,7 +1128,7 @@ export class AppComponent implements OnInit {
1059
1128
 
1060
1129
  // this.unsubscribe$.next();
1061
1130
  // this.unsubscribe$.complete();
1062
-
1131
+
1063
1132
  }
1064
1133
 
1065
1134
  goToDashboardLogin(){
@@ -1120,7 +1189,7 @@ export class AppComponent implements OnInit {
1120
1189
  }
1121
1190
 
1122
1191
  subscribeProfileInfoButtonLogOut = (hasClickedLogout) => {
1123
- this.logger.log('[APP-COMP] FIREBASE-NOTIFICATION >>>> subscribeProfileInfoButtonLogOut');
1192
+ this.logger.log('[APP-COMP] FIREBASE-NOTIFICATION >>>> subscribeProfileInfoButtonLogOut ');
1124
1193
  // if (hasClickedLogout === true) {
1125
1194
  // this.removePresenceAndLogout()
1126
1195
  // }
@@ -1141,6 +1210,7 @@ export class AppComponent implements OnInit {
1141
1210
 
1142
1211
  if (res === 'success') {
1143
1212
  that.removePresenceAndLogout();
1213
+
1144
1214
  } else {
1145
1215
  that.removePresenceAndLogout();
1146
1216
  // that.presentToast();
@@ -1154,13 +1224,19 @@ export class AppComponent implements OnInit {
1154
1224
 
1155
1225
  subscribeUnservedRequestCount = (unservedRequestCount) => {
1156
1226
  if(unservedRequestCount && unservedRequestCount > 0){
1157
- this.logger.debug("hasToSoundUnservedRequestCount::::", this.isInitialized)
1227
+ this.logger.debug("subscribeUnservedRequestCount appIsInitialized::::",this.isInitialized)
1158
1228
  if(this.isInitialized){
1159
- this.manageTabNotification(unservedRequestCount) //sound and alternate title
1229
+ this.manageTabNotification('conv_unassigned', unservedRequestCount) //sound and alternate title
1160
1230
  }
1161
1231
  }
1162
1232
  }
1163
1233
 
1234
+ subscribeConversationSelected= (conversation: ConversationModel) => {
1235
+ if(conversation && conversation.is_new){
1236
+ this.audio_NewConv.pause()
1237
+ }
1238
+ }
1239
+
1164
1240
  private async presentModal(calledby): Promise<any> {
1165
1241
  this.logger.log('[APP-COMP] presentModal calledby', calledby, '- hadBeenCalledOpenModal: ', this.hadBeenCalledOpenModal);
1166
1242
  const attributes = { tenant: this.tenant, enableBackdropDismiss: false };
@@ -1268,8 +1344,21 @@ export class AppComponent implements OnInit {
1268
1344
  }
1269
1345
  }
1270
1346
 
1347
+ private initSegment(){
1348
+ if(!isDevMode()){
1349
+ var head = document.getElementsByTagName('head')[0];
1350
+ var script = document.createElement('script');
1351
+ script.type="text/javascript";
1352
+ script.text =`!function(){var analytics=window.analytics=window.analytics||[];if(!analytics.initialize)if(analytics.invoked)window.console&&console.error&&console.error("Segment snippet included twice.");else{analytics.invoked=!0;analytics.methods=["trackSubmit","trackClick","trackLink","trackForm","pageview","identify","reset","group","track","ready","alias","debug","page","once","off","on","addSourceMiddleware","addIntegrationMiddleware","setAnonymousId","addDestinationMiddleware"];analytics.factory=function(e){return function(){var t=Array.prototype.slice.call(arguments);t.unshift(e);analytics.push(t);return analytics}};for(var e=0;e<analytics.methods.length;e++){var key=analytics.methods[e];analytics[key]=analytics.factory(key)}analytics.load=function(key,e){var t=document.createElement("script");t.type="text/javascript";t.async=!0;t.src="https://cdn.segment.com/analytics.js/v1/" + key + "/analytics.min.js";var n=document.getElementsByTagName("script")[0];n.parentNode.insertBefore(t,n);analytics._loadOptions=e};analytics._writeKey="qaTU0wG6VH6xPAhOzD2kneI70Txg1fTB";;analytics.SNIPPET_VERSION="4.15.3";
1353
+ analytics.load("qaTU0wG6VH6xPAhOzD2kneI70Txg1fTB");
1354
+ analytics.page();
1355
+ }}();`
1356
+ head.appendChild(script);
1357
+ }
1358
+ }
1359
+
1271
1360
  private segmentSignIn(){
1272
- let user = this.tiledeskAuthService.getCurrentUser();
1361
+ let user = this.tiledeskAuthService.getCurrentUser()
1273
1362
  if(window['analytics']){
1274
1363
  try {
1275
1364
  window['analytics'].page("Chat Auth Page, Signin", {});
@@ -1301,7 +1390,7 @@ export class AppComponent implements OnInit {
1301
1390
 
1302
1391
 
1303
1392
  private segmentSignedOut(){
1304
- let user = this.tiledeskAuthService.getCurrentUser();
1393
+ let user = this.tiledeskAuthService.getCurrentUser()
1305
1394
  if(window['analytics']){
1306
1395
  try {
1307
1396
  window['analytics'].page("Chat Auth Page, Signed Out", {});
@@ -1341,7 +1430,7 @@ export class AppComponent implements OnInit {
1341
1430
 
1342
1431
  private segmentResolved(conversation: ConversationModel){
1343
1432
  let user = this.tiledeskAuthService.getCurrentUser();
1344
- if( window['analytics']){
1433
+ if(window['analytics']){
1345
1434
  try {
1346
1435
  window['analytics'].page("Chat List Conversations Page, Chat Resolved", {});
1347
1436
  } catch (err) {
@@ -1390,6 +1479,7 @@ export class AppComponent implements OnInit {
1390
1479
  }
1391
1480
  }
1392
1481
 
1482
+
1393
1483
  @HostListener('document:visibilitychange', [])
1394
1484
  visibilitychange() {
1395
1485
  // this.logger.debug("document TITLE", document.hidden, document.title);
@@ -1453,5 +1543,26 @@ export class AppComponent implements OnInit {
1453
1543
  this.isSoundEnabled = event.newValue === 'enabled'? true: false
1454
1544
  }
1455
1545
  }
1546
+
1547
+
1548
+ // @HostListener('mouseenter', ['$event'])
1549
+ // onMouseEnter(event: any) {
1550
+ // console.log('HostListener onMouseEnter-->', event)
1551
+ // }
1552
+
1553
+ // @HostListener('mouseleave', ['$event'])
1554
+ // onMouseLeave(event: any) {
1555
+ // console.log('HostListener onMouseLeave-->', event)
1556
+ // }
1557
+
1558
+ // @HostListener('focus', ['$event'])
1559
+ // onFocus(event: any) {
1560
+ // console.log('HostListener onFocus-->', event)
1561
+ // }
1562
+
1563
+ // @HostListener('blur', ['$event'])
1564
+ // onBlur(event: any) {
1565
+ // console.log('HostListener onBlur-->', event)
1566
+ // }
1456
1567
  }
1457
1568
 
@@ -1,3 +1,5 @@
1
+ import { SendEmailModal } from './modals/send-email/send-email.page';
2
+ import { ConvertRequestToConversation } from './../chat21-core/utils/convertRequestToConversation';
1
3
  import { LogLevel, PUSH_ENGINE_FIREBASE, PUSH_ENGINE_MQTT } from './../chat21-core/utils/constants';
2
4
  import { CustomLogger } from 'src/chat21-core/providers/logger/customLogger';
3
5
  import { NgModule, ErrorHandler, APP_INITIALIZER } from '@angular/core';
@@ -81,10 +83,10 @@ import { AppStorageService } from 'src/chat21-core/providers/abstract/app-storag
81
83
  import { ConversationListPageModule } from './pages/conversations-list/conversations-list.module';
82
84
  import { ConversationDetailPageModule } from './pages/conversation-detail/conversation-detail.module';
83
85
  import { LoginPageModule } from './pages/authentication/login/login.module';
84
- import { LoaderPreviewPageModule } from './pages/loader-preview/loader-preview.module';
86
+ import { LoaderPreviewPageModule } from './modals/loader-preview/loader-preview.module';
85
87
  import { CreateTicketPageModule } from './pages/create-ticket/create-ticket.module';
86
88
  import { CreateRequesterPageModule } from './pages/create-requester/create-requester.module';
87
- import { CreateCannedResponsePageModule } from './pages/create-canned-response/create-canned-response.module';
89
+ import { CreateCannedResponsePageModule } from './modals/create-canned-response/create-canned-response.module';
88
90
  // UTILS
89
91
  import { ScrollbarThemeModule } from './utils/scrollbar-theme.directive';
90
92
  import { SharedModule } from 'src/app/shared/shared.module';
@@ -101,6 +103,7 @@ import { ConnectionService } from 'ng-connection-service';
101
103
  import { WebSocketJs } from './services/websocket/websocket-js';
102
104
  import { UnassignedConversationsPageModule } from './pages/unassigned-conversations/unassigned-conversations.module';
103
105
  import { BrowserAnimationsModule } from '@angular/platform-browser/animations';
106
+ import { SendEmailModalModule } from './modals/send-email/send-email.module';
104
107
 
105
108
  // FACTORIES
106
109
  export function createTranslateLoader(http: HttpClient) {
@@ -287,6 +290,7 @@ const appInitializerFn = (appConfig: AppConfigProvider, logger: NGXLogger) => {
287
290
  ConversationInfoModule,
288
291
  NgxLinkifyjsModule.forRoot(),
289
292
  LoaderPreviewPageModule,
293
+ SendEmailModalModule,
290
294
  CreateTicketPageModule,
291
295
  CreateRequesterPageModule,
292
296
  CreateCannedResponsePageModule
@@ -369,7 +373,8 @@ const appInitializerFn = (appConfig: AppConfigProvider, logger: NGXLogger) => {
369
373
  EventsService,
370
374
  Chooser,
371
375
  Chat21Service,
372
- WebSocketJs
376
+ WebSocketJs,
377
+ ConvertRequestToConversation
373
378
  ]
374
379
  })
375
380
  export class AppModule { }
@@ -1,7 +1,7 @@
1
1
  import { ChangeDetectorRef, Component, ElementRef, EventEmitter, Input, OnInit, Output, ViewChild, SimpleChanges } from '@angular/core';
2
- import { MessageModel } from '../../../../chat21-core/models/message';
3
- import { isPopupUrl, popupUrl, stripTags } from '../../../../chat21-core/utils/utils';
4
- import { MSG_STATUS_SENT, MSG_STATUS_RETURN_RECEIPT, MSG_STATUS_SENT_SERVER, MAX_WIDTH_IMAGES, MESSAGE_TYPE_INFO, MESSAGE_TYPE_MINE, MESSAGE_TYPE_OTHERS } from '../../../../chat21-core/utils/constants';
2
+ import { MessageModel } from 'src/chat21-core/models/message';
3
+ import { isPopupUrl, popupUrl, stripTags } from 'src/chat21-core/utils/utils';
4
+ import { MSG_STATUS_SENT, MSG_STATUS_RETURN_RECEIPT, MSG_STATUS_SENT_SERVER, MAX_WIDTH_IMAGES, MESSAGE_TYPE_INFO, MESSAGE_TYPE_MINE, MESSAGE_TYPE_OTHERS } from 'src/chat21-core/utils/constants';
5
5
  import { LoggerService } from 'src/chat21-core/providers/abstract/logger.service';
6
6
  import { LoggerInstance } from 'src/chat21-core/providers/logger/loggerInstance';
7
7
  import { UploadService } from 'src/chat21-core/providers/abstract/upload.service';
@@ -17,11 +17,18 @@ export class ConversationContentComponent implements OnInit {
17
17
  @Input() messages: MessageModel[]
18
18
  @Input() senderId: string;
19
19
  @Input() baseLocation: string;
20
+ @Input() isConversationArchived: boolean;
21
+ @Input() isTypings: boolean;
22
+ @Input() idUserTypingNow: string;
23
+ @Input() nameUserTypingNow: string;
24
+ @Input() typingLocation: string;
25
+ @Input() fullscreenMode: boolean;
20
26
  @Input() translationMap: Map<string, string>;
21
27
  @Input() stylesMap: Map<string, string>;
22
28
  @Output() onBeforeMessageRender = new EventEmitter();
23
29
  @Output() onAfterMessageRender = new EventEmitter();
24
- @Output() onMenuOptionShow = new EventEmitter();
30
+ @Output() onMenuOptionShow = new EventEmitter<boolean>();
31
+ @Output() onEmojiiPickerShow = new EventEmitter<boolean>()
25
32
  @Output() onAttachmentButtonClicked = new EventEmitter();
26
33
  @Output() onScrollContent = new EventEmitter();
27
34