@microsoft/omnichannel-chat-widget 0.1.0-main.63cfb47 → 0.1.0-main.6d27b26

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 (315) hide show
  1. package/README.md +32 -0
  2. package/lib/cjs/assets/Icons.js +4 -2
  3. package/lib/cjs/common/Constants.js +50 -153
  4. package/lib/cjs/common/KeyCodes.js +3 -4
  5. package/lib/cjs/common/contextDataStore/DataStoreManager.js +3 -5
  6. package/lib/cjs/common/storage/default/defaultCacheManager.js +26 -0
  7. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +102 -0
  8. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
  9. package/lib/cjs/common/telemetry/TelemetryConstants.js +54 -26
  10. package/lib/cjs/common/telemetry/TelemetryHelper.js +21 -59
  11. package/lib/cjs/common/telemetry/TelemetryManager.js +9 -32
  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/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  19. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -33
  20. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  21. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -37
  22. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  23. package/lib/cjs/components/footerstateful/FooterStateful.js +11 -42
  24. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  25. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -44
  26. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  27. package/lib/cjs/components/headerstateful/HeaderStateful.js +20 -32
  28. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  29. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +39 -0
  30. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +20 -0
  31. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  32. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +34 -0
  33. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +64 -0
  34. package/lib/cjs/components/livechatwidget/common/Deferred.js +37 -0
  35. package/lib/cjs/components/livechatwidget/common/authHelper.js +50 -0
  36. package/lib/cjs/components/livechatwidget/common/createAdapter.js +10 -9
  37. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  38. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
  39. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +36 -43
  40. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
  41. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +126 -60
  42. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  43. package/lib/cjs/components/livechatwidget/common/endChat.js +99 -37
  44. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  45. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +7 -16
  46. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  47. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +36 -53
  48. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +76 -129
  49. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +7 -32
  50. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +2 -15
  51. package/lib/cjs/components/livechatwidget/common/shareObservable.js +41 -0
  52. package/lib/cjs/components/livechatwidget/common/startChat.js +251 -106
  53. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
  54. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
  55. package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  56. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +331 -193
  57. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +19 -19
  58. package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -0
  59. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  60. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -17
  61. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -23
  62. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  63. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  64. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  65. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  66. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +11 -44
  67. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +19 -33
  68. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
  69. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -19
  70. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
  71. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  72. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  73. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +12 -27
  74. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +6 -17
  75. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  76. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -15
  77. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  78. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  79. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  80. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +12 -0
  81. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -5
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +27 -37
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +10 -22
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -61
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +82 -0
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +89 -0
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +7 -18
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +8 -42
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +4 -22
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  117. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  118. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  119. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  120. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  121. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +1 -12
  122. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  123. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  124. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  125. package/lib/cjs/contexts/common/ConversationState.js +3 -3
  126. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +30 -25
  127. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +14 -13
  128. package/lib/cjs/contexts/createReducer.js +169 -99
  129. package/lib/cjs/controller/componentController.js +4 -33
  130. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  131. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  132. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  133. package/lib/cjs/index.js +0 -5
  134. package/lib/cjs/plugins/newMessageEventHandler.js +26 -46
  135. package/lib/esm/assets/Icons.js +2 -1
  136. package/lib/esm/common/Constants.js +45 -141
  137. package/lib/esm/common/KeyCodes.js +3 -3
  138. package/lib/esm/common/contextDataStore/DataStoreManager.js +3 -3
  139. package/lib/esm/common/storage/default/defaultCacheManager.js +18 -0
  140. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +95 -0
  141. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  142. package/lib/esm/common/telemetry/TelemetryConstants.js +58 -23
  143. package/lib/esm/common/telemetry/TelemetryHelper.js +21 -47
  144. package/lib/esm/common/telemetry/TelemetryManager.js +9 -20
  145. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  146. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +49 -23
  147. package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -10
  148. package/lib/esm/common/utils.js +73 -45
  149. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +21 -16
  150. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +23 -13
  151. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  152. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +10 -14
  153. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -16
  154. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  155. package/lib/esm/components/footerstateful/FooterStateful.js +13 -23
  156. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -37
  157. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  158. package/lib/esm/components/headerstateful/HeaderStateful.js +20 -17
  159. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  160. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +32 -0
  161. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +13 -0
  162. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  163. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +27 -0
  164. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +57 -0
  165. package/lib/esm/components/livechatwidget/common/Deferred.js +30 -0
  166. package/lib/esm/components/livechatwidget/common/authHelper.js +42 -0
  167. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -4
  168. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  169. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
  170. package/lib/esm/components/livechatwidget/common/createMarkdown.js +38 -37
  171. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  172. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +127 -46
  173. package/lib/esm/components/livechatwidget/common/endChat.js +99 -23
  174. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  175. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +9 -11
  176. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  177. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +39 -22
  178. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +77 -111
  179. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +7 -22
  180. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -7
  181. package/lib/esm/components/livechatwidget/common/shareObservable.js +35 -0
  182. package/lib/esm/components/livechatwidget/common/startChat.js +251 -86
  183. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  184. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  185. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +334 -141
  186. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +19 -7
  187. package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
  188. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  189. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -5
  190. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  191. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  192. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  193. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  194. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  195. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +15 -29
  196. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +21 -9
  197. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
  198. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -4
  199. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  200. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  201. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  202. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +12 -19
  203. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +6 -13
  204. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  205. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -5
  206. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  207. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  208. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  209. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  210. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -3
  211. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  212. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +27 -22
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +12 -14
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -39
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +34 -0
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +80 -0
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +83 -0
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +8 -9
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +9 -28
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +5 -14
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
  242. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  243. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  244. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  245. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  246. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  247. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  248. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  249. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  250. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +1 -5
  251. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  252. package/lib/esm/contexts/ChatContextStore.js +2 -1
  253. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  254. package/lib/esm/contexts/common/ConversationState.js +3 -3
  255. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +30 -25
  256. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +14 -9
  257. package/lib/esm/contexts/createReducer.js +169 -96
  258. package/lib/esm/controller/componentController.js +5 -4
  259. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  260. package/lib/esm/hooks/useChatContextStore.js +0 -4
  261. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  262. package/lib/esm/plugins/newMessageEventHandler.js +26 -35
  263. package/lib/types/assets/Icons.d.ts +1 -0
  264. package/lib/types/common/Constants.d.ts +37 -1
  265. package/lib/types/common/interfaces/IContextDataStore.d.ts +2 -2
  266. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  267. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  268. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  269. package/lib/types/common/telemetry/TelemetryConstants.d.ts +39 -8
  270. package/lib/types/common/telemetry/TelemetryHelper.d.ts +1 -0
  271. package/lib/types/common/telemetry/definitions/Contracts.d.ts +4 -4
  272. package/lib/types/common/telemetry/definitions/Payload.d.ts +13 -9
  273. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +7 -3
  274. package/lib/types/common/utils.d.ts +8 -1
  275. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +2 -1
  276. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  277. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  278. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  279. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  280. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  281. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  282. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  283. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  284. package/lib/types/components/livechatwidget/common/endChat.d.ts +1 -1
  285. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -7
  286. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  287. package/lib/types/components/livechatwidget/common/startChat.d.ts +6 -2
  288. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +2 -1
  289. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +6 -3
  290. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  291. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
  292. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  293. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  294. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  295. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -2
  296. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  297. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  298. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  299. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  300. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  301. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +4 -0
  302. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  303. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  304. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  305. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  306. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  307. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  308. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  309. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  310. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.d.ts +1 -1
  311. package/lib/types/contexts/common/ConversationState.d.ts +3 -2
  312. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +6 -3
  313. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +30 -24
  314. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  315. package/package.json +7 -9
@@ -1,4 +1,5 @@
1
1
  /* eslint-disable @typescript-eslint/no-empty-function, @typescript-eslint/no-explicit-any */
2
+
2
3
  import { ChatReconnectIconBase64, CloseChatButtonIconBase64, ModernChatIconBase64, ProactiveChatBannerBase64 } from "@microsoft/omnichannel-chat-components";
3
4
  import MockAdapter from "../../../webchatcontainerstateful/common/mockadapter";
4
5
  import { NewMessageNotificationSoundBase64 } from "../../../../assets/Audios";
@@ -8,10 +9,11 @@ import { createActivityMiddleware } from "../../../webchatcontainerstateful/webc
8
9
  import createAttachmentMiddleware from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware";
9
10
  import { createAvatarMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware";
10
11
  import { createMarkdown } from "../createMarkdown";
12
+ import { createWebChatTelemetry } from "../../../webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger";
11
13
  import { groupActivitiesMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware";
12
14
  import { typingIndicatorMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware";
13
- import { createWebChatTelemetry } from "../../../webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger"; // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
15
 
16
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
15
17
  export const dummyDefaultProps = {
16
18
  audioNotificationProps: {
17
19
  audioSrc: NewMessageNotificationSoundBase64
@@ -166,24 +168,28 @@ export const dummyDefaultProps = {
166
168
  },
167
169
  audioCallButtonStyleProps: {
168
170
  borderRadius: "50%",
169
- color: "#FFFFFF",
170
171
  backgroundColor: "#008000",
171
172
  lineHeight: "40px",
172
173
  height: "40px",
173
174
  width: "40px",
174
- fontSize: 18
175
+ icon: {
176
+ fontSize: 18,
177
+ color: "#FFFFFF"
178
+ }
175
179
  },
176
180
  audioCallButtonHoverStyleProps: {
177
181
  filter: "brightness(0.8)"
178
182
  },
179
183
  videoCallButtonStyleProps: {
180
184
  borderRadius: "50%",
181
- color: "#FFFFFF",
182
185
  backgroundColor: "#008000",
183
186
  lineHeight: "40px",
184
187
  height: "40px",
185
188
  width: "40px",
186
- fontSize: 18
189
+ icon: {
190
+ fontSize: 18,
191
+ color: "#FFFFFF"
192
+ }
187
193
  },
188
194
  videoCallButtonHoverStyleProps: {
189
195
  filter: "brightness(0.8)"
@@ -194,13 +200,15 @@ export const dummyDefaultProps = {
194
200
  },
195
201
  declineCallButtonStyleProps: {
196
202
  borderRadius: "50%",
197
- color: "#FFFFFF",
198
203
  backgroundColor: "#DC0000",
199
204
  lineHeight: "40px",
200
205
  height: "40px",
201
206
  width: "40px",
202
- fontSize: 18,
203
- marginLeft: "5px"
207
+ marginLeft: "5px",
208
+ icon: {
209
+ fontSize: 18,
210
+ color: "#FFFFFF"
211
+ }
204
212
  },
205
213
  incomingCallTitleStyleProps: {
206
214
  margin: "0 5px",
@@ -253,18 +261,6 @@ export const dummyDefaultProps = {
253
261
  width: "50px",
254
262
  fontSize: "18px"
255
263
  },
256
- currentCallTimerStyleProps: {
257
- borderRadius: "2px",
258
- margin: "1px",
259
- color: "#FFFFFF",
260
- paddingTop: "18px",
261
- fontSize: 12,
262
- fontFamily: "Segoe UI, Arial, sans-serif",
263
- backgroundColor: "darkgrey",
264
- height: "45px",
265
- width: "50px",
266
- textAlign: "center"
267
- },
268
264
  videoTileStyleProps: {
269
265
  width: "100%",
270
266
  marginLeft: "auto",
@@ -328,7 +324,10 @@ export const dummyDefaultProps = {
328
324
  hideChatTextContainer: false,
329
325
  hideChatSubtitle: false,
330
326
  hideChatTitle: false,
331
- hideNotificationBubble: true
327
+ hideNotificationBubble: true,
328
+ unreadMessageString: "new messages",
329
+ largeUnreadMessageString: "99+",
330
+ ariaLabelUnreadMessageString: "you have new messages"
332
331
  },
333
332
  styleProps: {
334
333
  generalStyleProps: {
@@ -408,6 +407,7 @@ export const dummyDefaultProps = {
408
407
  width: "90px",
409
408
  cursor: "pointer",
410
409
  overflow: "hidden",
410
+ padding: "0px",
411
411
  whiteSpace: "nowrap"
412
412
  },
413
413
  subtitleStyleProps: {
@@ -415,6 +415,7 @@ export const dummyDefaultProps = {
415
415
  fontWeight: "200",
416
416
  color: "#666",
417
417
  overflow: "hidden",
418
+ padding: "0px",
418
419
  fontFamily: "'Segoe UI',Arial,sans-serif",
419
420
  display: "block",
420
421
  alignItems: "center",
@@ -470,28 +471,30 @@ export const dummyDefaultProps = {
470
471
  cancelButtonText: "Cancel",
471
472
  cancelButtonAriaLabel: "Cancel. Return to Chat",
472
473
  brightnessValueOnDim: "0.2",
473
- disableDimLayer: false,
474
474
  onConfirm: () => {},
475
475
  // Detailed implementation omitted
476
476
  onCancel: () => {} // Detailed implementation omitted
477
-
478
477
  },
478
+
479
479
  styleProps: {
480
480
  generalStyleProps: {
481
+ display: "flex",
482
+ minHeight: "160px",
483
+ maxHeight: "300px",
484
+ boxSizing: "border-box",
481
485
  backgroundColor: "#FFFFFF",
482
486
  borderRadius: "2px",
483
487
  color: "black",
484
488
  fontFamily: "Segoe UI, Arial, sans-serif",
485
489
  fontSize: "14px",
486
- height: "160px",
487
490
  padding: "10px 20px",
488
- width: "262px",
489
491
  position: "absolute",
490
492
  justifyContent: "center",
491
493
  alignItems: "center",
492
- display: "flex",
493
494
  flexFlow: "column",
494
- zIndex: "9999"
495
+ zIndex: "9999",
496
+ left: "26px",
497
+ right: "26px"
495
498
  },
496
499
  titleStyleProps: {
497
500
  color: "#323130",
@@ -513,10 +516,14 @@ export const dummyDefaultProps = {
513
516
  },
514
517
  buttonGroupStyleProps: {
515
518
  display: "flex",
519
+ width: "auto",
520
+ height: "auto",
521
+ boxSizing: "border-box",
516
522
  flexFlow: "row",
517
523
  justifyContent: "center",
518
524
  alignItems: "center",
519
- gap: "10px"
525
+ gap: "10px",
526
+ marginBottom: "10px"
520
527
  },
521
528
  confirmButtonStyleProps: {
522
529
  backgroundColor: "rgba(9,72,159,1)",
@@ -580,7 +587,7 @@ export const dummyDefaultProps = {
580
587
  hideProactiveChatPane: false,
581
588
  hideReconnectChatPane: false,
582
589
  hideWebChatContainer: false,
583
- skipChatButtonRendering: false
590
+ hideStartChatButton: false
584
591
  },
585
592
  directLine: new MockAdapter(),
586
593
  downloadTranscriptProps: {
@@ -621,7 +628,6 @@ export const dummyDefaultProps = {
621
628
  cancelButtonText: "Cancel",
622
629
  cancelButtonAriaLabel: "Cancel",
623
630
  brightnessValueOnDim: "0.2",
624
- disableDimLayer: false,
625
631
  onSend: undefined,
626
632
  onCancel: undefined,
627
633
  checkInput: undefined
@@ -780,6 +786,7 @@ export const dummyDefaultProps = {
780
786
  },
781
787
  audioNotificationButtonProps: {
782
788
  id: "oc-lcw-footer-audionotification-button",
789
+ type: "icon",
783
790
  ariaLabel: "Turn sound off",
784
791
  toggleAriaLabel: "Turn sound on",
785
792
  iconName: "Volume3",
@@ -805,8 +812,10 @@ export const dummyDefaultProps = {
805
812
  padding: "0 10px 5px 10px"
806
813
  },
807
814
  downloadTranscriptButtonStyleProps: {
808
- color: "blue",
809
- fontSize: 16,
815
+ icon: {
816
+ color: "blue",
817
+ fontSize: 16
818
+ },
810
819
  height: "25px",
811
820
  lineHeight: "25px",
812
821
  width: "25px"
@@ -816,8 +825,10 @@ export const dummyDefaultProps = {
816
825
  backgroundColor: "#C8C8C8"
817
826
  },
818
827
  emailTranscriptButtonStyleProps: {
819
- color: "blue",
820
- fontSize: 16,
828
+ cicon: {
829
+ color: "blue",
830
+ fontSize: 16
831
+ },
821
832
  height: "25px",
822
833
  lineHeight: "25px",
823
834
  width: "25px"
@@ -827,8 +838,10 @@ export const dummyDefaultProps = {
827
838
  backgroundColor: "#C8C8C8"
828
839
  },
829
840
  audioNotificationButtonStyleProps: {
830
- color: "blue",
831
- fontSize: 16,
841
+ icon: {
842
+ color: "blue",
843
+ fontSize: 16
844
+ },
832
845
  height: "25px",
833
846
  lineHeight: "25px",
834
847
  width: "25px"
@@ -879,7 +892,7 @@ export const dummyDefaultProps = {
879
892
  className: undefined
880
893
  },
881
894
  closeButtonProps: {
882
- id: "oc-lcw-header-minimize-button",
895
+ id: "oc-lcw-header-close-button",
883
896
  type: "icon",
884
897
  iconName: "ChromeClose",
885
898
  ariaLabel: "Close",
@@ -1058,8 +1071,8 @@ export const dummyDefaultProps = {
1058
1071
  titleText: "We're Offline",
1059
1072
  subtitleText: "No agents available",
1060
1073
  onClick: () => {} // Detailed implementation omitted
1061
-
1062
1074
  },
1075
+
1063
1076
  styleProps: {
1064
1077
  // ...[Existing chat button style props]
1065
1078
  iconStyleProps: {
@@ -1077,8 +1090,8 @@ export const dummyDefaultProps = {
1077
1090
  text: "We're Offline"
1078
1091
  },
1079
1092
  onMinimizeClick: () => {} // Detailed implementation omitted
1080
-
1081
1093
  },
1094
+
1082
1095
  styleProps: {
1083
1096
  // ...[Existing chat button style props]
1084
1097
  generalStyleProps: {
@@ -1147,7 +1160,7 @@ export const dummyDefaultProps = {
1147
1160
  subtitleText: "Please take a moment to give us feedback about your chat experience. We are loading the survey for you now."
1148
1161
  },
1149
1162
  styleProps: {
1150
- // ...[Existing chat button style props]
1163
+ // ...[Existing loading pane style props]
1151
1164
  generalStyleProps: {
1152
1165
  position: "initial",
1153
1166
  width: "100%",
@@ -1175,6 +1188,48 @@ export const dummyDefaultProps = {
1175
1188
  backgroundColor: "#FFFFFF",
1176
1189
  borderColor: "#F1F1F1"
1177
1190
  }
1191
+ },
1192
+ isCustomerVoiceSurveyCompact: undefined
1193
+ },
1194
+ preChatSurveyPaneProps: {
1195
+ controlProps: {
1196
+ id: "oc-lcw-prechatsurveypane-default",
1197
+ dir: "auto",
1198
+ hidePreChatSurveyPane: false,
1199
+ adaptiveCardHostConfig: "{\"fontFamily\":\"Segoe UI, Helvetica Neue, sans-serif\",\"containerStyles\":{\"default\":{\"foregroundColors\":{\"default\":{\"default\":\"#000000\"}},\"backgroundColor\":\"#FFFFFF\"}},\"actions\":{\"actionsOrientation\":\"Vertical\",\"actionAlignment\":\"stretch\"}}",
1200
+ payload: "{\"$schema\":\"http://adaptivecards.io/schemas/adaptive-card.json\",\"type\":\"AdaptiveCard\",\"version\":\"1.1\",\"body\":[{\"type\":\"TextBlock\",\"weight\":\"bolder\",\"text\":\"Please answer below questions.\"},{\"type\":\"Input.Text\",\"id\":\"1e5e4e7a-8f0b-ec11-b6e6-000d3a305d38\",\"label\":\"name pls?\",\"maxLength\":100,\"isRequired\":true,\"errorMessage\":\"Name is required\"},{\"type\":\"Input.Text\",\"id\":\"7f8f5d6d-995e-ec11-8f8f-000d3a31376e\",\"label\":\"multi\\nmulti\\nmulti\",\"style\":\"text\",\"isMultiline\":true,\"maxLength\":250},{\"type\":\"Input.ChoiceSet\",\"id\":\"e4bdf7cb-995e-ec11-8f8f-000d3a31376e\",\"label\":\"options\",\"isMultiSelect\":false,\"value\":\"1\",\"style\":\"compact\",\"choices\":[{\"title\":\"one\",\"value\":\"1\"},{\"title\":\"two\",\"value\":\"2\"},{\"title\":\"three\",\"value\":\"3\"}]},{\"type\":\"Input.Toggle\",\"id\":\"b26011d2-995e-ec11-8f8f-000d3a31376e\",\"title\":\"consent\",\"valueOn\":\"True\",\"valueOff\":\"False\",\"value\":\"false\"},{\"type\":\"TextBlock\",\"isSubtle\":true,\"text\":\"Fields marked with * are mandatory.\",\"wrap\":true}],\"actions\":[{\"type\":\"Action.Submit\",\"title\":\"Submit\",\"data\":{\"Type\":\"InputSubmit\"}}]}",
1201
+ onSubmit: function () {} // Detailed implementation omitted
1202
+ },
1203
+
1204
+ styleProps: {
1205
+ generalStyleProps: {
1206
+ borderStyle: "solid",
1207
+ borderRadius: "4px",
1208
+ borderWidth: "3px",
1209
+ backgroundColor: "#FFFFFF",
1210
+ borderColor: "#F1F1F1",
1211
+ overflowY: "auto",
1212
+ height: "inherit",
1213
+ width: "inherit"
1214
+ },
1215
+ customButtonStyleProps: {
1216
+ backgroundColor: "rgb(49, 95, 162)",
1217
+ color: "#FFFFFF",
1218
+ fontFamily: "Segoe UI, Arial, sans-serif",
1219
+ fontSize: "15px",
1220
+ height: "48px"
1221
+ },
1222
+ adaptiveCardContainerStyleProps: {
1223
+ border: "1px solid #ECECEC",
1224
+ borderRadius: "4px",
1225
+ margin: "3%"
1226
+ },
1227
+ customTextInputStyleProps: {
1228
+ height: "20px"
1229
+ },
1230
+ customMultilineTextInputStyleProps: {
1231
+ height: "52px"
1232
+ }
1178
1233
  }
1179
1234
  },
1180
1235
  proactiveChatPaneProps: {
@@ -1195,7 +1250,17 @@ export const dummyDefaultProps = {
1195
1250
  hideSubtitle: false,
1196
1251
  subtitleText: "Live chat support!",
1197
1252
  hideCloseButton: false,
1198
- closeButtonAriaLabel: "Close Button",
1253
+ closeButtonProps: {
1254
+ id: "oc-lcw-proactivechat-closebutton",
1255
+ type: "icon",
1256
+ iconName: "ChromeClose",
1257
+ ariaLabel: "Close",
1258
+ imageIconProps: undefined,
1259
+ text: "Close",
1260
+ onClick: undefined,
1261
+ className: undefined,
1262
+ hideButtonTitle: true
1263
+ },
1199
1264
  isBodyContainerHorizantal: false,
1200
1265
  hideBodyTitle: false,
1201
1266
  bodyTitleText: "Hi! Have any questions? I am here to help.",
@@ -1205,8 +1270,8 @@ export const dummyDefaultProps = {
1205
1270
  onClose: () => {},
1206
1271
  // Detailed implementation omitted
1207
1272
  onStart: () => {} // Detailed implementation omitted
1208
-
1209
1273
  },
1274
+
1210
1275
  styleProps: {
1211
1276
  generalStyleProps: {
1212
1277
  backgroundColor: "rgb(255, 255, 255)",
@@ -1337,8 +1402,8 @@ export const dummyDefaultProps = {
1337
1402
  onStartNewChat: () => {},
1338
1403
  // Detailed implementation omitted
1339
1404
  onMinimize: () => {} // Detailed implementation omitted
1340
-
1341
1405
  },
1406
+
1342
1407
  styleProps: {
1343
1408
  generalStyleProps: {
1344
1409
  backgroundColor: "rgb(255, 255, 255)",
@@ -1423,8 +1488,6 @@ export const dummyDefaultProps = {
1423
1488
  startNewChatButtonClassName: undefined
1424
1489
  }
1425
1490
  },
1426
- authClientFunction: undefined,
1427
- isReconnectEnabled: undefined,
1428
1491
  reconnectId: undefined,
1429
1492
  redirectInSameWindow: undefined
1430
1493
  },
@@ -1546,6 +1609,12 @@ export const dummyDefaultProps = {
1546
1609
  lineHeight: "16px",
1547
1610
  padding: "0px 10px 0 10px"
1548
1611
  },
1612
+ userMessageBoxStyles: {
1613
+ maxWidth: "90%"
1614
+ },
1615
+ systemMessageBoxStyles: {
1616
+ maxWidth: "90%"
1617
+ },
1549
1618
  typingIndicatorStyleProps: {
1550
1619
  marginLeft: "10px",
1551
1620
  marginBottom: "5px",
@@ -1665,6 +1734,9 @@ export const dummyDefaultProps = {
1665
1734
  },
1666
1735
  attachmentSizeStyles: {
1667
1736
  display: "none"
1737
+ },
1738
+ receivedMessageAnchorStyles: {
1739
+ color: "white"
1668
1740
  }
1669
1741
  },
1670
1742
  localizedTexts: {
@@ -1688,7 +1760,16 @@ export const dummyDefaultProps = {
1688
1760
  MIDDLEWARE_MESSAGE_RETRY: "Retry",
1689
1761
  PRECHAT_REQUIRED_FIELD_MISSING_MESSAGE: "{0} field is required",
1690
1762
  MARKDOWN_EXTERNAL_LINK_ALT: "Opens in a new window; external."
1763
+ },
1764
+ botMagicCode: {
1765
+ disabled: false,
1766
+ fwdUrl: ""
1767
+ },
1768
+ adaptiveCardStyles: {
1769
+ background: "white",
1770
+ color: "black"
1691
1771
  }
1692
1772
  },
1693
- telemetryConfig: undefined
1773
+ telemetryConfig: undefined,
1774
+ getAuthToken: undefined
1694
1775
  };
@@ -7,38 +7,89 @@ import { WebChatStoreLoader } from "../../webchatcontainerstateful/webchatcontro
7
7
  import { defaultWebChatContainerStatefulProps } from "../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps";
8
8
  import { PostChatSurveyMode } from "../../postchatsurveypanestateful/enums/PostChatSurveyMode";
9
9
  import { Constants } from "../../../common/Constants";
10
+ import { addDelayInMs, getWidgetEndChatEventName } from "../../../common/utils";
11
+ import { getAuthClientFunction, handleAuthentication } from "./authHelper";
10
12
 
11
13
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
14
  const prepareEndChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state) => {
13
- var _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3, _state$domainStates$l4;
14
-
15
+ var _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3, _state$domainStates$l4, _conversationDetails;
15
16
  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
17
  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;
17
- const conversationDetails = await chatSDK.getConversationDetails();
18
18
 
19
- if (isPostChatEnabled === "true" && (conversationDetails === null || conversationDetails === void 0 ? void 0 : conversationDetails.canRenderPostChat) === Constants.truePascal) {
19
+ //Unable to end chat if token has expired
20
+ if (props.getAuthToken) {
21
+ const authClientFunction = getAuthClientFunction(props.chatConfig);
22
+ if (props.getAuthToken && authClientFunction) {
23
+ // set auth token to chat sdk before start chat
24
+ const authSuccess = await handleAuthentication(chatSDK, props.chatConfig, props.getAuthToken);
25
+ if (!authSuccess) {
26
+ TelemetryHelper.logActionEvent(LogLevel.ERROR, {
27
+ Event: TelemetryEvent.GetAuthTokenFailed,
28
+ ExceptionDetails: {
29
+ exception: "Unable to get auth token during end chat"
30
+ }
31
+ });
32
+ }
33
+ }
34
+ }
35
+
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ let conversationDetails = undefined;
38
+ try {
39
+ conversationDetails = await chatSDK.getConversationDetails();
40
+ } catch (erorr) {
41
+ TelemetryHelper.logActionEvent(LogLevel.ERROR, {
42
+ Event: TelemetryEvent.GetConversationDetailsException,
43
+ ExceptionDetails: {
44
+ exception: `Failed to get conversation details: ${erorr}`
45
+ }
46
+ });
47
+ }
48
+ if (isPostChatEnabled === "true" && ((_conversationDetails = conversationDetails) === null || _conversationDetails === void 0 ? void 0 : _conversationDetails.canRenderPostChat) === Constants.truePascal) {
20
49
  const skipEndChatSDK = false;
21
50
  const skipCloseChat = true;
22
- await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat);
23
-
51
+ const chatSession = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getCurrentLiveChatContext());
52
+ await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, false);
53
+ if (chatSession) {
54
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
+ chatSDK.chatToken = chatSession.chatToken ?? {};
56
+ chatSDK.requestId = chatSession.requestId;
57
+ }
24
58
  if (postChatSurveyMode === PostChatSurveyMode.Embed) {
59
+ dispatch({
60
+ type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
61
+ payload: ConversationState.PostchatLoading
62
+ });
63
+ await addDelayInMs(Constants.PostChatLoadingDurationInMs);
25
64
  const loadPostChatEvent = {
26
65
  eventName: BroadcastEvent.LoadPostChatSurvey
27
66
  };
28
67
  BroadcastService.postMessage(loadPostChatEvent);
29
68
  } else if (postChatSurveyMode === PostChatSurveyMode.Link) {
69
+ var _props$webChatContain, _props$webChatContain2;
30
70
  dispatch({
31
71
  type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
32
72
  payload: ConversationState.InActive
33
73
  });
74
+
75
+ // Disable SendBox
76
+ if ((props === null || props === void 0 ? void 0 : (_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : (_props$webChatContain2 = _props$webChatContain.renderingMiddlewareProps) === null || _props$webChatContain2 === void 0 ? void 0 : _props$webChatContain2.hideSendboxOnConversationEnd) !== false) {
77
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
78
+ setWebChatStyles(styles => {
79
+ return {
80
+ ...styles,
81
+ hideSendBox: true
82
+ };
83
+ });
84
+ }
34
85
  }
35
- } else {
36
- await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter);
86
+ return;
37
87
  }
38
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
-
88
+ await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, true);
89
+ };
40
90
 
41
- const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat) => {
91
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
92
+ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTab) => {
42
93
  if (!skipEndChatSDK) {
43
94
  try {
44
95
  TelemetryHelper.logSDKEvent(LogLevel.INFO, {
@@ -52,17 +103,35 @@ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, a
52
103
  exception: ex
53
104
  }
54
105
  });
106
+ postMessageToOtherTab = false;
55
107
  }
56
108
  }
57
109
 
110
+ // Need to clear these states immediately when chat ended from OC.
111
+ dispatch({
112
+ type: LiveChatWidgetActionType.SET_CUSTOM_CONTEXT,
113
+ payload: undefined
114
+ });
115
+ dispatch({
116
+ type: LiveChatWidgetActionType.SET_CHAT_TOKEN,
117
+ payload: undefined
118
+ });
119
+ dispatch({
120
+ type: LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
121
+ payload: undefined
122
+ });
123
+ dispatch({
124
+ type: LiveChatWidgetActionType.SET_RECONNECT_ID,
125
+ payload: undefined
126
+ });
58
127
  if (!skipCloseChat) {
59
128
  try {
60
- var _props$webChatContain;
61
-
129
+ var _props$webChatContain3;
62
130
  adapter === null || adapter === void 0 ? void 0 : adapter.end();
63
131
  setAdapter(undefined);
64
- setWebChatStyles({ ...defaultWebChatContainerStatefulProps.webChatStyles,
65
- ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
132
+ setWebChatStyles({
133
+ ...defaultWebChatContainerStatefulProps.webChatStyles,
134
+ ...((_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles)
66
135
  });
67
136
  WebChatStoreLoader.store = null;
68
137
  dispatch({
@@ -82,16 +151,24 @@ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, a
82
151
  payload: null
83
152
  });
84
153
  dispatch({
85
- type: LiveChatWidgetActionType.SET_CHAT_TOKEN,
86
- payload: undefined
154
+ type: LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
155
+ payload: 0
87
156
  });
88
157
  dispatch({
89
- type: LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
90
- payload: undefined
91
- });
92
- BroadcastService.postMessage({
93
- eventName: BroadcastEvent.EndChat
158
+ type: LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS,
159
+ payload: {
160
+ proactiveChatBodyTitle: "",
161
+ proactiveChatEnablePrechat: false,
162
+ proactiveChatInNewWindow: false
163
+ }
94
164
  });
165
+ if (postMessageToOtherTab) {
166
+ var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$controlProps;
167
+ 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) ?? "");
168
+ BroadcastService.postMessage({
169
+ eventName: endChatEventName
170
+ });
171
+ }
95
172
  } catch (error) {
96
173
  TelemetryHelper.logActionEvent(LogLevel.ERROR, {
97
174
  Event: TelemetryEvent.CloseChatMethodException,
@@ -102,5 +179,4 @@ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, a
102
179
  }
103
180
  }
104
181
  };
105
-
106
182
  export { prepareEndChat, endChat };
@@ -2,7 +2,6 @@ import { shouldShowChatButton, shouldShowProactiveChatPane } from "../../../cont
2
2
  import { defaultLiveChatWidgetGeneralStyles } from "./defaultStyles/defaultLiveChatWidgetGeneralStyles";
3
3
  export const getGeneralStylesForButton = state => {
4
4
  let generalStylesForButton = defaultLiveChatWidgetGeneralStyles;
5
-
6
5
  if (!shouldShowChatButton(state) && !shouldShowProactiveChatPane(state)) {
7
6
  generalStylesForButton = Object.assign({}, defaultLiveChatWidgetGeneralStyles, {
8
7
  boxShadow: "0px 0px 2px rgba(0, 0, 0, 0.16), 0px 4px 8px rgba(0, 0, 0, 0.12)",
@@ -12,6 +11,5 @@ export const getGeneralStylesForButton = state => {
12
11
  padding: "0.5"
13
12
  });
14
13
  }
15
-
16
14
  return generalStylesForButton;
17
15
  };
@@ -1,6 +1,7 @@
1
1
  import { LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
2
- import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
2
+ import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
3
3
 
4
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
5
  export const initCallingSdk = async (chatSDK, setVoiceVideoCallingSDK) => {
5
6
  try {
6
7
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -13,18 +14,15 @@ export const initCallingSdk = async (chatSDK, setVoiceVideoCallingSDK) => {
13
14
  });
14
15
  return true;
15
16
  }
16
-
17
17
  return false;
18
18
  } catch (error) {
19
- if (error !== "Voice and video call is not enabled") {
20
- TelemetryHelper.logCallingEvent(LogLevel.ERROR, {
21
- Event: TelemetryEvent.CallingSDKLoadFailed,
22
- ExceptionDetails: {
23
- exception: error
24
- }
25
- });
26
- }
27
-
19
+ TelemetryHelper.logCallingEvent(LogLevel.ERROR, {
20
+ Event: TelemetryEvent.CallingSDKLoadFailed,
21
+ ExceptionDetails: {
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
23
+ exception: error.message
24
+ }
25
+ });
28
26
  return false;
29
27
  }
30
28
  };
@@ -1,14 +1,13 @@
1
1
  import { defaultConfirmationPaneLocalizedTexts } from "../../confirmationpanestateful/common/defaultProps/defaultConfirmationPaneLocalizedTexts";
2
2
  export const initConfirmationPropsComposer = props => {
3
3
  var _props$confirmationPa, _props$footerProps, _props$footerProps$co, _props$footerProps2, _props$footerProps2$c, _props$confirmationPa2;
4
-
5
- const confirmationPanelocalizedTexts = { ...defaultConfirmationPaneLocalizedTexts,
4
+ const confirmationPanelocalizedTexts = {
5
+ ...defaultConfirmationPaneLocalizedTexts,
6
6
  ...(props === null || props === void 0 ? void 0 : (_props$confirmationPa = props.confirmationPaneProps) === null || _props$confirmationPa === void 0 ? void 0 : _props$confirmationPa.confirmationPaneLocalizedTexts)
7
7
  };
8
8
  let confirmationPaneInputs;
9
9
  const emailTranscriptDisabled = ((_props$footerProps = props.footerProps) === null || _props$footerProps === void 0 ? void 0 : (_props$footerProps$co = _props$footerProps.controlProps) === null || _props$footerProps$co === void 0 ? void 0 : _props$footerProps$co.hideEmailTranscriptButton) ?? false;
10
10
  const downloadTranscriptDisabled = ((_props$footerProps2 = props.footerProps) === null || _props$footerProps2 === void 0 ? void 0 : (_props$footerProps2$c = _props$footerProps2.controlProps) === null || _props$footerProps2$c === void 0 ? void 0 : _props$footerProps2$c.hideDownloadTranscriptButton) ?? false;
11
-
12
11
  if (!emailTranscriptDisabled && !downloadTranscriptDisabled) {
13
12
  confirmationPaneInputs = {
14
13
  title: confirmationPanelocalizedTexts.CLOSE_CONFIRMATION_DIALOG_TITLE_FOR_EMAIL_AND_DOWNLOAD_TRANSCRIPT_ENABLED,
@@ -30,8 +29,8 @@ export const initConfirmationPropsComposer = props => {
30
29
  description: confirmationPanelocalizedTexts.CLOSE_CONFIRMATION_DIALOG_DESCRIPTION_DEFAULT
31
30
  };
32
31
  }
33
-
34
- const confirmationPaneProps = { ...props.confirmationPaneProps,
32
+ const confirmationPaneProps = {
33
+ ...props.confirmationPaneProps,
35
34
  controlProps: {
36
35
  titleText: confirmationPaneInputs.title,
37
36
  subtitleText: confirmationPaneInputs.description,