@microsoft/omnichannel-chat-widget 0.1.0-main.eb80fb1 → 0.1.0-main.ec08ec5

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 (308) hide show
  1. package/README.md +35 -11
  2. package/lib/cjs/common/Constants.js +31 -150
  3. package/lib/cjs/common/KeyCodes.js +0 -3
  4. package/lib/cjs/common/contextDataStore/DataStoreManager.js +0 -4
  5. package/lib/cjs/common/storage/default/defaultCacheManager.js +24 -0
  6. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +102 -0
  7. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
  8. package/lib/cjs/common/telemetry/TelemetryConstants.js +79 -24
  9. package/lib/cjs/common/telemetry/TelemetryHelper.js +26 -54
  10. package/lib/cjs/common/telemetry/TelemetryManager.js +14 -34
  11. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  12. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -3
  13. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +49 -35
  14. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -14
  15. package/lib/cjs/common/utils.js +80 -80
  16. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +21 -45
  17. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -26
  18. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +12 -70
  19. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  20. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -36
  21. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  22. package/lib/cjs/components/footerstateful/FooterStateful.js +12 -44
  23. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  24. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -44
  25. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  26. package/lib/cjs/components/headerstateful/HeaderStateful.js +23 -34
  27. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  28. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +37 -0
  29. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +18 -0
  30. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  31. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +32 -0
  32. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +62 -0
  33. package/lib/cjs/components/livechatwidget/common/Deferred.js +35 -0
  34. package/lib/cjs/components/livechatwidget/common/authHelper.js +50 -0
  35. package/lib/cjs/components/livechatwidget/common/createAdapter.js +10 -9
  36. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  37. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
  38. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +36 -44
  39. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +73 -52
  40. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  41. package/lib/cjs/components/livechatwidget/common/endChat.js +127 -61
  42. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  43. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +8 -17
  44. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  45. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +58 -54
  46. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +131 -56
  47. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +9 -33
  48. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +3 -15
  49. package/lib/cjs/components/livechatwidget/common/shareObservable.js +41 -0
  50. package/lib/cjs/components/livechatwidget/common/startChat.js +157 -77
  51. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
  52. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
  53. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +287 -139
  54. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +4 -17
  55. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  56. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -14
  57. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -23
  58. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  59. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  60. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  61. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  62. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +11 -44
  63. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +21 -35
  64. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +2 -24
  65. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -19
  66. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
  67. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  68. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  69. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +9 -26
  70. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +6 -15
  71. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  72. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -15
  73. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  74. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  75. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  76. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +10 -0
  77. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -4
  78. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  79. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  80. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  81. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +33 -80
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +9 -19
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -60
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +82 -0
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +89 -0
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +2 -12
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +6 -28
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +2 -11
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +7 -18
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +16 -19
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  117. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +33 -0
  118. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  119. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  120. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  121. package/lib/cjs/contexts/common/ConversationState.js +4 -3
  122. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +11 -9
  123. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +14 -10
  124. package/lib/cjs/contexts/createReducer.js +150 -107
  125. package/lib/cjs/controller/componentController.js +5 -34
  126. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  127. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  128. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  129. package/lib/cjs/index.js +0 -5
  130. package/lib/cjs/plugins/newMessageEventHandler.js +78 -0
  131. package/lib/esm/common/Constants.js +28 -138
  132. package/lib/esm/common/KeyCodes.js +0 -2
  133. package/lib/esm/common/contextDataStore/DataStoreManager.js +0 -2
  134. package/lib/esm/common/storage/default/defaultCacheManager.js +16 -0
  135. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +95 -0
  136. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  137. package/lib/esm/common/telemetry/TelemetryConstants.js +78 -19
  138. package/lib/esm/common/telemetry/TelemetryHelper.js +27 -44
  139. package/lib/esm/common/telemetry/TelemetryManager.js +14 -23
  140. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  141. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  142. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +49 -23
  143. package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -10
  144. package/lib/esm/common/utils.js +73 -45
  145. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +21 -16
  146. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +23 -13
  147. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +13 -46
  148. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -15
  149. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  150. package/lib/esm/components/footerstateful/FooterStateful.js +14 -25
  151. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -37
  152. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  153. package/lib/esm/components/headerstateful/HeaderStateful.js +24 -20
  154. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  155. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +30 -0
  156. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +11 -0
  157. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  158. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +25 -0
  159. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +55 -0
  160. package/lib/esm/components/livechatwidget/common/Deferred.js +28 -0
  161. package/lib/esm/components/livechatwidget/common/authHelper.js +42 -0
  162. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -4
  163. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  164. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
  165. package/lib/esm/components/livechatwidget/common/createMarkdown.js +38 -37
  166. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +75 -40
  167. package/lib/esm/components/livechatwidget/common/endChat.js +131 -50
  168. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  169. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +10 -12
  170. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  171. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +60 -26
  172. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +129 -50
  173. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +9 -23
  174. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -6
  175. package/lib/esm/components/livechatwidget/common/shareObservable.js +35 -0
  176. package/lib/esm/components/livechatwidget/common/startChat.js +161 -61
  177. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  178. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +293 -94
  179. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +4 -5
  180. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  181. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -4
  182. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  183. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  184. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  185. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  186. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  187. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +15 -29
  188. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +24 -12
  189. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +2 -6
  190. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -4
  191. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  192. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  193. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  194. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +9 -18
  195. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +6 -11
  196. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  197. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -5
  198. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  199. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  200. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  201. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -0
  202. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -2
  203. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  204. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  205. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  206. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  207. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  208. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  209. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  210. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  211. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  212. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +34 -66
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +11 -11
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -39
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +34 -0
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +80 -0
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +83 -0
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +3 -3
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +7 -14
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +3 -3
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +9 -14
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +16 -14
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  242. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +27 -0
  243. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  244. package/lib/esm/contexts/ChatContextStore.js +2 -1
  245. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  246. package/lib/esm/contexts/common/ConversationState.js +4 -3
  247. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +11 -9
  248. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +14 -6
  249. package/lib/esm/contexts/createReducer.js +150 -103
  250. package/lib/esm/controller/componentController.js +6 -5
  251. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  252. package/lib/esm/hooks/useChatContextStore.js +0 -4
  253. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  254. package/lib/esm/plugins/newMessageEventHandler.js +71 -0
  255. package/lib/types/common/Constants.d.ts +27 -2
  256. package/lib/types/common/interfaces/IContextDataStore.d.ts +2 -2
  257. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  258. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  259. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  260. package/lib/types/common/telemetry/TelemetryConstants.d.ts +53 -6
  261. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  262. package/lib/types/common/telemetry/definitions/Contracts.d.ts +2 -4
  263. package/lib/types/common/telemetry/definitions/Payload.d.ts +12 -9
  264. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +3 -3
  265. package/lib/types/common/utils.d.ts +8 -1
  266. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  267. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  268. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +5 -1
  269. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  270. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  271. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  272. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  273. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  274. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  275. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  276. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  277. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +7 -2
  278. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  279. package/lib/types/components/livechatwidget/common/startChat.d.ts +4 -2
  280. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  281. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -0
  282. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +4 -3
  283. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  284. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  285. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  286. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -2
  287. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  288. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +2 -0
  289. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  290. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  291. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  292. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +4 -0
  293. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  294. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  295. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  296. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  297. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  298. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  299. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  300. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  301. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  302. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  303. package/lib/types/contexts/common/ConversationState.d.ts +4 -2
  304. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +4 -2
  305. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +12 -9
  306. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  307. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  308. package/package.json +12 -13
@@ -4,74 +4,66 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createMarkdown = void 0;
7
-
8
7
  var _markdownIt = _interopRequireDefault(require("markdown-it"));
9
-
10
- var _slackMarkdownIt = _interopRequireDefault(require("slack-markdown-it"));
11
-
12
8
  var _markdownItForInline = _interopRequireDefault(require("markdown-it-for-inline"));
13
-
14
9
  var _defaultMarkdownLocalizedTexts = require("../../webchatcontainerstateful/common/defaultProps/defaultMarkdownLocalizedTexts");
15
-
16
10
  var _Constants = require("../../../common/Constants");
17
-
18
11
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
-
20
12
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
13
  const createMarkdown = (disableMarkdownMessageFormatting, disableNewLineMarkdownSupport) => {
22
14
  let markdown;
23
-
24
15
  if (!disableMarkdownMessageFormatting) {
25
16
  markdown = new _markdownIt.default(_Constants.Constants.Default, {
26
17
  html: true,
27
18
  linkify: true,
28
19
  breaks: !disableNewLineMarkdownSupport
29
20
  });
30
- markdown.use(_slackMarkdownIt.default); // Markdown override for open link in new tab
31
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, quotes
32
-
33
- markdown.use(_markdownItForInline.default, "url_new_win", "link_open", function (tokens, idx, env) {
34
- const targetAttrIndex = tokens[idx].attrIndex(_Constants.Constants.Target); // Put a transparent pixel instead of the "open in new window" icon, so developers can easily modify the icon in CSS.
35
-
36
- const TRANSPARENT_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
37
-
38
- if (~targetAttrIndex) {
39
- tokens[idx].attrs[targetAttrIndex][1] = _Constants.Constants.Blank;
40
- } else {
41
- tokens[idx].attrPush([_Constants.Constants.Target, _Constants.Constants.Blank]);
42
- }
43
-
44
- const relAttrIndex = tokens[idx].attrIndex(_Constants.Constants.TargetRelationship);
45
-
46
- if (~relAttrIndex) {
47
- tokens[idx].attrs[relAttrIndex][1] = _Constants.Constants.TargetRelationshipAttributes;
48
- } else {
49
- tokens[idx].attrPush([_Constants.Constants.TargetRelationship, _Constants.Constants.TargetRelationshipAttributes]);
50
- tokens[idx].attrPush([_Constants.Constants.Title, _defaultMarkdownLocalizedTexts.defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT]); // eslint-disable-next-line quotes
51
-
52
- const iconTokens = markdown.parseInline(`![${_defaultMarkdownLocalizedTexts.defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT}](${TRANSPARENT_GIF})`, env)[0].children;
53
-
54
- if (iconTokens && iconTokens.length > 0) {
55
- iconTokens[0].attrJoin("class", _Constants.Constants.OpenLinkIconCssClass);
56
- tokens.splice(idx + 2, 0, ...iconTokens);
57
- }
58
- }
59
- });
21
+ // ToDo: Commenting below usage of plugin until deferred bug is resolved: https://github.com/mayashavin/markdown-it-slack/issues/1
22
+ // markdown.use(MarkdownSlack);
60
23
  } else {
61
24
  markdown = new _markdownIt.default(_Constants.Constants.Zero, {
62
25
  html: true,
63
26
  linkify: true,
64
27
  breaks: !disableNewLineMarkdownSupport
65
28
  });
66
- markdown.enable(["entity", // Rule to process html entity - {, ¯, "
67
- "linkify", // Rule to replace link-like texts with link nodes
68
- "html_block", // Rule to process html blocks and paragraphs
69
- "html_inline", // Rule to process html tags
29
+ markdown.enable(["entity",
30
+ // Rule to process html entity - {, ¯, "
31
+ "linkify",
32
+ // Rule to replace link-like texts with link nodes
33
+ "html_block",
34
+ // Rule to process html blocks and paragraphs
35
+ "html_inline",
36
+ // Rule to process html tags
70
37
  "newline" // Rule to proceess '\n'
71
38
  ]);
72
39
  }
73
40
 
41
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
+ markdown.use(_markdownItForInline.default, "url_new_win", "link_open", function (tokens, idx, env) {
43
+ const targetAttrIndex = tokens[idx].attrIndex(_Constants.Constants.Target);
44
+ // Put a transparent pixel instead of the "open in new window" icon, so developers can easily modify the icon in CSS.
45
+ const TRANSPARENT_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
46
+ if (~targetAttrIndex) {
47
+ tokens[idx].attrs[targetAttrIndex][1] = _Constants.Constants.Blank;
48
+ } else {
49
+ tokens[idx].attrPush([_Constants.Constants.Target, _Constants.Constants.Blank]);
50
+ }
51
+ const relAttrIndex = tokens[idx].attrIndex(_Constants.Constants.TargetRelationship);
52
+ if (~relAttrIndex) {
53
+ tokens[idx].attrs[relAttrIndex][1] = _Constants.Constants.TargetRelationshipAttributes;
54
+ } else {
55
+ tokens[idx].attrPush([_Constants.Constants.TargetRelationship, _Constants.Constants.TargetRelationshipAttributes]);
56
+ if (!disableMarkdownMessageFormatting) {
57
+ tokens[idx].attrPush([_Constants.Constants.Title, _defaultMarkdownLocalizedTexts.defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT]);
58
+ // eslint-disable-next-line quotes
59
+ const iconTokens = markdown.parseInline(`![${_defaultMarkdownLocalizedTexts.defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT}](${TRANSPARENT_GIF})`, env)[0].children;
60
+ if (iconTokens && iconTokens.length > 0) {
61
+ iconTokens[0].attrJoin("class", _Constants.Constants.OpenLinkIconCssClass);
62
+ tokens.splice(idx + 2, 0, ...iconTokens);
63
+ }
64
+ }
65
+ }
66
+ });
74
67
  return markdown;
75
68
  };
76
-
77
69
  exports.createMarkdown = createMarkdown;
@@ -4,32 +4,21 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.dummyDefaultProps = void 0;
7
-
8
7
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
9
-
10
8
  var _mockadapter = _interopRequireDefault(require("../../../webchatcontainerstateful/common/mockadapter"));
11
-
12
9
  var _Audios = require("../../../../assets/Audios");
13
-
14
10
  var _WebChatStoreLoader = require("../../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader");
15
-
16
11
  var _activityStatusMiddleware = require("../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware");
17
-
18
12
  var _activityMiddleware = require("../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware");
19
-
20
13
  var _attachmentMiddleware = _interopRequireDefault(require("../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware"));
21
-
22
14
  var _avatarMiddleware = require("../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware");
23
-
24
15
  var _createMarkdown = require("../createMarkdown");
25
-
26
16
  var _groupActivitiesMiddleware = require("../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware");
27
-
28
17
  var _typingIndicatorMiddleware = require("../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware");
29
-
18
+ var _WebChatLogger = require("../../../webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger");
30
19
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
31
-
32
20
  /* eslint-disable @typescript-eslint/no-empty-function, @typescript-eslint/no-explicit-any */
21
+
33
22
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
34
23
  const dummyDefaultProps = {
35
24
  audioNotificationProps: {
@@ -185,24 +174,28 @@ const dummyDefaultProps = {
185
174
  },
186
175
  audioCallButtonStyleProps: {
187
176
  borderRadius: "50%",
188
- color: "#FFFFFF",
189
177
  backgroundColor: "#008000",
190
178
  lineHeight: "40px",
191
179
  height: "40px",
192
180
  width: "40px",
193
- fontSize: 18
181
+ icon: {
182
+ fontSize: 18,
183
+ color: "#FFFFFF"
184
+ }
194
185
  },
195
186
  audioCallButtonHoverStyleProps: {
196
187
  filter: "brightness(0.8)"
197
188
  },
198
189
  videoCallButtonStyleProps: {
199
190
  borderRadius: "50%",
200
- color: "#FFFFFF",
201
191
  backgroundColor: "#008000",
202
192
  lineHeight: "40px",
203
193
  height: "40px",
204
194
  width: "40px",
205
- fontSize: 18
195
+ icon: {
196
+ fontSize: 18,
197
+ color: "#FFFFFF"
198
+ }
206
199
  },
207
200
  videoCallButtonHoverStyleProps: {
208
201
  filter: "brightness(0.8)"
@@ -213,13 +206,15 @@ const dummyDefaultProps = {
213
206
  },
214
207
  declineCallButtonStyleProps: {
215
208
  borderRadius: "50%",
216
- color: "#FFFFFF",
217
209
  backgroundColor: "#DC0000",
218
210
  lineHeight: "40px",
219
211
  height: "40px",
220
212
  width: "40px",
221
- fontSize: 18,
222
- marginLeft: "5px"
213
+ marginLeft: "5px",
214
+ icon: {
215
+ fontSize: 18,
216
+ color: "#FFFFFF"
217
+ }
223
218
  },
224
219
  incomingCallTitleStyleProps: {
225
220
  margin: "0 5px",
@@ -272,18 +267,6 @@ const dummyDefaultProps = {
272
267
  width: "50px",
273
268
  fontSize: "18px"
274
269
  },
275
- currentCallTimerStyleProps: {
276
- borderRadius: "2px",
277
- margin: "1px",
278
- color: "#FFFFFF",
279
- paddingTop: "18px",
280
- fontSize: 12,
281
- fontFamily: "Segoe UI, Arial, sans-serif",
282
- backgroundColor: "darkgrey",
283
- height: "45px",
284
- width: "50px",
285
- textAlign: "center"
286
- },
287
270
  videoTileStyleProps: {
288
271
  width: "100%",
289
272
  marginLeft: "auto",
@@ -347,7 +330,10 @@ const dummyDefaultProps = {
347
330
  hideChatTextContainer: false,
348
331
  hideChatSubtitle: false,
349
332
  hideChatTitle: false,
350
- hideNotificationBubble: true
333
+ hideNotificationBubble: true,
334
+ unreadMessageString: "new messages",
335
+ largeUnreadMessageString: "99+",
336
+ ariaLabelUnreadMessageString: "you have new messages"
351
337
  },
352
338
  styleProps: {
353
339
  generalStyleProps: {
@@ -493,8 +479,8 @@ const dummyDefaultProps = {
493
479
  onConfirm: () => {},
494
480
  // Detailed implementation omitted
495
481
  onCancel: () => {} // Detailed implementation omitted
496
-
497
482
  },
483
+
498
484
  styleProps: {
499
485
  generalStyleProps: {
500
486
  backgroundColor: "#FFFFFF",
@@ -799,6 +785,7 @@ const dummyDefaultProps = {
799
785
  },
800
786
  audioNotificationButtonProps: {
801
787
  id: "oc-lcw-footer-audionotification-button",
788
+ type: "icon",
802
789
  ariaLabel: "Turn sound off",
803
790
  toggleAriaLabel: "Turn sound on",
804
791
  iconName: "Volume3",
@@ -824,8 +811,10 @@ const dummyDefaultProps = {
824
811
  padding: "0 10px 5px 10px"
825
812
  },
826
813
  downloadTranscriptButtonStyleProps: {
827
- color: "blue",
828
- fontSize: 16,
814
+ icon: {
815
+ color: "blue",
816
+ fontSize: 16
817
+ },
829
818
  height: "25px",
830
819
  lineHeight: "25px",
831
820
  width: "25px"
@@ -835,8 +824,10 @@ const dummyDefaultProps = {
835
824
  backgroundColor: "#C8C8C8"
836
825
  },
837
826
  emailTranscriptButtonStyleProps: {
838
- color: "blue",
839
- fontSize: 16,
827
+ cicon: {
828
+ color: "blue",
829
+ fontSize: 16
830
+ },
840
831
  height: "25px",
841
832
  lineHeight: "25px",
842
833
  width: "25px"
@@ -846,8 +837,10 @@ const dummyDefaultProps = {
846
837
  backgroundColor: "#C8C8C8"
847
838
  },
848
839
  audioNotificationButtonStyleProps: {
849
- color: "blue",
850
- fontSize: 16,
840
+ icon: {
841
+ color: "blue",
842
+ fontSize: 16
843
+ },
851
844
  height: "25px",
852
845
  lineHeight: "25px",
853
846
  width: "25px"
@@ -898,7 +891,7 @@ const dummyDefaultProps = {
898
891
  className: undefined
899
892
  },
900
893
  closeButtonProps: {
901
- id: "oc-lcw-header-minimize-button",
894
+ id: "oc-lcw-header-close-button",
902
895
  type: "icon",
903
896
  iconName: "ChromeClose",
904
897
  ariaLabel: "Close",
@@ -1077,8 +1070,8 @@ const dummyDefaultProps = {
1077
1070
  titleText: "We're Offline",
1078
1071
  subtitleText: "No agents available",
1079
1072
  onClick: () => {} // Detailed implementation omitted
1080
-
1081
1073
  },
1074
+
1082
1075
  styleProps: {
1083
1076
  // ...[Existing chat button style props]
1084
1077
  iconStyleProps: {
@@ -1096,8 +1089,8 @@ const dummyDefaultProps = {
1096
1089
  text: "We're Offline"
1097
1090
  },
1098
1091
  onMinimizeClick: () => {} // Detailed implementation omitted
1099
-
1100
1092
  },
1093
+
1101
1094
  styleProps: {
1102
1095
  // ...[Existing chat button style props]
1103
1096
  generalStyleProps: {
@@ -1194,7 +1187,8 @@ const dummyDefaultProps = {
1194
1187
  backgroundColor: "#FFFFFF",
1195
1188
  borderColor: "#F1F1F1"
1196
1189
  }
1197
- }
1190
+ },
1191
+ isCustomerVoiceSurveyCompact: undefined
1198
1192
  },
1199
1193
  proactiveChatPaneProps: {
1200
1194
  componentOverrides: {
@@ -1214,7 +1208,17 @@ const dummyDefaultProps = {
1214
1208
  hideSubtitle: false,
1215
1209
  subtitleText: "Live chat support!",
1216
1210
  hideCloseButton: false,
1217
- closeButtonAriaLabel: "Close Button",
1211
+ closeButtonProps: {
1212
+ id: "oc-lcw-proactivechat-closebutton",
1213
+ type: "icon",
1214
+ iconName: "ChromeClose",
1215
+ ariaLabel: "Close",
1216
+ imageIconProps: undefined,
1217
+ text: "Close",
1218
+ onClick: undefined,
1219
+ className: undefined,
1220
+ hideButtonTitle: true
1221
+ },
1218
1222
  isBodyContainerHorizantal: false,
1219
1223
  hideBodyTitle: false,
1220
1224
  bodyTitleText: "Hi! Have any questions? I am here to help.",
@@ -1224,8 +1228,8 @@ const dummyDefaultProps = {
1224
1228
  onClose: () => {},
1225
1229
  // Detailed implementation omitted
1226
1230
  onStart: () => {} // Detailed implementation omitted
1227
-
1228
1231
  },
1232
+
1229
1233
  styleProps: {
1230
1234
  generalStyleProps: {
1231
1235
  backgroundColor: "rgb(255, 255, 255)",
@@ -1356,8 +1360,8 @@ const dummyDefaultProps = {
1356
1360
  onStartNewChat: () => {},
1357
1361
  // Detailed implementation omitted
1358
1362
  onMinimize: () => {} // Detailed implementation omitted
1359
-
1360
1363
  },
1364
+
1361
1365
  styleProps: {
1362
1366
  generalStyleProps: {
1363
1367
  backgroundColor: "rgb(255, 255, 255)",
@@ -1442,9 +1446,8 @@ const dummyDefaultProps = {
1442
1446
  startNewChatButtonClassName: undefined
1443
1447
  }
1444
1448
  },
1445
- authClientFunction: undefined,
1446
- isReconnectEnabled: undefined,
1447
- reconnectId: undefined
1449
+ reconnectId: undefined,
1450
+ redirectInSameWindow: undefined
1448
1451
  },
1449
1452
  styleProps: {
1450
1453
  generalStyles: {
@@ -1516,7 +1519,7 @@ const dummyDefaultProps = {
1516
1519
  internalErrorBoxClass: undefined,
1517
1520
  internalRenderErrorBox: undefined,
1518
1521
  locale: "en-US",
1519
- onTelemetry: undefined,
1522
+ onTelemetry: (0, _WebChatLogger.createWebChatTelemetry)(),
1520
1523
  overrideLocalizedStrings: undefined,
1521
1524
  renderMarkdown: (0, _createMarkdown.createMarkdown)(false, false),
1522
1525
  scrollToEndButtonMiddleware: undefined,
@@ -1564,6 +1567,12 @@ const dummyDefaultProps = {
1564
1567
  lineHeight: "16px",
1565
1568
  padding: "0px 10px 0 10px"
1566
1569
  },
1570
+ userMessageBoxStyles: {
1571
+ maxWidth: "75%"
1572
+ },
1573
+ systemMessageBoxStyles: {
1574
+ maxWidth: "75%"
1575
+ },
1567
1576
  typingIndicatorStyleProps: {
1568
1577
  marginLeft: "10px",
1569
1578
  marginBottom: "5px",
@@ -1683,6 +1692,9 @@ const dummyDefaultProps = {
1683
1692
  },
1684
1693
  attachmentSizeStyles: {
1685
1694
  display: "none"
1695
+ },
1696
+ receivedMessageAnchorStyles: {
1697
+ color: "white"
1686
1698
  }
1687
1699
  },
1688
1700
  localizedTexts: {
@@ -1706,8 +1718,17 @@ const dummyDefaultProps = {
1706
1718
  MIDDLEWARE_MESSAGE_RETRY: "Retry",
1707
1719
  PRECHAT_REQUIRED_FIELD_MISSING_MESSAGE: "{0} field is required",
1708
1720
  MARKDOWN_EXTERNAL_LINK_ALT: "Opens in a new window; external."
1721
+ },
1722
+ botMagicCode: {
1723
+ disabled: false,
1724
+ fwdUrl: ""
1725
+ },
1726
+ adaptiveCardStyles: {
1727
+ background: "white",
1728
+ color: "black"
1709
1729
  }
1710
1730
  },
1711
- telemetryConfig: undefined
1731
+ telemetryConfig: undefined,
1732
+ getAuthToken: undefined
1712
1733
  };
1713
1734
  exports.dummyDefaultProps = dummyDefaultProps;
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.disposeTelemetryLoggers = void 0;
7
-
8
7
  var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
9
-
10
8
  const disposeTelemetryLoggers = () => {
11
9
  (0, _TelemetryManager.disposeLoggers)();
12
10
  };
13
-
14
11
  exports.disposeTelemetryLoggers = disposeTelemetryLoggers;
@@ -3,80 +3,146 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.endChat = void 0;
7
-
6
+ exports.prepareEndChat = exports.endChat = void 0;
8
7
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
-
10
8
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
11
-
12
9
  var _ConversationState = require("../../../contexts/common/ConversationState");
13
-
14
10
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
15
-
16
- var _NotificationHandler = require("../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler");
17
-
18
- var _NotificationScenarios = require("../../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios");
19
-
20
11
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
21
-
22
12
  var _WebChatStoreLoader = require("../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader");
23
-
24
13
  var _defaultWebChatContainerStatefulProps = require("../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps");
25
-
14
+ var _PostChatSurveyMode = require("../../postchatsurveypanestateful/enums/PostChatSurveyMode");
15
+ var _Constants = require("../../../common/Constants");
16
+ var _utils = require("../../../common/utils");
26
17
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
- const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter) => {
28
- try {
29
- var _props$webChatContain;
30
-
31
- _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
32
- Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCall
33
- });
18
+ const prepareEndChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state) => {
19
+ var _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3, _state$domainStates$l4, _conversationDetails;
20
+ 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;
21
+ 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;
34
22
 
35
- await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat());
36
- adapter === null || adapter === void 0 ? void 0 : adapter.end();
37
- setAdapter(undefined);
38
- setWebChatStyles({ ..._defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.webChatStyles,
39
- ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
40
- });
41
- _WebChatStoreLoader.WebChatStoreLoader.store = null;
42
- dispatch({
43
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
44
- payload: _ConversationState.ConversationState.Closed
45
- });
46
- dispatch({
47
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
48
- payload: false
49
- });
50
- dispatch({
51
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
52
- payload: undefined
53
- });
54
- dispatch({
55
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION,
56
- payload: null
57
- });
58
- dispatch({
59
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
60
- payload: undefined
61
- });
62
- dispatch({
63
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
64
- payload: undefined
65
- });
66
-
67
- _omnichannelChatComponents.BroadcastService.postMessage({
68
- eventName: "EndChat"
69
- });
70
- } catch (ex) {
71
- _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
72
- Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCallFailed,
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
24
+ let conversationDetails = undefined;
25
+ try {
26
+ conversationDetails = await chatSDK.getConversationDetails();
27
+ } catch (erorr) {
28
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
29
+ Event: _TelemetryConstants.TelemetryEvent.GetConversationDetailsException,
73
30
  ExceptionDetails: {
74
- exception: ex
31
+ exception: `Failed to get conversation details: ${erorr}`
75
32
  }
76
33
  });
77
-
78
- _NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.Connection, "End Chat Call Failed: " + ex);
79
34
  }
35
+ if (isPostChatEnabled === "true" && ((_conversationDetails = conversationDetails) === null || _conversationDetails === void 0 ? void 0 : _conversationDetails.canRenderPostChat) === _Constants.Constants.truePascal) {
36
+ const skipEndChatSDK = false;
37
+ const skipCloseChat = true;
38
+ await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, false);
39
+ if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Embed) {
40
+ dispatch({
41
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
42
+ payload: _ConversationState.ConversationState.PostchatLoading
43
+ });
44
+ await (0, _utils.addDelayInMs)(_Constants.Constants.PostChatLoadingDurationInMs);
45
+ const loadPostChatEvent = {
46
+ eventName: _TelemetryConstants.BroadcastEvent.LoadPostChatSurvey
47
+ };
48
+ _omnichannelChatComponents.BroadcastService.postMessage(loadPostChatEvent);
49
+ } else if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Link) {
50
+ dispatch({
51
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
52
+ payload: _ConversationState.ConversationState.InActive
53
+ });
54
+ }
55
+ return;
56
+ }
57
+ await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, true);
80
58
  };
81
59
 
60
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
61
+ exports.prepareEndChat = prepareEndChat;
62
+ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTab) => {
63
+ if (!skipEndChatSDK) {
64
+ try {
65
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
66
+ Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCall
67
+ });
68
+ await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat());
69
+ } catch (ex) {
70
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
71
+ Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCallFailed,
72
+ ExceptionDetails: {
73
+ exception: ex
74
+ }
75
+ });
76
+ postMessageToOtherTab = false;
77
+ }
78
+ }
79
+
80
+ // Need to clear these states immediately when chat ended from OC.
81
+ dispatch({
82
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CUSTOM_CONTEXT,
83
+ payload: undefined
84
+ });
85
+ dispatch({
86
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
87
+ payload: undefined
88
+ });
89
+ dispatch({
90
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
91
+ payload: undefined
92
+ });
93
+ if (!skipCloseChat) {
94
+ try {
95
+ var _props$webChatContain;
96
+ adapter === null || adapter === void 0 ? void 0 : adapter.end();
97
+ setAdapter(undefined);
98
+ setWebChatStyles({
99
+ ..._defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.webChatStyles,
100
+ ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
101
+ });
102
+ _WebChatStoreLoader.WebChatStoreLoader.store = null;
103
+ dispatch({
104
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
105
+ payload: _ConversationState.ConversationState.Closed
106
+ });
107
+ dispatch({
108
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
109
+ payload: false
110
+ });
111
+ dispatch({
112
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
113
+ payload: undefined
114
+ });
115
+ dispatch({
116
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION,
117
+ payload: null
118
+ });
119
+ dispatch({
120
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
121
+ payload: 0
122
+ });
123
+ dispatch({
124
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS,
125
+ payload: {
126
+ proactiveChatBodyTitle: "",
127
+ proactiveChatEnablePrechat: false,
128
+ proactiveChatInNewWindow: false
129
+ }
130
+ });
131
+ if (postMessageToOtherTab) {
132
+ var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$controlProps;
133
+ const endChatEventName = (0, _utils.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) ?? "");
134
+ _omnichannelChatComponents.BroadcastService.postMessage({
135
+ eventName: endChatEventName
136
+ });
137
+ }
138
+ } catch (error) {
139
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
140
+ Event: _TelemetryConstants.TelemetryEvent.CloseChatMethodException,
141
+ ExceptionDetails: {
142
+ exception: `Failed to endChat: ${error}`
143
+ }
144
+ });
145
+ }
146
+ }
147
+ };
82
148
  exports.endChat = endChat;
@@ -4,14 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.getGeneralStylesForButton = void 0;
7
-
8
7
  var _componentController = require("../../../controller/componentController");
9
-
10
8
  var _defaultLiveChatWidgetGeneralStyles = require("./defaultStyles/defaultLiveChatWidgetGeneralStyles");
11
-
12
9
  const getGeneralStylesForButton = state => {
13
10
  let generalStylesForButton = _defaultLiveChatWidgetGeneralStyles.defaultLiveChatWidgetGeneralStyles;
14
-
15
11
  if (!(0, _componentController.shouldShowChatButton)(state) && !(0, _componentController.shouldShowProactiveChatPane)(state)) {
16
12
  generalStylesForButton = Object.assign({}, _defaultLiveChatWidgetGeneralStyles.defaultLiveChatWidgetGeneralStyles, {
17
13
  boxShadow: "0px 0px 2px rgba(0, 0, 0, 0.16), 0px 4px 8px rgba(0, 0, 0, 0.12)",
@@ -21,8 +17,6 @@ const getGeneralStylesForButton = state => {
21
17
  padding: "0.5"
22
18
  });
23
19
  }
24
-
25
20
  return generalStylesForButton;
26
21
  };
27
-
28
22
  exports.getGeneralStylesForButton = getGeneralStylesForButton;