@microsoft/omnichannel-chat-widget 0.1.0-main.861673e → 0.1.0-main.875499b

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 (242) hide show
  1. package/README.md +259 -0
  2. package/lib/cjs/assets/Audios.js +8 -0
  3. package/lib/cjs/assets/Icons.js +28 -0
  4. package/lib/cjs/common/Constants.js +54 -4
  5. package/lib/cjs/common/contextDataStore/DataStoreManager.js +14 -0
  6. package/lib/cjs/{assets/assets.d.js → common/interfaces/IContextDataStore.js} +0 -0
  7. package/lib/cjs/common/storage/default/defaultCacheManager.js +34 -0
  8. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +114 -0
  9. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +86 -0
  10. package/lib/cjs/common/telemetry/TelemetryConstants.js +74 -5
  11. package/lib/cjs/common/telemetry/TelemetryHelper.js +13 -0
  12. package/lib/cjs/common/telemetry/TelemetryManager.js +17 -6
  13. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  14. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  15. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +54 -21
  16. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -5
  17. package/lib/cjs/common/utils.js +89 -2
  18. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  19. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -4
  20. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +11 -58
  21. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +6 -6
  22. package/lib/cjs/components/footerstateful/FooterStateful.js +9 -18
  23. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +11 -2
  24. package/lib/cjs/components/headerstateful/HeaderStateful.js +23 -13
  25. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +44 -0
  26. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +23 -0
  27. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  28. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +39 -0
  29. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +70 -0
  30. package/lib/cjs/components/livechatwidget/common/Deferred.js +42 -0
  31. package/lib/cjs/components/livechatwidget/common/authHelper.js +65 -0
  32. package/lib/cjs/components/livechatwidget/common/createAdapter.js +13 -1
  33. package/lib/cjs/components/livechatwidget/common/createFooter.js +7 -16
  34. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +12 -0
  35. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +32 -32
  36. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +79 -40
  37. package/lib/cjs/components/livechatwidget/common/endChat.js +142 -47
  38. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +5 -0
  39. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +48 -12
  40. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +144 -39
  41. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +11 -5
  42. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +22 -24
  43. package/lib/cjs/components/livechatwidget/common/shareObservable.js +45 -0
  44. package/lib/cjs/components/livechatwidget/common/startChat.js +207 -41
  45. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -3
  46. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +331 -77
  47. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  48. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +8 -0
  49. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  50. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +6 -4
  51. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  52. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +22 -10
  53. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +27 -5
  54. package/lib/cjs/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  55. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +110 -2
  56. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +4 -1
  57. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  58. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +6 -0
  59. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
  60. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  61. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  62. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +14 -0
  63. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +25 -48
  64. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
  65. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  66. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +52 -0
  67. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +98 -0
  68. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  69. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  70. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  71. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +117 -0
  72. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  73. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +45 -0
  74. package/lib/cjs/contexts/common/ConversationState.js +4 -2
  75. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +13 -8
  76. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +19 -5
  77. package/lib/cjs/contexts/createReducer.js +39 -12
  78. package/lib/cjs/controller/componentController.js +5 -5
  79. package/lib/cjs/plugins/newMessageEventHandler.js +99 -0
  80. package/lib/esm/assets/Audios.js +1 -0
  81. package/lib/esm/assets/Icons.js +11 -0
  82. package/lib/esm/common/Constants.js +50 -3
  83. package/lib/esm/common/contextDataStore/DataStoreManager.js +5 -0
  84. package/lib/esm/common/interfaces/IContextDataStore.js +1 -0
  85. package/lib/esm/common/storage/default/defaultCacheManager.js +19 -0
  86. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +102 -0
  87. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +71 -0
  88. package/lib/esm/common/telemetry/TelemetryConstants.js +70 -4
  89. package/lib/esm/common/telemetry/TelemetryHelper.js +13 -1
  90. package/lib/esm/common/telemetry/TelemetryManager.js +15 -6
  91. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  92. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  93. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +55 -17
  94. package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -5
  95. package/lib/esm/common/utils.js +64 -1
  96. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +14 -0
  97. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +22 -7
  98. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +11 -54
  99. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +6 -6
  100. package/lib/esm/components/footerstateful/FooterStateful.js +9 -18
  101. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +9 -3
  102. package/lib/esm/components/headerstateful/HeaderStateful.js +24 -14
  103. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +34 -0
  104. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +14 -0
  105. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  106. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +29 -0
  107. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +59 -0
  108. package/lib/esm/components/livechatwidget/common/Deferred.js +33 -0
  109. package/lib/esm/components/livechatwidget/common/authHelper.js +50 -0
  110. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -2
  111. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -15
  112. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +8 -0
  113. package/lib/esm/components/livechatwidget/common/createMarkdown.js +32 -31
  114. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +77 -41
  115. package/lib/esm/components/livechatwidget/common/endChat.js +139 -46
  116. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +3 -0
  117. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +42 -13
  118. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +134 -41
  119. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +10 -4
  120. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +19 -22
  121. package/lib/esm/components/livechatwidget/common/shareObservable.js +38 -0
  122. package/lib/esm/components/livechatwidget/common/startChat.js +195 -39
  123. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  124. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +318 -82
  125. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  126. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -0
  127. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  128. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +5 -4
  129. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  130. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +22 -10
  131. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +26 -6
  132. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  133. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +97 -2
  134. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  135. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  136. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +6 -0
  137. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
  138. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  139. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  140. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  141. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +23 -46
  142. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
  143. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  144. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  145. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +94 -0
  146. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  147. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  148. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  149. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +107 -0
  150. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  151. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +32 -0
  152. package/lib/esm/contexts/common/ConversationState.js +4 -2
  153. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +13 -8
  154. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +17 -5
  155. package/lib/esm/contexts/createReducer.js +39 -11
  156. package/lib/esm/controller/componentController.js +5 -5
  157. package/lib/esm/plugins/newMessageEventHandler.js +82 -0
  158. package/lib/types/assets/Audios.d.ts +1 -0
  159. package/lib/types/assets/Icons.d.ts +11 -0
  160. package/lib/types/common/Constants.d.ts +27 -1
  161. package/lib/types/common/contextDataStore/DataStoreManager.d.ts +4 -0
  162. package/lib/types/common/interfaces/IContextDataStore.d.ts +14 -0
  163. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  164. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  165. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  166. package/lib/types/common/telemetry/TelemetryConstants.d.ts +48 -2
  167. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  168. package/lib/types/common/telemetry/definitions/Payload.d.ts +12 -9
  169. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +3 -3
  170. package/lib/types/common/utils.d.ts +8 -1
  171. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  172. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  173. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +5 -1
  174. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  175. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  176. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  177. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  178. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  179. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  180. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  181. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  182. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -2
  183. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  184. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  185. package/lib/types/components/livechatwidget/common/startChat.d.ts +4 -2
  186. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
  187. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  188. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -0
  189. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +5 -2
  190. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  191. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  192. package/lib/types/components/prechatsurveypanestateful/interfaces/IPreChatSurveyPaneStatefulParams.d.ts +1 -1
  193. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  194. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -1
  195. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  196. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +2 -0
  197. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  198. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  199. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  200. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  201. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +4 -0
  202. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  203. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  204. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  205. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  206. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  207. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  208. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  209. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  210. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  211. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  212. package/lib/types/contexts/common/ConversationState.d.ts +4 -2
  213. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +5 -2
  214. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +14 -9
  215. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  216. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  217. package/package.json +14 -13
  218. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  219. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  220. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  221. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  222. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  223. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  224. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  225. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  226. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  227. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  228. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  229. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  230. package/lib/esm/assets/assets.d.js +0 -0
  231. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  232. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  233. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  234. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  235. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  236. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  237. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  238. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  239. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  240. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  241. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  242. package/lib/esm/assets/icons/wordIcon.svg +0 -6
@@ -1,5 +1,4 @@
1
1
  import MarkdownIt from "markdown-it";
2
- import MarkdownSlack from "slack-markdown-it";
3
2
  import MarkdownItForInline from "markdown-it-for-inline";
4
3
  import { defaultMarkdownLocalizedTexts } from "../../webchatcontainerstateful/common/defaultProps/defaultMarkdownLocalizedTexts";
5
4
  import { Constants } from "../../../common/Constants"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -12,27 +11,42 @@ export const createMarkdown = (disableMarkdownMessageFormatting, disableNewLineM
12
11
  html: true,
13
12
  linkify: true,
14
13
  breaks: !disableNewLineMarkdownSupport
14
+ }); // ToDo: Commenting below usage of plugin until deferred bug is resolved: https://github.com/mayashavin/markdown-it-slack/issues/1
15
+ // markdown.use(MarkdownSlack);
16
+ } else {
17
+ markdown = new MarkdownIt(Constants.Zero, {
18
+ html: true,
19
+ linkify: true,
20
+ breaks: !disableNewLineMarkdownSupport
15
21
  });
16
- markdown.use(MarkdownSlack); // Markdown override for open link in new tab
17
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, quotes
22
+ markdown.enable(["entity", // Rule to process html entity - {, ¯, "
23
+ "linkify", // Rule to replace link-like texts with link nodes
24
+ "html_block", // Rule to process html blocks and paragraphs
25
+ "html_inline", // Rule to process html tags
26
+ "newline" // Rule to proceess '\n'
27
+ ]);
28
+ } // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
29
 
19
- markdown.use(MarkdownItForInline, "url_new_win", "link_open", function (tokens, idx, env) {
20
- const targetAttrIndex = tokens[idx].attrIndex(Constants.Target); // Put a transparent pixel instead of the "open in new window" icon, so developers can easily modify the icon in CSS.
21
30
 
22
- const TRANSPARENT_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
31
+ markdown.use(MarkdownItForInline, "url_new_win", "link_open", function (tokens, idx, env) {
32
+ const targetAttrIndex = tokens[idx].attrIndex(Constants.Target); // Put a transparent pixel instead of the "open in new window" icon, so developers can easily modify the icon in CSS.
23
33
 
24
- if (~targetAttrIndex) {
25
- tokens[idx].attrs[targetAttrIndex][1] = Constants.Blank;
26
- } else {
27
- tokens[idx].attrPush([Constants.Target, Constants.Blank]);
28
- }
34
+ const TRANSPARENT_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
35
+
36
+ if (~targetAttrIndex) {
37
+ tokens[idx].attrs[targetAttrIndex][1] = Constants.Blank;
38
+ } else {
39
+ tokens[idx].attrPush([Constants.Target, Constants.Blank]);
40
+ }
41
+
42
+ const relAttrIndex = tokens[idx].attrIndex(Constants.TargetRelationship);
29
43
 
30
- const relAttrIndex = tokens[idx].attrIndex(Constants.TargetRelationship);
44
+ if (~relAttrIndex) {
45
+ tokens[idx].attrs[relAttrIndex][1] = Constants.TargetRelationshipAttributes;
46
+ } else {
47
+ tokens[idx].attrPush([Constants.TargetRelationship, Constants.TargetRelationshipAttributes]);
31
48
 
32
- if (~relAttrIndex) {
33
- tokens[idx].attrs[relAttrIndex][1] = Constants.TargetRelationshipAttributes;
34
- } else {
35
- tokens[idx].attrPush([Constants.TargetRelationship, Constants.TargetRelationshipAttributes]);
49
+ if (!disableMarkdownMessageFormatting) {
36
50
  tokens[idx].attrPush([Constants.Title, defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT]); // eslint-disable-next-line quotes
37
51
 
38
52
  const iconTokens = markdown.parseInline(`![${defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT}](${TRANSPARENT_GIF})`, env)[0].children;
@@ -42,20 +56,7 @@ export const createMarkdown = (disableMarkdownMessageFormatting, disableNewLineM
42
56
  tokens.splice(idx + 2, 0, ...iconTokens);
43
57
  }
44
58
  }
45
- });
46
- } else {
47
- markdown = new MarkdownIt(Constants.Zero, {
48
- html: true,
49
- linkify: true,
50
- breaks: !disableNewLineMarkdownSupport
51
- });
52
- markdown.enable(["entity", // Rule to process html entity - {, ¯, "
53
- "linkify", // Rule to replace link-like texts with link nodes
54
- "html_block", // Rule to process html blocks and paragraphs
55
- "html_inline", // Rule to process html tags
56
- "newline" // Rule to proceess '\n'
57
- ]);
58
- }
59
-
59
+ }
60
+ });
60
61
  return markdown;
61
62
  };
@@ -1,5 +1,7 @@
1
1
  /* eslint-disable @typescript-eslint/no-empty-function, @typescript-eslint/no-explicit-any */
2
+ import { ChatReconnectIconBase64, CloseChatButtonIconBase64, ModernChatIconBase64, ProactiveChatBannerBase64 } from "@microsoft/omnichannel-chat-components";
2
3
  import MockAdapter from "../../../webchatcontainerstateful/common/mockadapter";
4
+ import { NewMessageNotificationSoundBase64 } from "../../../../assets/Audios";
3
5
  import { WebChatStoreLoader } from "../../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader";
4
6
  import { activityStatusMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware";
5
7
  import { createActivityMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware";
@@ -8,10 +10,11 @@ import { createAvatarMiddleware } from "../../../webchatcontainerstateful/webcha
8
10
  import { createMarkdown } from "../createMarkdown";
9
11
  import { groupActivitiesMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware";
10
12
  import { typingIndicatorMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware";
11
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
13
+ import { createWebChatTelemetry } from "../../../webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger"; // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
+
12
15
  export const dummyDefaultProps = {
13
16
  audioNotificationProps: {
14
- audioSrc: "assets/audios/newMessageNotification.mp3"
17
+ audioSrc: NewMessageNotificationSoundBase64
15
18
  },
16
19
  callingContainerProps: {
17
20
  controlProps: {
@@ -163,24 +166,28 @@ export const dummyDefaultProps = {
163
166
  },
164
167
  audioCallButtonStyleProps: {
165
168
  borderRadius: "50%",
166
- color: "#FFFFFF",
167
169
  backgroundColor: "#008000",
168
170
  lineHeight: "40px",
169
171
  height: "40px",
170
172
  width: "40px",
171
- fontSize: 18
173
+ icon: {
174
+ fontSize: 18,
175
+ color: "#FFFFFF"
176
+ }
172
177
  },
173
178
  audioCallButtonHoverStyleProps: {
174
179
  filter: "brightness(0.8)"
175
180
  },
176
181
  videoCallButtonStyleProps: {
177
182
  borderRadius: "50%",
178
- color: "#FFFFFF",
179
183
  backgroundColor: "#008000",
180
184
  lineHeight: "40px",
181
185
  height: "40px",
182
186
  width: "40px",
183
- fontSize: 18
187
+ icon: {
188
+ fontSize: 18,
189
+ color: "#FFFFFF"
190
+ }
184
191
  },
185
192
  videoCallButtonHoverStyleProps: {
186
193
  filter: "brightness(0.8)"
@@ -191,13 +198,15 @@ export const dummyDefaultProps = {
191
198
  },
192
199
  declineCallButtonStyleProps: {
193
200
  borderRadius: "50%",
194
- color: "#FFFFFF",
195
201
  backgroundColor: "#DC0000",
196
202
  lineHeight: "40px",
197
203
  height: "40px",
198
204
  width: "40px",
199
- fontSize: 18,
200
- marginLeft: "5px"
205
+ marginLeft: "5px",
206
+ icon: {
207
+ fontSize: 18,
208
+ color: "#FFFFFF"
209
+ }
201
210
  },
202
211
  incomingCallTitleStyleProps: {
203
212
  margin: "0 5px",
@@ -250,18 +259,6 @@ export const dummyDefaultProps = {
250
259
  width: "50px",
251
260
  fontSize: "18px"
252
261
  },
253
- currentCallTimerStyleProps: {
254
- borderRadius: "2px",
255
- margin: "1px",
256
- color: "#FFFFFF",
257
- paddingTop: "18px",
258
- fontSize: 12,
259
- fontFamily: "Segoe UI, Arial, sans-serif",
260
- backgroundColor: "darkgrey",
261
- height: "45px",
262
- width: "50px",
263
- textAlign: "center"
264
- },
265
262
  videoTileStyleProps: {
266
263
  width: "100%",
267
264
  marginLeft: "auto",
@@ -325,7 +322,10 @@ export const dummyDefaultProps = {
325
322
  hideChatTextContainer: false,
326
323
  hideChatSubtitle: false,
327
324
  hideChatTitle: false,
328
- hideNotificationBubble: true
325
+ hideNotificationBubble: true,
326
+ unreadMessageString: "new messages",
327
+ largeUnreadMessageString: "99+",
328
+ ariaLabelUnreadMessageString: "you have new messages"
329
329
  },
330
330
  styleProps: {
331
331
  generalStyleProps: {
@@ -366,7 +366,7 @@ export const dummyDefaultProps = {
366
366
  margin: "-2px -2px -2px -3px",
367
367
  justifyContent: "center",
368
368
  backgroundSize: "65% 65%",
369
- backgroundImage: "assets/imgs/chat.svg",
369
+ backgroundImage: `url(${ModernChatIconBase64})`,
370
370
  display: "flex",
371
371
  backgroundRepeat: "no-repeat",
372
372
  backgroundPosition: "center"
@@ -777,6 +777,7 @@ export const dummyDefaultProps = {
777
777
  },
778
778
  audioNotificationButtonProps: {
779
779
  id: "oc-lcw-footer-audionotification-button",
780
+ type: "icon",
780
781
  ariaLabel: "Turn sound off",
781
782
  toggleAriaLabel: "Turn sound on",
782
783
  iconName: "Volume3",
@@ -802,8 +803,10 @@ export const dummyDefaultProps = {
802
803
  padding: "0 10px 5px 10px"
803
804
  },
804
805
  downloadTranscriptButtonStyleProps: {
805
- color: "blue",
806
- fontSize: 16,
806
+ icon: {
807
+ color: "blue",
808
+ fontSize: 16
809
+ },
807
810
  height: "25px",
808
811
  lineHeight: "25px",
809
812
  width: "25px"
@@ -813,8 +816,10 @@ export const dummyDefaultProps = {
813
816
  backgroundColor: "#C8C8C8"
814
817
  },
815
818
  emailTranscriptButtonStyleProps: {
816
- color: "blue",
817
- fontSize: 16,
819
+ cicon: {
820
+ color: "blue",
821
+ fontSize: 16
822
+ },
818
823
  height: "25px",
819
824
  lineHeight: "25px",
820
825
  width: "25px"
@@ -824,8 +829,10 @@ export const dummyDefaultProps = {
824
829
  backgroundColor: "#C8C8C8"
825
830
  },
826
831
  audioNotificationButtonStyleProps: {
827
- color: "blue",
828
- fontSize: 16,
832
+ icon: {
833
+ color: "blue",
834
+ fontSize: 16
835
+ },
829
836
  height: "25px",
830
837
  lineHeight: "25px",
831
838
  width: "25px"
@@ -876,7 +883,7 @@ export const dummyDefaultProps = {
876
883
  className: undefined
877
884
  },
878
885
  closeButtonProps: {
879
- id: "oc-lcw-header-minimize-button",
886
+ id: "oc-lcw-header-close-button",
880
887
  type: "icon",
881
888
  iconName: "ChromeClose",
882
889
  ariaLabel: "Close",
@@ -887,7 +894,7 @@ export const dummyDefaultProps = {
887
894
  },
888
895
  headerIconProps: {
889
896
  id: "oc-lcw-header-icon",
890
- src: "assets/imgs/chatIcon.svg",
897
+ src: ModernChatIconBase64,
891
898
  alt: "Chat Icon",
892
899
  className: undefined
893
900
  },
@@ -1012,7 +1019,7 @@ export const dummyDefaultProps = {
1012
1019
  alignSelf: "auto"
1013
1020
  },
1014
1021
  iconImageProps: {
1015
- src: "assets/imgs/chat.svg",
1022
+ src: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2lpKSI+DQo8cGF0aCBkPSJNMTUuMTk3MSAxNi4yNzI1VjI1Ljg1MjRDMTUuMTk3MSAyNy4zODExIDE1Ljg0MDEgMjcuNTIwMSAxNi45ODMyIDI3LjUyMDFMMjYuNzA4NCAyNy41NjQ5TDMxLjAwMzkgMzIuMzEyM1YyNy41NjQ5SDMxLjg5N0MzMi4xNzQzIDI3LjU2MzcgMzIuNDQ4NyAyNy41MDc3IDMyLjcwNDUgMjcuNDAwMUMzMi45NjAzIDI3LjI5MjQgMzMuMTkyNSAyNy4xMzUzIDMzLjM4NzggMjYuOTM3NUMzMy41ODMxIDI2LjczOTggMzMuNzM3NyAyNi41MDU0IDMzLjg0MjcgMjYuMjQ3N0MzMy45NDc4IDI1Ljk5IDM0LjAwMTMgMjUuNzE0IDM0LjAwMDEgMjUuNDM1NVYxNi4zMDM4QzM0LjAwMTMgMTYuMDI1NCAzMy45NDc4IDE1Ljc0OTQgMzMuODQyNyAxNS40OTE3QzMzLjczNzcgMTUuMjM0IDMzLjU4MzEgMTQuOTk5NiAzMy4zODc4IDE0LjgwMThDMzMuMTkyNSAxNC42MDQxIDMyLjk2MDMgMTQuNDQ2OSAzMi43MDQ1IDE0LjMzOTNDMzIuNDQ4NyAxNC4yMzE2IDMyLjE3NDMgMTQuMTc1NiAzMS44OTcgMTQuMTc0NEwxNy4zMDQ3IDE0LjE0MzFDMTcuMDI2OSAxNC4xNDM3IDE2Ljc1MiAxNC4xOTkyIDE2LjQ5NTcgMTQuMzA2NkMxNi4yMzk0IDE0LjQxNCAxNi4wMDY3IDE0LjU3MTEgMTUuODEwOSAxNC43Njg5QzE1LjYxNTIgMTQuOTY2NyAxNS40NjAyIDE1LjIwMTMgMTUuMzU0OCAxNS40NTkzQzE1LjI0OTUgMTUuNzE3MyAxNS4xOTU5IDE1Ljk5MzYgMTUuMTk3MSAxNi4yNzI1WiIgZmlsbD0iI0Q2RDZENiIvPg0KPC9nPg0KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjFfZGlpKSI+DQo8cGF0aCBkPSJNMjcuODczNSA2LjY5ODg3VjE4Ljg0MDlDMjcuODczNSAyMC43Nzg1IDI3LjA1NzIgMjAuOTU0NiAyNS42MDU4IDIwLjk1NDZMMTMuMjU4IDIxLjAxMTRMNy44MDQxNCAyNy4wMjg1VjIxLjAxMTRINi42NzAyN0M2LjMxODEyIDIxLjAwOTkgNS45Njk3MSAyMC45Mzg5IDUuNjQ0OTMgMjAuODAyNUM1LjMyMDE2IDIwLjY2NjEgNS4wMjUzOCAyMC40NjY4IDQuNzc3NDIgMjAuMjE2MkM0LjUyOTQ2IDE5Ljk2NTYgNC4zMzMxOSAxOS42Njg1IDQuMTk5OCAxOS4zNDE5QzQuMDY2NDIgMTkuMDE1MiAzLjk5ODUzIDE4LjY2NTUgNC4wMDAwMiAxOC4zMTI1VjYuNzM4NjRDMy45OTg1MyA2LjM4NTcxIDQuMDY2NDIgNi4wMzU5NSA0LjE5OTggNS43MDkzMUM0LjMzMzE5IDUuMzgyNjcgNC41Mjk0NiA1LjA4NTU3IDQuNzc3NDIgNC44MzQ5NUM1LjAyNTM4IDQuNTg0MzQgNS4zMjAxNiA0LjM4NTEzIDUuNjQ0OTMgNC4yNDg2OUM1Ljk2OTcxIDQuMTEyMjUgNi4zMTgxMiA0LjA0MTI2IDYuNjcwMjcgNC4wMzk3N0wyNS4xOTc2IDRDMjUuNTUwMiA0LjAwMDc0IDI1Ljg5OTMgNC4wNzExOCAyNi4yMjQ3IDQuMjA3MjlDMjYuNTUwMSA0LjM0MzM5IDI2Ljg0NTYgNC41NDI0OSAyNy4wOTQxIDQuNzkzMThDMjcuMzQyNyA1LjA0Mzg2IDI3LjUzOTUgNS4zNDEyMiAyNy42NzMyIDUuNjY4MjNDMjcuODA3IDUuOTk1MjMgMjcuODc1IDYuMzQ1NDYgMjcuODczNSA2LjY5ODg3WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyKSIvPg0KPC9nPg0KPGRlZnM+DQo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2lpIiB4PSIxNS4xOTcxIiB5PSIxNC4xNDMxIiB3aWR0aD0iMTguODAzMSIgaGVpZ2h0PSIxOC4xNjkzIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+DQo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMC4yIiBkeT0iLTAuMiIvPg0KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIvPg0KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAuMTcgMCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9InNoYXBlIiByZXN1bHQ9ImVmZmVjdDFfaW5uZXJTaGFkb3ciLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMC41IiBkeT0iLTAuNSIvPg0KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIvPg0KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAuMTYgMCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9ImVmZmVjdDFfaW5uZXJTaGFkb3ciIHJlc3VsdD0iZWZmZWN0Ml9pbm5lclNoYWRvdyIvPg0KPC9maWx0ZXI+DQo8ZmlsdGVyIGlkPSJmaWx0ZXIxX2RpaSIgeD0iMCIgeT0iMCIgd2lkdGg9IjM5Ljg3MzYiIGhlaWdodD0iMzkuMDI4NSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPg0KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+DQo8ZmVPZmZzZXQgZHg9IjQiIGR5PSI0Ii8+DQo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI0Ii8+DQo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4yNSAwIi8+DQo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3ciIHJlc3VsdD0ic2hhcGUiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMiIgZHk9Ii0yIi8+DQo8ZmVDb21wb3NpdGUgaW4yPSJoYXJkQWxwaGEiIG9wZXJhdG9yPSJhcml0aG1ldGljIiBrMj0iLTEiIGszPSIxIi8+DQo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMC4xNyAwIi8+DQo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0ic2hhcGUiIHJlc3VsdD0iZWZmZWN0Ml9pbm5lclNoYWRvdyIvPg0KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+DQo8ZmVPZmZzZXQgZHg9Ii0xIiBkeT0iLTEiLz4NCjxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9ImFyaXRobWV0aWMiIGsyPSItMSIgazM9IjEiLz4NCjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwLjE2IDAiLz4NCjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJlZmZlY3QyX2lubmVyU2hhZG93IiByZXN1bHQ9ImVmZmVjdDNfaW5uZXJTaGFkb3ciLz4NCjwvZmlsdGVyPg0KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyIiB4MT0iLTAuMzk1MDAxIiB5MT0iMjMuMTI4MiIgeDI9IjIwLjEwNTgiIHkyPSIzNy44NDc0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQo8c3RvcCBzdG9wLWNvbG9yPSIjRUZFRkVGIi8+DQo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IndoaXRlIi8+DQo8L2xpbmVhckdyYWRpZW50Pg0KPC9kZWZzPg0KPC9zdmc+DQo=",
1016
1023
  imageFit: 0,
1017
1024
  width: "86px",
1018
1025
  height: "86px",
@@ -1172,7 +1179,8 @@ export const dummyDefaultProps = {
1172
1179
  backgroundColor: "#FFFFFF",
1173
1180
  borderColor: "#F1F1F1"
1174
1181
  }
1175
- }
1182
+ },
1183
+ isCustomerVoiceSurveyCompact: undefined
1176
1184
  },
1177
1185
  proactiveChatPaneProps: {
1178
1186
  componentOverrides: {
@@ -1192,7 +1200,17 @@ export const dummyDefaultProps = {
1192
1200
  hideSubtitle: false,
1193
1201
  subtitleText: "Live chat support!",
1194
1202
  hideCloseButton: false,
1195
- closeButtonAriaLabel: "Close Button",
1203
+ closeButtonProps: {
1204
+ id: "oc-lcw-proactivechat-closebutton",
1205
+ type: "icon",
1206
+ iconName: "ChromeClose",
1207
+ ariaLabel: "Close",
1208
+ imageIconProps: undefined,
1209
+ text: "Close",
1210
+ onClick: undefined,
1211
+ className: undefined,
1212
+ hideButtonTitle: true
1213
+ },
1196
1214
  isBodyContainerHorizantal: false,
1197
1215
  hideBodyTitle: false,
1198
1216
  bodyTitleText: "Hi! Have any questions? I am here to help.",
@@ -1220,7 +1238,7 @@ export const dummyDefaultProps = {
1220
1238
  },
1221
1239
  headerContainerStyleProps: {
1222
1240
  backgroundColor: "rgb(49, 95, 162)",
1223
- backgroundImage: "assets/imgs/Proactive_banner.png",
1241
+ backgroundImage: `url(${ProactiveChatBannerBase64})`,
1224
1242
  backgroundPosition: "initial",
1225
1243
  backgroundRepeat: "no-repeat",
1226
1244
  borderTopLeftRadius: "inherit",
@@ -1248,7 +1266,7 @@ export const dummyDefaultProps = {
1248
1266
  fontWeight: "600"
1249
1267
  },
1250
1268
  closeButtonStyleProps: {
1251
- backgroundImage: "assets/imgs/closeChatButton.svg",
1269
+ backgroundImage: `url(${CloseChatButtonIconBase64})`,
1252
1270
  backgroundPosition: "center",
1253
1271
  backgroundRepeat: "no-repeat",
1254
1272
  color: "#605e5c",
@@ -1371,7 +1389,7 @@ export const dummyDefaultProps = {
1371
1389
  lineHeight: "19px"
1372
1390
  },
1373
1391
  iconStyleProps: {
1374
- backgroundImage: "assets/imgs//ChatReconnectPopupIcon.png",
1392
+ backgroundImage: `url(${ChatReconnectIconBase64})`,
1375
1393
  backgroundPosition: "center",
1376
1394
  backgroundRepeat: "no-repeat",
1377
1395
  backgroundSize: "200px",
@@ -1420,9 +1438,9 @@ export const dummyDefaultProps = {
1420
1438
  startNewChatButtonClassName: undefined
1421
1439
  }
1422
1440
  },
1423
- authClientFunction: undefined,
1424
1441
  isReconnectEnabled: undefined,
1425
- reconnectId: undefined
1442
+ reconnectId: undefined,
1443
+ redirectInSameWindow: undefined
1426
1444
  },
1427
1445
  styleProps: {
1428
1446
  generalStyles: {
@@ -1494,7 +1512,7 @@ export const dummyDefaultProps = {
1494
1512
  internalErrorBoxClass: undefined,
1495
1513
  internalRenderErrorBox: undefined,
1496
1514
  locale: "en-US",
1497
- onTelemetry: undefined,
1515
+ onTelemetry: createWebChatTelemetry(),
1498
1516
  overrideLocalizedStrings: undefined,
1499
1517
  renderMarkdown: createMarkdown(false, false),
1500
1518
  scrollToEndButtonMiddleware: undefined,
@@ -1542,6 +1560,12 @@ export const dummyDefaultProps = {
1542
1560
  lineHeight: "16px",
1543
1561
  padding: "0px 10px 0 10px"
1544
1562
  },
1563
+ userMessageBoxStyles: {
1564
+ maxWidth: "75%"
1565
+ },
1566
+ systemMessageBoxStyles: {
1567
+ maxWidth: "75%"
1568
+ },
1545
1569
  typingIndicatorStyleProps: {
1546
1570
  marginLeft: "10px",
1547
1571
  marginBottom: "5px",
@@ -1661,6 +1685,9 @@ export const dummyDefaultProps = {
1661
1685
  },
1662
1686
  attachmentSizeStyles: {
1663
1687
  display: "none"
1688
+ },
1689
+ receivedMessageAnchorStyles: {
1690
+ color: "white"
1664
1691
  }
1665
1692
  },
1666
1693
  localizedTexts: {
@@ -1684,7 +1711,16 @@ export const dummyDefaultProps = {
1684
1711
  MIDDLEWARE_MESSAGE_RETRY: "Retry",
1685
1712
  PRECHAT_REQUIRED_FIELD_MISSING_MESSAGE: "{0} field is required",
1686
1713
  MARKDOWN_EXTERNAL_LINK_ALT: "Opens in a new window; external."
1714
+ },
1715
+ botMagicCode: {
1716
+ disabled: false,
1717
+ fwdUrl: ""
1718
+ },
1719
+ adaptiveCardStyles: {
1720
+ background: "white",
1721
+ color: "black"
1687
1722
  }
1688
1723
  },
1689
- telemetryConfig: undefined
1724
+ telemetryConfig: undefined,
1725
+ getAuthToken: undefined
1690
1726
  };
@@ -1,57 +1,150 @@
1
- import { LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
1
+ import { BroadcastEvent, LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
2
+ import { BroadcastService } from "@microsoft/omnichannel-chat-components";
2
3
  import { ConversationState } from "../../../contexts/common/ConversationState";
3
4
  import { LiveChatWidgetActionType } from "../../../contexts/common/LiveChatWidgetActionType";
4
- import { NotificationHandler } from "../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler";
5
- import { NotificationScenarios } from "../../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios";
6
5
  import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
7
6
  import { WebChatStoreLoader } from "../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader";
8
7
  import { defaultWebChatContainerStatefulProps } from "../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps";
9
- import { BroadcastService } from "@microsoft/omnichannel-chat-components"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
+ import { PostChatSurveyMode } from "../../postchatsurveypanestateful/enums/PostChatSurveyMode";
9
+ import { Constants } from "../../../common/Constants";
10
+ import { addDelayInMs, getWidgetEndChatEventName } from "../../../common/utils"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
10
11
 
11
- export const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter) => {
12
- try {
13
- var _props$webChatContain;
12
+ const prepareEndChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state) => {
13
+ var _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3, _state$domainStates$l4, _conversationDetails;
14
14
 
15
- TelemetryHelper.logConfigDataEvent(LogLevel.INFO, {
16
- Event: TelemetryEvent.EndChatSDKCall
17
- });
18
- await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat());
19
- adapter === null || adapter === void 0 ? void 0 : adapter.end();
20
- setAdapter(undefined);
21
- setWebChatStyles({ ...defaultWebChatContainerStatefulProps.webChatStyles,
22
- ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
23
- });
24
- WebChatStoreLoader.store = null;
25
- dispatch({
26
- type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
27
- payload: ConversationState.Closed
28
- });
29
- dispatch({
30
- type: LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
31
- payload: false
32
- });
33
- dispatch({
34
- type: LiveChatWidgetActionType.SET_RECONNECT_ID,
35
- payload: undefined
36
- });
37
- dispatch({
38
- type: LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION,
39
- payload: null
40
- });
41
- dispatch({
42
- type: LiveChatWidgetActionType.SET_CHAT_TOKEN,
43
- payload: undefined
44
- });
45
- BroadcastService.postMessage({
46
- eventName: "EndChat"
47
- });
48
- } catch (ex) {
49
- TelemetryHelper.logSDKEvent(LogLevel.ERROR, {
50
- Event: TelemetryEvent.EndChatSDKCallFailed,
15
+ const isPostChatEnabled = (_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.msdyn_postconversationsurveyenable;
16
+ const postChatSurveyMode = (_state$domainStates$l3 = state.domainStates.liveChatConfig) === null || _state$domainStates$l3 === void 0 ? void 0 : (_state$domainStates$l4 = _state$domainStates$l3.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l4 === void 0 ? void 0 : _state$domainStates$l4.msdyn_postconversationsurveymode; // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+
18
+ let conversationDetails = undefined;
19
+
20
+ try {
21
+ conversationDetails = await chatSDK.getConversationDetails();
22
+ } catch (erorr) {
23
+ TelemetryHelper.logActionEvent(LogLevel.ERROR, {
24
+ Event: TelemetryEvent.GetConversationDetailsException,
51
25
  ExceptionDetails: {
52
- exception: ex
26
+ exception: `Failed to get conversation details: ${erorr}`
53
27
  }
54
28
  });
55
- NotificationHandler.notifyError(NotificationScenarios.Connection, "End Chat Call Failed: " + ex);
56
29
  }
57
- };
30
+
31
+ if (isPostChatEnabled === "true" && ((_conversationDetails = conversationDetails) === null || _conversationDetails === void 0 ? void 0 : _conversationDetails.canRenderPostChat) === Constants.truePascal) {
32
+ const skipEndChatSDK = false;
33
+ const skipCloseChat = true;
34
+ await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, false);
35
+
36
+ if (postChatSurveyMode === PostChatSurveyMode.Embed) {
37
+ dispatch({
38
+ type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
39
+ payload: ConversationState.PostchatLoading
40
+ });
41
+ await addDelayInMs(Constants.PostChatLoadingDurationInMs);
42
+ const loadPostChatEvent = {
43
+ eventName: BroadcastEvent.LoadPostChatSurvey
44
+ };
45
+ BroadcastService.postMessage(loadPostChatEvent);
46
+ } else if (postChatSurveyMode === PostChatSurveyMode.Link) {
47
+ dispatch({
48
+ type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
49
+ payload: ConversationState.InActive
50
+ });
51
+ }
52
+
53
+ return;
54
+ }
55
+
56
+ await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, true);
57
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
58
+
59
+
60
+ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTab) => {
61
+ if (!skipEndChatSDK) {
62
+ try {
63
+ TelemetryHelper.logSDKEvent(LogLevel.INFO, {
64
+ Event: TelemetryEvent.EndChatSDKCall
65
+ });
66
+ await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat());
67
+ } catch (ex) {
68
+ TelemetryHelper.logSDKEvent(LogLevel.ERROR, {
69
+ Event: TelemetryEvent.EndChatSDKCallFailed,
70
+ ExceptionDetails: {
71
+ exception: ex
72
+ }
73
+ });
74
+ postMessageToOtherTab = false;
75
+ }
76
+ } // Need to clear these states immediately when chat ended from OC.
77
+
78
+
79
+ dispatch({
80
+ type: LiveChatWidgetActionType.SET_CUSTOM_CONTEXT,
81
+ payload: undefined
82
+ });
83
+ dispatch({
84
+ type: LiveChatWidgetActionType.SET_CHAT_TOKEN,
85
+ payload: undefined
86
+ });
87
+ dispatch({
88
+ type: LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
89
+ payload: undefined
90
+ });
91
+
92
+ if (!skipCloseChat) {
93
+ try {
94
+ var _props$webChatContain;
95
+
96
+ adapter === null || adapter === void 0 ? void 0 : adapter.end();
97
+ setAdapter(undefined);
98
+ setWebChatStyles({ ...defaultWebChatContainerStatefulProps.webChatStyles,
99
+ ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
100
+ });
101
+ WebChatStoreLoader.store = null;
102
+ dispatch({
103
+ type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
104
+ payload: ConversationState.Closed
105
+ });
106
+ dispatch({
107
+ type: LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
108
+ payload: false
109
+ });
110
+ dispatch({
111
+ type: LiveChatWidgetActionType.SET_RECONNECT_ID,
112
+ payload: undefined
113
+ });
114
+ dispatch({
115
+ type: LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION,
116
+ payload: null
117
+ });
118
+ dispatch({
119
+ type: LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
120
+ payload: 0
121
+ });
122
+ dispatch({
123
+ type: LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS,
124
+ payload: {
125
+ proactiveChatBodyTitle: "",
126
+ proactiveChatEnablePrechat: false,
127
+ proactiveChatInNewWindow: false
128
+ }
129
+ });
130
+
131
+ if (postMessageToOtherTab) {
132
+ var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$controlProps;
133
+
134
+ const endChatEventName = getWidgetEndChatEventName(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.widgetInstanceId) ?? "");
135
+ BroadcastService.postMessage({
136
+ eventName: endChatEventName
137
+ });
138
+ }
139
+ } catch (error) {
140
+ TelemetryHelper.logActionEvent(LogLevel.ERROR, {
141
+ Event: TelemetryEvent.CloseChatMethodException,
142
+ ExceptionDetails: {
143
+ exception: `Failed to endChat: ${error}`
144
+ }
145
+ });
146
+ }
147
+ }
148
+ };
149
+
150
+ export { prepareEndChat, endChat };
@@ -8,6 +8,9 @@ export const initCallingSdk = async (chatSDK, setVoiceVideoCallingSDK) => {
8
8
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
9
  const callingSDK = await chatSDK.getVoiceVideoCalling();
10
10
  setVoiceVideoCallingSDK(callingSDK);
11
+ TelemetryHelper.logCallingEvent(LogLevel.INFO, {
12
+ Event: TelemetryEvent.CallingSDKLoadSuccess
13
+ });
11
14
  return true;
12
15
  }
13
16