@microsoft/omnichannel-chat-widget 0.1.0-main.c461296 → 0.1.0-main.c5ffed0

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 (329) hide show
  1. package/README.md +35 -11
  2. package/lib/cjs/assets/Icons.js +4 -2
  3. package/lib/cjs/common/Constants.js +52 -155
  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 +111 -0
  8. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
  9. package/lib/cjs/common/telemetry/TelemetryConstants.js +69 -25
  10. package/lib/cjs/common/telemetry/TelemetryHelper.js +31 -56
  11. package/lib/cjs/common/telemetry/TelemetryManager.js +16 -34
  12. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  13. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -3
  14. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +49 -35
  15. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -14
  16. package/lib/cjs/common/utils.js +80 -80
  17. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +21 -45
  18. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -26
  19. package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  20. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +12 -72
  21. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  22. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -37
  23. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  24. package/lib/cjs/components/footerstateful/FooterStateful.js +12 -44
  25. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  26. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -44
  27. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  28. package/lib/cjs/components/headerstateful/HeaderStateful.js +21 -39
  29. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  30. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +39 -0
  31. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +20 -0
  32. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  33. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +34 -0
  34. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +64 -0
  35. package/lib/cjs/components/livechatwidget/common/Deferred.js +37 -0
  36. package/lib/cjs/components/livechatwidget/common/authHelper.js +50 -0
  37. package/lib/cjs/components/livechatwidget/common/createAdapter.js +10 -9
  38. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  39. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
  40. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +36 -43
  41. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
  42. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +136 -63
  43. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  44. package/lib/cjs/components/livechatwidget/common/endChat.js +121 -23
  45. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  46. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +8 -17
  47. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  48. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +38 -52
  49. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +98 -66
  50. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +9 -33
  51. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +2 -15
  52. package/lib/cjs/components/livechatwidget/common/shareObservable.js +41 -0
  53. package/lib/cjs/components/livechatwidget/common/startChat.js +247 -91
  54. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
  55. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
  56. package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  57. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +353 -165
  58. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +26 -19
  59. package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -0
  60. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  61. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -14
  62. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -23
  63. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  64. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  65. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  66. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  67. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +12 -45
  68. package/lib/cjs/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  69. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +19 -33
  70. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
  71. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -19
  72. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
  73. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  74. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  75. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +12 -27
  76. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +6 -17
  77. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  78. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -15
  79. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  80. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  81. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +12 -0
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -5
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +27 -37
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +10 -22
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -61
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +82 -0
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +89 -0
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +7 -18
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +8 -42
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +4 -22
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  117. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  118. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  119. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  120. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  121. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  122. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  123. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +33 -0
  124. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  125. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  126. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  127. package/lib/cjs/contexts/common/ConversationState.js +3 -3
  128. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +30 -26
  129. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +16 -13
  130. package/lib/cjs/contexts/createReducer.js +169 -109
  131. package/lib/cjs/controller/componentController.js +4 -33
  132. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  133. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  134. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  135. package/lib/cjs/hooks/useDebounce.js +28 -0
  136. package/lib/cjs/hooks/useWindowDimensions.js +30 -0
  137. package/lib/cjs/index.js +0 -5
  138. package/lib/cjs/plugins/newMessageEventHandler.js +26 -46
  139. package/lib/esm/assets/Icons.js +2 -1
  140. package/lib/esm/common/Constants.js +47 -143
  141. package/lib/esm/common/KeyCodes.js +3 -3
  142. package/lib/esm/common/contextDataStore/DataStoreManager.js +3 -3
  143. package/lib/esm/common/storage/default/defaultCacheManager.js +18 -0
  144. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +104 -0
  145. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  146. package/lib/esm/common/telemetry/TelemetryConstants.js +73 -22
  147. package/lib/esm/common/telemetry/TelemetryHelper.js +32 -46
  148. package/lib/esm/common/telemetry/TelemetryManager.js +16 -23
  149. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  150. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  151. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +49 -23
  152. package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -10
  153. package/lib/esm/common/utils.js +73 -45
  154. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +21 -16
  155. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +23 -13
  156. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  157. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +15 -49
  158. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -16
  159. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  160. package/lib/esm/components/footerstateful/FooterStateful.js +14 -25
  161. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -37
  162. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  163. package/lib/esm/components/headerstateful/HeaderStateful.js +21 -24
  164. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  165. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +32 -0
  166. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +13 -0
  167. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  168. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +27 -0
  169. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +57 -0
  170. package/lib/esm/components/livechatwidget/common/Deferred.js +30 -0
  171. package/lib/esm/components/livechatwidget/common/authHelper.js +42 -0
  172. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -4
  173. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  174. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
  175. package/lib/esm/components/livechatwidget/common/createMarkdown.js +38 -37
  176. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  177. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +138 -51
  178. package/lib/esm/components/livechatwidget/common/endChat.js +124 -14
  179. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  180. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +10 -12
  181. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  182. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +41 -22
  183. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +98 -58
  184. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +9 -23
  185. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -7
  186. package/lib/esm/components/livechatwidget/common/shareObservable.js +35 -0
  187. package/lib/esm/components/livechatwidget/common/startChat.js +247 -71
  188. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  189. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  190. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +356 -117
  191. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +26 -7
  192. package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
  193. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  194. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -4
  195. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  196. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  197. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  198. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  199. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  200. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +16 -30
  201. package/lib/esm/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  202. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +21 -9
  203. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
  204. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -4
  205. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  206. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  207. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  208. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +12 -19
  209. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +6 -13
  210. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  211. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -5
  212. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  213. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  214. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -3
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +27 -22
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +12 -14
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -39
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +34 -0
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +80 -0
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +83 -0
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +8 -9
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +9 -28
  242. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +5 -14
  243. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  244. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  245. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  246. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  247. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
  248. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  249. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  250. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  251. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  252. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  253. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  254. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  255. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  256. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +27 -0
  257. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  258. package/lib/esm/contexts/ChatContextStore.js +2 -1
  259. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  260. package/lib/esm/contexts/common/ConversationState.js +3 -3
  261. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +30 -26
  262. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +16 -9
  263. package/lib/esm/contexts/createReducer.js +169 -105
  264. package/lib/esm/controller/componentController.js +5 -4
  265. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  266. package/lib/esm/hooks/useChatContextStore.js +0 -4
  267. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  268. package/lib/esm/hooks/useDebounce.js +22 -0
  269. package/lib/esm/hooks/useWindowDimensions.js +23 -0
  270. package/lib/esm/plugins/newMessageEventHandler.js +26 -35
  271. package/lib/types/assets/Icons.d.ts +1 -0
  272. package/lib/types/common/Constants.d.ts +39 -2
  273. package/lib/types/common/interfaces/IContextDataStore.d.ts +2 -2
  274. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  275. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  276. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  277. package/lib/types/common/telemetry/TelemetryConstants.d.ts +49 -7
  278. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  279. package/lib/types/common/telemetry/definitions/Contracts.d.ts +4 -4
  280. package/lib/types/common/telemetry/definitions/Payload.d.ts +13 -9
  281. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +7 -3
  282. package/lib/types/common/utils.d.ts +8 -1
  283. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +4 -4
  284. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  285. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +2 -1
  286. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  287. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  288. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  289. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  290. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  291. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  292. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  293. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  294. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  295. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -4
  296. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  297. package/lib/types/components/livechatwidget/common/startChat.d.ts +5 -2
  298. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  299. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +4 -1
  300. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +6 -3
  301. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  302. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
  303. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  304. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  305. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  306. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -2
  307. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  308. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  309. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  310. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  311. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  312. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +4 -0
  313. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  314. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  315. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  316. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  317. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  318. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  319. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  320. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  321. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.d.ts +1 -1
  322. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  323. package/lib/types/contexts/common/ConversationState.d.ts +3 -2
  324. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +6 -3
  325. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +30 -25
  326. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  327. package/lib/types/hooks/useDebounce.d.ts +3 -0
  328. package/lib/types/hooks/useWindowDimensions.d.ts +4 -0
  329. package/package.json +9 -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,9 +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
- import { typingIndicatorMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware"; // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
+ import { typingIndicatorMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware";
13
15
 
16
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
14
17
  export const dummyDefaultProps = {
15
18
  audioNotificationProps: {
16
19
  audioSrc: NewMessageNotificationSoundBase64
@@ -165,24 +168,28 @@ export const dummyDefaultProps = {
165
168
  },
166
169
  audioCallButtonStyleProps: {
167
170
  borderRadius: "50%",
168
- color: "#FFFFFF",
169
171
  backgroundColor: "#008000",
170
172
  lineHeight: "40px",
171
173
  height: "40px",
172
174
  width: "40px",
173
- fontSize: 18
175
+ icon: {
176
+ fontSize: 18,
177
+ color: "#FFFFFF"
178
+ }
174
179
  },
175
180
  audioCallButtonHoverStyleProps: {
176
181
  filter: "brightness(0.8)"
177
182
  },
178
183
  videoCallButtonStyleProps: {
179
184
  borderRadius: "50%",
180
- color: "#FFFFFF",
181
185
  backgroundColor: "#008000",
182
186
  lineHeight: "40px",
183
187
  height: "40px",
184
188
  width: "40px",
185
- fontSize: 18
189
+ icon: {
190
+ fontSize: 18,
191
+ color: "#FFFFFF"
192
+ }
186
193
  },
187
194
  videoCallButtonHoverStyleProps: {
188
195
  filter: "brightness(0.8)"
@@ -193,13 +200,15 @@ export const dummyDefaultProps = {
193
200
  },
194
201
  declineCallButtonStyleProps: {
195
202
  borderRadius: "50%",
196
- color: "#FFFFFF",
197
203
  backgroundColor: "#DC0000",
198
204
  lineHeight: "40px",
199
205
  height: "40px",
200
206
  width: "40px",
201
- fontSize: 18,
202
- marginLeft: "5px"
207
+ marginLeft: "5px",
208
+ icon: {
209
+ fontSize: 18,
210
+ color: "#FFFFFF"
211
+ }
203
212
  },
204
213
  incomingCallTitleStyleProps: {
205
214
  margin: "0 5px",
@@ -252,18 +261,6 @@ export const dummyDefaultProps = {
252
261
  width: "50px",
253
262
  fontSize: "18px"
254
263
  },
255
- currentCallTimerStyleProps: {
256
- borderRadius: "2px",
257
- margin: "1px",
258
- color: "#FFFFFF",
259
- paddingTop: "18px",
260
- fontSize: 12,
261
- fontFamily: "Segoe UI, Arial, sans-serif",
262
- backgroundColor: "darkgrey",
263
- height: "45px",
264
- width: "50px",
265
- textAlign: "center"
266
- },
267
264
  videoTileStyleProps: {
268
265
  width: "100%",
269
266
  marginLeft: "auto",
@@ -327,7 +324,10 @@ export const dummyDefaultProps = {
327
324
  hideChatTextContainer: false,
328
325
  hideChatSubtitle: false,
329
326
  hideChatTitle: false,
330
- hideNotificationBubble: true
327
+ hideNotificationBubble: true,
328
+ unreadMessageString: "new messages",
329
+ largeUnreadMessageString: "99+",
330
+ ariaLabelUnreadMessageString: "you have new messages"
331
331
  },
332
332
  styleProps: {
333
333
  generalStyleProps: {
@@ -407,6 +407,7 @@ export const dummyDefaultProps = {
407
407
  width: "90px",
408
408
  cursor: "pointer",
409
409
  overflow: "hidden",
410
+ padding: "0px",
410
411
  whiteSpace: "nowrap"
411
412
  },
412
413
  subtitleStyleProps: {
@@ -414,12 +415,14 @@ export const dummyDefaultProps = {
414
415
  fontWeight: "200",
415
416
  color: "#666",
416
417
  overflow: "hidden",
418
+ padding: "0px",
417
419
  fontFamily: "'Segoe UI',Arial,sans-serif",
418
420
  display: "block",
419
421
  alignItems: "center",
420
422
  margin: "0px 14px 0px 14px",
421
423
  textOverflow: "ellipsis !important",
422
- width: "max-content",
424
+ width: "90px",
425
+ whiteSpace: "nowrap",
423
426
  cursor: "pointer"
424
427
  },
425
428
  classNames: {
@@ -469,28 +472,30 @@ export const dummyDefaultProps = {
469
472
  cancelButtonText: "Cancel",
470
473
  cancelButtonAriaLabel: "Cancel. Return to Chat",
471
474
  brightnessValueOnDim: "0.2",
472
- disableDimLayer: false,
473
475
  onConfirm: () => {},
474
476
  // Detailed implementation omitted
475
477
  onCancel: () => {} // Detailed implementation omitted
476
-
477
478
  },
479
+
478
480
  styleProps: {
479
481
  generalStyleProps: {
482
+ display: "flex",
483
+ minHeight: "160px",
484
+ maxHeight: "300px",
485
+ boxSizing: "border-box",
480
486
  backgroundColor: "#FFFFFF",
481
487
  borderRadius: "2px",
482
488
  color: "black",
483
489
  fontFamily: "Segoe UI, Arial, sans-serif",
484
490
  fontSize: "14px",
485
- height: "160px",
486
491
  padding: "10px 20px",
487
- width: "262px",
488
492
  position: "absolute",
489
493
  justifyContent: "center",
490
494
  alignItems: "center",
491
- display: "flex",
492
495
  flexFlow: "column",
493
- zIndex: "9999"
496
+ zIndex: "9999",
497
+ left: "26px",
498
+ right: "26px"
494
499
  },
495
500
  titleStyleProps: {
496
501
  color: "#323130",
@@ -512,10 +517,14 @@ export const dummyDefaultProps = {
512
517
  },
513
518
  buttonGroupStyleProps: {
514
519
  display: "flex",
520
+ width: "auto",
521
+ height: "auto",
522
+ boxSizing: "border-box",
515
523
  flexFlow: "row",
516
524
  justifyContent: "center",
517
525
  alignItems: "center",
518
- gap: "10px"
526
+ gap: "10px",
527
+ marginBottom: "10px"
519
528
  },
520
529
  confirmButtonStyleProps: {
521
530
  backgroundColor: "rgba(9,72,159,1)",
@@ -570,6 +579,7 @@ export const dummyDefaultProps = {
570
579
  hideCallingContainer: false,
571
580
  hideChatButton: false,
572
581
  hideConfirmationPane: false,
582
+ hideErrorUIPane: false,
573
583
  hideFooter: false,
574
584
  hideHeader: false,
575
585
  hideLoadingPane: false,
@@ -579,7 +589,7 @@ export const dummyDefaultProps = {
579
589
  hideProactiveChatPane: false,
580
590
  hideReconnectChatPane: false,
581
591
  hideWebChatContainer: false,
582
- skipChatButtonRendering: false
592
+ hideStartChatButton: false
583
593
  },
584
594
  directLine: new MockAdapter(),
585
595
  downloadTranscriptProps: {
@@ -620,7 +630,6 @@ export const dummyDefaultProps = {
620
630
  cancelButtonText: "Cancel",
621
631
  cancelButtonAriaLabel: "Cancel",
622
632
  brightnessValueOnDim: "0.2",
623
- disableDimLayer: false,
624
633
  onSend: undefined,
625
634
  onCancel: undefined,
626
635
  checkInput: undefined
@@ -779,6 +788,7 @@ export const dummyDefaultProps = {
779
788
  },
780
789
  audioNotificationButtonProps: {
781
790
  id: "oc-lcw-footer-audionotification-button",
791
+ type: "icon",
782
792
  ariaLabel: "Turn sound off",
783
793
  toggleAriaLabel: "Turn sound on",
784
794
  iconName: "Volume3",
@@ -804,8 +814,10 @@ export const dummyDefaultProps = {
804
814
  padding: "0 10px 5px 10px"
805
815
  },
806
816
  downloadTranscriptButtonStyleProps: {
807
- color: "blue",
808
- fontSize: 16,
817
+ icon: {
818
+ color: "blue",
819
+ fontSize: 16
820
+ },
809
821
  height: "25px",
810
822
  lineHeight: "25px",
811
823
  width: "25px"
@@ -815,8 +827,10 @@ export const dummyDefaultProps = {
815
827
  backgroundColor: "#C8C8C8"
816
828
  },
817
829
  emailTranscriptButtonStyleProps: {
818
- color: "blue",
819
- fontSize: 16,
830
+ cicon: {
831
+ color: "blue",
832
+ fontSize: 16
833
+ },
820
834
  height: "25px",
821
835
  lineHeight: "25px",
822
836
  width: "25px"
@@ -826,8 +840,10 @@ export const dummyDefaultProps = {
826
840
  backgroundColor: "#C8C8C8"
827
841
  },
828
842
  audioNotificationButtonStyleProps: {
829
- color: "blue",
830
- fontSize: 16,
843
+ icon: {
844
+ color: "blue",
845
+ fontSize: 16
846
+ },
831
847
  height: "25px",
832
848
  lineHeight: "25px",
833
849
  width: "25px"
@@ -878,7 +894,7 @@ export const dummyDefaultProps = {
878
894
  className: undefined
879
895
  },
880
896
  closeButtonProps: {
881
- id: "oc-lcw-header-minimize-button",
897
+ id: "oc-lcw-header-close-button",
882
898
  type: "icon",
883
899
  iconName: "ChromeClose",
884
900
  ariaLabel: "Close",
@@ -1011,7 +1027,8 @@ export const dummyDefaultProps = {
1011
1027
  margin: "0px 0px 20px 0px",
1012
1028
  display: "flex",
1013
1029
  order: 1,
1014
- alignSelf: "auto"
1030
+ alignSelf: "auto",
1031
+ overflow: "visible"
1015
1032
  },
1016
1033
  iconImageProps: {
1017
1034
  src: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2lpKSI+DQo8cGF0aCBkPSJNMTUuMTk3MSAxNi4yNzI1VjI1Ljg1MjRDMTUuMTk3MSAyNy4zODExIDE1Ljg0MDEgMjcuNTIwMSAxNi45ODMyIDI3LjUyMDFMMjYuNzA4NCAyNy41NjQ5TDMxLjAwMzkgMzIuMzEyM1YyNy41NjQ5SDMxLjg5N0MzMi4xNzQzIDI3LjU2MzcgMzIuNDQ4NyAyNy41MDc3IDMyLjcwNDUgMjcuNDAwMUMzMi45NjAzIDI3LjI5MjQgMzMuMTkyNSAyNy4xMzUzIDMzLjM4NzggMjYuOTM3NUMzMy41ODMxIDI2LjczOTggMzMuNzM3NyAyNi41MDU0IDMzLjg0MjcgMjYuMjQ3N0MzMy45NDc4IDI1Ljk5IDM0LjAwMTMgMjUuNzE0IDM0LjAwMDEgMjUuNDM1NVYxNi4zMDM4QzM0LjAwMTMgMTYuMDI1NCAzMy45NDc4IDE1Ljc0OTQgMzMuODQyNyAxNS40OTE3QzMzLjczNzcgMTUuMjM0IDMzLjU4MzEgMTQuOTk5NiAzMy4zODc4IDE0LjgwMThDMzMuMTkyNSAxNC42MDQxIDMyLjk2MDMgMTQuNDQ2OSAzMi43MDQ1IDE0LjMzOTNDMzIuNDQ4NyAxNC4yMzE2IDMyLjE3NDMgMTQuMTc1NiAzMS44OTcgMTQuMTc0NEwxNy4zMDQ3IDE0LjE0MzFDMTcuMDI2OSAxNC4xNDM3IDE2Ljc1MiAxNC4xOTkyIDE2LjQ5NTcgMTQuMzA2NkMxNi4yMzk0IDE0LjQxNCAxNi4wMDY3IDE0LjU3MTEgMTUuODEwOSAxNC43Njg5QzE1LjYxNTIgMTQuOTY2NyAxNS40NjAyIDE1LjIwMTMgMTUuMzU0OCAxNS40NTkzQzE1LjI0OTUgMTUuNzE3MyAxNS4xOTU5IDE1Ljk5MzYgMTUuMTk3MSAxNi4yNzI1WiIgZmlsbD0iI0Q2RDZENiIvPg0KPC9nPg0KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjFfZGlpKSI+DQo8cGF0aCBkPSJNMjcuODczNSA2LjY5ODg3VjE4Ljg0MDlDMjcuODczNSAyMC43Nzg1IDI3LjA1NzIgMjAuOTU0NiAyNS42MDU4IDIwLjk1NDZMMTMuMjU4IDIxLjAxMTRMNy44MDQxNCAyNy4wMjg1VjIxLjAxMTRINi42NzAyN0M2LjMxODEyIDIxLjAwOTkgNS45Njk3MSAyMC45Mzg5IDUuNjQ0OTMgMjAuODAyNUM1LjMyMDE2IDIwLjY2NjEgNS4wMjUzOCAyMC40NjY4IDQuNzc3NDIgMjAuMjE2MkM0LjUyOTQ2IDE5Ljk2NTYgNC4zMzMxOSAxOS42Njg1IDQuMTk5OCAxOS4zNDE5QzQuMDY2NDIgMTkuMDE1MiAzLjk5ODUzIDE4LjY2NTUgNC4wMDAwMiAxOC4zMTI1VjYuNzM4NjRDMy45OTg1MyA2LjM4NTcxIDQuMDY2NDIgNi4wMzU5NSA0LjE5OTggNS43MDkzMUM0LjMzMzE5IDUuMzgyNjcgNC41Mjk0NiA1LjA4NTU3IDQuNzc3NDIgNC44MzQ5NUM1LjAyNTM4IDQuNTg0MzQgNS4zMjAxNiA0LjM4NTEzIDUuNjQ0OTMgNC4yNDg2OUM1Ljk2OTcxIDQuMTEyMjUgNi4zMTgxMiA0LjA0MTI2IDYuNjcwMjcgNC4wMzk3N0wyNS4xOTc2IDRDMjUuNTUwMiA0LjAwMDc0IDI1Ljg5OTMgNC4wNzExOCAyNi4yMjQ3IDQuMjA3MjlDMjYuNTUwMSA0LjM0MzM5IDI2Ljg0NTYgNC41NDI0OSAyNy4wOTQxIDQuNzkzMThDMjcuMzQyNyA1LjA0Mzg2IDI3LjUzOTUgNS4zNDEyMiAyNy42NzMyIDUuNjY4MjNDMjcuODA3IDUuOTk1MjMgMjcuODc1IDYuMzQ1NDYgMjcuODczNSA2LjY5ODg3WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyKSIvPg0KPC9nPg0KPGRlZnM+DQo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2lpIiB4PSIxNS4xOTcxIiB5PSIxNC4xNDMxIiB3aWR0aD0iMTguODAzMSIgaGVpZ2h0PSIxOC4xNjkzIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+DQo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMC4yIiBkeT0iLTAuMiIvPg0KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIvPg0KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAuMTcgMCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9InNoYXBlIiByZXN1bHQ9ImVmZmVjdDFfaW5uZXJTaGFkb3ciLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMC41IiBkeT0iLTAuNSIvPg0KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIvPg0KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAuMTYgMCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9ImVmZmVjdDFfaW5uZXJTaGFkb3ciIHJlc3VsdD0iZWZmZWN0Ml9pbm5lclNoYWRvdyIvPg0KPC9maWx0ZXI+DQo8ZmlsdGVyIGlkPSJmaWx0ZXIxX2RpaSIgeD0iMCIgeT0iMCIgd2lkdGg9IjM5Ljg3MzYiIGhlaWdodD0iMzkuMDI4NSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPg0KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+DQo8ZmVPZmZzZXQgZHg9IjQiIGR5PSI0Ii8+DQo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI0Ii8+DQo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4yNSAwIi8+DQo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3ciIHJlc3VsdD0ic2hhcGUiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMiIgZHk9Ii0yIi8+DQo8ZmVDb21wb3NpdGUgaW4yPSJoYXJkQWxwaGEiIG9wZXJhdG9yPSJhcml0aG1ldGljIiBrMj0iLTEiIGszPSIxIi8+DQo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMC4xNyAwIi8+DQo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0ic2hhcGUiIHJlc3VsdD0iZWZmZWN0Ml9pbm5lclNoYWRvdyIvPg0KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+DQo8ZmVPZmZzZXQgZHg9Ii0xIiBkeT0iLTEiLz4NCjxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9ImFyaXRobWV0aWMiIGsyPSItMSIgazM9IjEiLz4NCjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwLjE2IDAiLz4NCjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJlZmZlY3QyX2lubmVyU2hhZG93IiByZXN1bHQ9ImVmZmVjdDNfaW5uZXJTaGFkb3ciLz4NCjwvZmlsdGVyPg0KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyIiB4MT0iLTAuMzk1MDAxIiB5MT0iMjMuMTI4MiIgeDI9IjIwLjEwNTgiIHkyPSIzNy44NDc0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQo8c3RvcCBzdG9wLWNvbG9yPSIjRUZFRkVGIi8+DQo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IndoaXRlIi8+DQo8L2xpbmVhckdyYWRpZW50Pg0KPC9kZWZzPg0KPC9zdmc+DQo=",
@@ -1057,8 +1074,8 @@ export const dummyDefaultProps = {
1057
1074
  titleText: "We're Offline",
1058
1075
  subtitleText: "No agents available",
1059
1076
  onClick: () => {} // Detailed implementation omitted
1060
-
1061
1077
  },
1078
+
1062
1079
  styleProps: {
1063
1080
  // ...[Existing chat button style props]
1064
1081
  iconStyleProps: {
@@ -1076,8 +1093,8 @@ export const dummyDefaultProps = {
1076
1093
  text: "We're Offline"
1077
1094
  },
1078
1095
  onMinimizeClick: () => {} // Detailed implementation omitted
1079
-
1080
1096
  },
1097
+
1081
1098
  styleProps: {
1082
1099
  // ...[Existing chat button style props]
1083
1100
  generalStyleProps: {
@@ -1103,7 +1120,8 @@ export const dummyDefaultProps = {
1103
1120
  dir: "auto",
1104
1121
  hideOOOHPane: false,
1105
1122
  hideTitle: false,
1106
- titleText: "Thanks for contacting us. You have reached us outside of our operating hours. An agent will respond when we open."
1123
+ titleText: "Thanks for contacting us. You have reached us outside of our operating hours. An agent will respond when we open. Please see link https://microsoft.com",
1124
+ openLinkInNewTab: true
1107
1125
  },
1108
1126
  styleProps: {
1109
1127
  generalStyleProps: {
@@ -1146,7 +1164,7 @@ export const dummyDefaultProps = {
1146
1164
  subtitleText: "Please take a moment to give us feedback about your chat experience. We are loading the survey for you now."
1147
1165
  },
1148
1166
  styleProps: {
1149
- // ...[Existing chat button style props]
1167
+ // ...[Existing loading pane style props]
1150
1168
  generalStyleProps: {
1151
1169
  position: "initial",
1152
1170
  width: "100%",
@@ -1174,6 +1192,48 @@ export const dummyDefaultProps = {
1174
1192
  backgroundColor: "#FFFFFF",
1175
1193
  borderColor: "#F1F1F1"
1176
1194
  }
1195
+ },
1196
+ isCustomerVoiceSurveyCompact: undefined
1197
+ },
1198
+ preChatSurveyPaneProps: {
1199
+ controlProps: {
1200
+ id: "oc-lcw-prechatsurveypane-default",
1201
+ dir: "auto",
1202
+ hidePreChatSurveyPane: false,
1203
+ adaptiveCardHostConfig: "{\"fontFamily\":\"Segoe UI, Helvetica Neue, sans-serif\",\"containerStyles\":{\"default\":{\"foregroundColors\":{\"default\":{\"default\":\"#000000\"}},\"backgroundColor\":\"#FFFFFF\"}},\"actions\":{\"actionsOrientation\":\"Vertical\",\"actionAlignment\":\"stretch\"}}",
1204
+ 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\"}}]}",
1205
+ onSubmit: function () {} // Detailed implementation omitted
1206
+ },
1207
+
1208
+ styleProps: {
1209
+ generalStyleProps: {
1210
+ borderStyle: "solid",
1211
+ borderRadius: "4px",
1212
+ borderWidth: "0px",
1213
+ backgroundColor: "#FFFFFF",
1214
+ borderColor: "#F1F1F1",
1215
+ overflowY: "auto",
1216
+ height: "inherit",
1217
+ width: "inherit"
1218
+ },
1219
+ customButtonStyleProps: {
1220
+ backgroundColor: "rgb(49, 95, 162)",
1221
+ color: "#FFFFFF",
1222
+ fontFamily: "Segoe UI, Arial, sans-serif",
1223
+ fontSize: "15px",
1224
+ height: "48px"
1225
+ },
1226
+ adaptiveCardContainerStyleProps: {
1227
+ border: "1px solid #ECECEC",
1228
+ borderRadius: "4px",
1229
+ margin: "3%"
1230
+ },
1231
+ customTextInputStyleProps: {
1232
+ height: "20px"
1233
+ },
1234
+ customMultilineTextInputStyleProps: {
1235
+ height: "52px"
1236
+ }
1177
1237
  }
1178
1238
  },
1179
1239
  proactiveChatPaneProps: {
@@ -1194,7 +1254,17 @@ export const dummyDefaultProps = {
1194
1254
  hideSubtitle: false,
1195
1255
  subtitleText: "Live chat support!",
1196
1256
  hideCloseButton: false,
1197
- closeButtonAriaLabel: "Close Button",
1257
+ closeButtonProps: {
1258
+ id: "oc-lcw-proactivechat-closebutton",
1259
+ type: "icon",
1260
+ iconName: "ChromeClose",
1261
+ ariaLabel: "Close",
1262
+ imageIconProps: undefined,
1263
+ text: "Close",
1264
+ onClick: undefined,
1265
+ className: undefined,
1266
+ hideButtonTitle: true
1267
+ },
1198
1268
  isBodyContainerHorizantal: false,
1199
1269
  hideBodyTitle: false,
1200
1270
  bodyTitleText: "Hi! Have any questions? I am here to help.",
@@ -1204,8 +1274,8 @@ export const dummyDefaultProps = {
1204
1274
  onClose: () => {},
1205
1275
  // Detailed implementation omitted
1206
1276
  onStart: () => {} // Detailed implementation omitted
1207
-
1208
1277
  },
1278
+
1209
1279
  styleProps: {
1210
1280
  generalStyleProps: {
1211
1281
  backgroundColor: "rgb(255, 255, 255)",
@@ -1336,8 +1406,8 @@ export const dummyDefaultProps = {
1336
1406
  onStartNewChat: () => {},
1337
1407
  // Detailed implementation omitted
1338
1408
  onMinimize: () => {} // Detailed implementation omitted
1339
-
1340
1409
  },
1410
+
1341
1411
  styleProps: {
1342
1412
  generalStyleProps: {
1343
1413
  backgroundColor: "rgb(255, 255, 255)",
@@ -1422,9 +1492,8 @@ export const dummyDefaultProps = {
1422
1492
  startNewChatButtonClassName: undefined
1423
1493
  }
1424
1494
  },
1425
- authClientFunction: undefined,
1426
- isReconnectEnabled: undefined,
1427
- reconnectId: undefined
1495
+ reconnectId: undefined,
1496
+ redirectInSameWindow: undefined
1428
1497
  },
1429
1498
  styleProps: {
1430
1499
  generalStyles: {
@@ -1496,7 +1565,7 @@ export const dummyDefaultProps = {
1496
1565
  internalErrorBoxClass: undefined,
1497
1566
  internalRenderErrorBox: undefined,
1498
1567
  locale: "en-US",
1499
- onTelemetry: undefined,
1568
+ onTelemetry: createWebChatTelemetry(),
1500
1569
  overrideLocalizedStrings: undefined,
1501
1570
  renderMarkdown: createMarkdown(false, false),
1502
1571
  scrollToEndButtonMiddleware: undefined,
@@ -1544,6 +1613,12 @@ export const dummyDefaultProps = {
1544
1613
  lineHeight: "16px",
1545
1614
  padding: "0px 10px 0 10px"
1546
1615
  },
1616
+ userMessageBoxStyles: {
1617
+ maxWidth: "90%"
1618
+ },
1619
+ systemMessageBoxStyles: {
1620
+ maxWidth: "90%"
1621
+ },
1547
1622
  typingIndicatorStyleProps: {
1548
1623
  marginLeft: "10px",
1549
1624
  marginBottom: "5px",
@@ -1663,6 +1738,9 @@ export const dummyDefaultProps = {
1663
1738
  },
1664
1739
  attachmentSizeStyles: {
1665
1740
  display: "none"
1741
+ },
1742
+ receivedMessageAnchorStyles: {
1743
+ color: "white"
1666
1744
  }
1667
1745
  },
1668
1746
  localizedTexts: {
@@ -1686,7 +1764,16 @@ export const dummyDefaultProps = {
1686
1764
  MIDDLEWARE_MESSAGE_RETRY: "Retry",
1687
1765
  PRECHAT_REQUIRED_FIELD_MISSING_MESSAGE: "{0} field is required",
1688
1766
  MARKDOWN_EXTERNAL_LINK_ALT: "Opens in a new window; external."
1767
+ },
1768
+ botMagicCode: {
1769
+ disabled: false,
1770
+ fwdUrl: ""
1771
+ },
1772
+ adaptiveCardStyles: {
1773
+ background: "white",
1774
+ color: "black"
1689
1775
  }
1690
1776
  },
1691
- telemetryConfig: undefined
1777
+ telemetryConfig: undefined,
1778
+ getAuthToken: undefined
1692
1779
  };
@@ -4,9 +4,92 @@ import { ConversationState } from "../../../contexts/common/ConversationState";
4
4
  import { LiveChatWidgetActionType } from "../../../contexts/common/LiveChatWidgetActionType";
5
5
  import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
6
6
  import { WebChatStoreLoader } from "../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader";
7
- import { defaultWebChatContainerStatefulProps } from "../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
+ import { defaultWebChatContainerStatefulProps } from "../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps";
8
+ import { PostChatSurveyMode } from "../../postchatsurveypanestateful/enums/PostChatSurveyMode";
9
+ import { Constants } from "../../../common/Constants";
10
+ import { addDelayInMs, getWidgetEndChatEventName } from "../../../common/utils";
11
+ import { getAuthClientFunction, handleAuthentication } from "./authHelper";
8
12
 
9
- export const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat) => {
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+ const prepareEndChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state) => {
15
+ var _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3, _state$domainStates$l4, _conversationDetails;
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;
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;
18
+
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 end 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) {
49
+ const skipEndChatSDK = false;
50
+ const skipCloseChat = true;
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
+ }
58
+ if (postChatSurveyMode === PostChatSurveyMode.Embed) {
59
+ dispatch({
60
+ type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
61
+ payload: ConversationState.PostchatLoading
62
+ });
63
+ await addDelayInMs(Constants.PostChatLoadingDurationInMs);
64
+ const loadPostChatEvent = {
65
+ eventName: BroadcastEvent.LoadPostChatSurvey
66
+ };
67
+ BroadcastService.postMessage(loadPostChatEvent);
68
+ } else if (postChatSurveyMode === PostChatSurveyMode.Link) {
69
+ var _props$webChatContain, _props$webChatContain2;
70
+ dispatch({
71
+ type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
72
+ payload: ConversationState.InActive
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
+ }
85
+ }
86
+ return;
87
+ }
88
+ await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, true);
89
+ };
90
+
91
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
92
+ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTab) => {
10
93
  if (!skipEndChatSDK) {
11
94
  try {
12
95
  TelemetryHelper.logSDKEvent(LogLevel.INFO, {
@@ -20,17 +103,35 @@ export const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, disp
20
103
  exception: ex
21
104
  }
22
105
  });
106
+ postMessageToOtherTab = false;
23
107
  }
24
108
  }
25
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
+ });
26
127
  if (!skipCloseChat) {
27
128
  try {
28
- var _props$webChatContain;
29
-
129
+ var _props$webChatContain3;
30
130
  adapter === null || adapter === void 0 ? void 0 : adapter.end();
31
131
  setAdapter(undefined);
32
- setWebChatStyles({ ...defaultWebChatContainerStatefulProps.webChatStyles,
33
- ...((_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)
34
135
  });
35
136
  WebChatStoreLoader.store = null;
36
137
  dispatch({
@@ -50,16 +151,24 @@ export const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, disp
50
151
  payload: null
51
152
  });
52
153
  dispatch({
53
- type: LiveChatWidgetActionType.SET_CHAT_TOKEN,
54
- payload: undefined
154
+ type: LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
155
+ payload: 0
55
156
  });
56
157
  dispatch({
57
- type: LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
58
- payload: undefined
59
- });
60
- BroadcastService.postMessage({
61
- eventName: BroadcastEvent.EndChat
158
+ type: LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS,
159
+ payload: {
160
+ proactiveChatBodyTitle: "",
161
+ proactiveChatEnablePrechat: false,
162
+ proactiveChatInNewWindow: false
163
+ }
62
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
+ }
63
172
  } catch (error) {
64
173
  TelemetryHelper.logActionEvent(LogLevel.ERROR, {
65
174
  Event: TelemetryEvent.CloseChatMethodException,
@@ -69,4 +178,5 @@ export const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, disp
69
178
  });
70
179
  }
71
180
  }
72
- };
181
+ };
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
  };