@microsoft/omnichannel-chat-widget 0.1.0-main.07f52ee → 0.1.0-main.0c0fd47

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 (356) hide show
  1. package/README.md +35 -11
  2. package/lib/cjs/assets/Audios.js +8 -0
  3. package/lib/cjs/assets/Icons.js +30 -0
  4. package/lib/cjs/common/Constants.js +50 -151
  5. package/lib/cjs/common/KeyCodes.js +3 -4
  6. package/lib/cjs/common/contextDataStore/DataStoreManager.js +3 -5
  7. package/lib/cjs/common/storage/default/defaultCacheManager.js +26 -0
  8. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +102 -0
  9. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
  10. package/lib/cjs/common/telemetry/TelemetryConstants.js +83 -22
  11. package/lib/cjs/common/telemetry/TelemetryHelper.js +29 -55
  12. package/lib/cjs/common/telemetry/TelemetryManager.js +17 -35
  13. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  14. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -3
  15. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +49 -35
  16. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -14
  17. package/lib/cjs/common/utils.js +80 -80
  18. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +21 -45
  19. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -26
  20. package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  21. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +12 -70
  22. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  23. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -36
  24. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  25. package/lib/cjs/components/footerstateful/FooterStateful.js +14 -46
  26. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  27. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -44
  28. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  29. package/lib/cjs/components/headerstateful/HeaderStateful.js +24 -35
  30. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  31. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +39 -0
  32. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +20 -0
  33. package/lib/cjs/{assets/assets.d.js → components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js} +0 -0
  34. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +34 -0
  35. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +64 -0
  36. package/lib/cjs/components/livechatwidget/common/Deferred.js +37 -0
  37. package/lib/cjs/components/livechatwidget/common/authHelper.js +50 -0
  38. package/lib/cjs/components/livechatwidget/common/createAdapter.js +10 -9
  39. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  40. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
  41. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +36 -44
  42. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
  43. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +135 -62
  44. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  45. package/lib/cjs/components/livechatwidget/common/endChat.js +167 -61
  46. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  47. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +8 -17
  48. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  49. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +58 -54
  50. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +98 -66
  51. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +9 -33
  52. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +3 -15
  53. package/lib/cjs/components/livechatwidget/common/shareObservable.js +41 -0
  54. package/lib/cjs/components/livechatwidget/common/startChat.js +240 -91
  55. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -11
  56. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
  57. package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  58. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +358 -163
  59. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +19 -19
  60. package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -0
  61. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  62. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -14
  63. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -23
  64. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  65. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  66. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  67. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  68. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +11 -44
  69. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +26 -34
  70. package/lib/cjs/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  71. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
  72. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -19
  73. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
  74. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  75. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  76. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +12 -27
  77. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +9 -16
  78. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  79. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +54 -88
  80. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  81. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  82. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +12 -0
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -5
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +33 -80
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +9 -19
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -60
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +82 -0
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +89 -0
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +7 -18
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +6 -28
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +2 -11
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +7 -18
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  117. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  118. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  119. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  120. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  121. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  122. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  123. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  124. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +33 -0
  125. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  126. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  127. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  128. package/lib/cjs/contexts/common/ConversationState.js +4 -3
  129. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +30 -26
  130. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +16 -11
  131. package/lib/cjs/contexts/createReducer.js +169 -109
  132. package/lib/cjs/controller/componentController.js +5 -34
  133. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  134. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  135. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  136. package/lib/cjs/index.js +0 -5
  137. package/lib/cjs/plugins/newMessageEventHandler.js +78 -0
  138. package/lib/esm/assets/Audios.js +1 -0
  139. package/lib/esm/assets/Icons.js +12 -0
  140. package/lib/esm/common/Constants.js +45 -139
  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 +95 -0
  145. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  146. package/lib/esm/common/telemetry/TelemetryConstants.js +82 -17
  147. package/lib/esm/common/telemetry/TelemetryHelper.js +30 -45
  148. package/lib/esm/common/telemetry/TelemetryManager.js +17 -24
  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 +13 -46
  158. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -15
  159. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  160. package/lib/esm/components/footerstateful/FooterStateful.js +15 -26
  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 +25 -21
  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 +136 -51
  178. package/lib/esm/components/livechatwidget/common/endChat.js +171 -50
  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 +60 -26
  183. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +98 -59
  184. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +9 -23
  185. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -6
  186. package/lib/esm/components/livechatwidget/common/shareObservable.js +35 -0
  187. package/lib/esm/components/livechatwidget/common/startChat.js +240 -72
  188. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  189. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  190. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  191. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +363 -118
  192. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +19 -7
  193. package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
  194. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  195. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -4
  196. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  197. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  198. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  199. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  200. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  201. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +15 -29
  202. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +29 -13
  203. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  204. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
  205. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -4
  206. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  207. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  208. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  209. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +12 -19
  210. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +9 -12
  211. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  212. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -17
  213. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  214. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  215. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -3
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +34 -66
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +11 -11
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -39
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +34 -0
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +80 -0
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +83 -0
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +8 -9
  242. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +7 -14
  243. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +3 -3
  244. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  245. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  246. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  247. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  248. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +9 -14
  249. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  250. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  251. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  252. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  253. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  254. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  255. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  256. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  257. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +27 -0
  258. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  259. package/lib/esm/contexts/ChatContextStore.js +2 -1
  260. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  261. package/lib/esm/contexts/common/ConversationState.js +4 -3
  262. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +30 -26
  263. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +16 -7
  264. package/lib/esm/contexts/createReducer.js +169 -105
  265. package/lib/esm/controller/componentController.js +6 -5
  266. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  267. package/lib/esm/hooks/useChatContextStore.js +0 -4
  268. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  269. package/lib/esm/plugins/newMessageEventHandler.js +71 -0
  270. package/lib/types/assets/Audios.d.ts +1 -0
  271. package/lib/types/assets/Icons.d.ts +12 -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 +57 -4
  278. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  279. package/lib/types/common/telemetry/definitions/Contracts.d.ts +2 -4
  280. package/lib/types/common/telemetry/definitions/Payload.d.ts +12 -9
  281. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +3 -3
  282. package/lib/types/common/utils.d.ts +8 -1
  283. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  284. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  285. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +5 -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/common/startProactiveChat.d.ts +2 -1
  299. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  300. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +2 -1
  301. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +6 -3
  302. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  303. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
  304. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  305. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  306. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  307. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  308. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -2
  309. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  310. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +2 -0
  311. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  312. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  313. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  314. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  315. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +4 -0
  316. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  317. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  318. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  319. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  320. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  321. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  322. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  323. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  324. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  325. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  326. package/lib/types/contexts/common/ConversationState.d.ts +4 -2
  327. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +6 -3
  328. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +30 -25
  329. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  330. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  331. package/package.json +12 -13
  332. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  333. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  334. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  335. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  336. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  337. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  338. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  339. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  340. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  341. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  342. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  343. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  344. package/lib/esm/assets/assets.d.js +0 -0
  345. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  346. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  347. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  348. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  349. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  350. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  351. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  352. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  353. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  354. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  355. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  356. package/lib/esm/assets/icons/wordIcon.svg +0 -6
@@ -1,5 +1,8 @@
1
1
  /* eslint-disable @typescript-eslint/no-empty-function, @typescript-eslint/no-explicit-any */
2
+
3
+ import { ChatReconnectIconBase64, CloseChatButtonIconBase64, ModernChatIconBase64, ProactiveChatBannerBase64 } from "@microsoft/omnichannel-chat-components";
2
4
  import MockAdapter from "../../../webchatcontainerstateful/common/mockadapter";
5
+ import { NewMessageNotificationSoundBase64 } from "../../../../assets/Audios";
3
6
  import { WebChatStoreLoader } from "../../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader";
4
7
  import { activityStatusMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware";
5
8
  import { createActivityMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware";
@@ -8,10 +11,12 @@ import { createAvatarMiddleware } from "../../../webchatcontainerstateful/webcha
8
11
  import { createMarkdown } from "../createMarkdown";
9
12
  import { groupActivitiesMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware";
10
13
  import { typingIndicatorMiddleware } from "../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware";
14
+ import { createWebChatTelemetry } from "../../../webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger";
15
+
11
16
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
12
17
  export const dummyDefaultProps = {
13
18
  audioNotificationProps: {
14
- audioSrc: "assets/audios/newMessageNotification.mp3"
19
+ audioSrc: NewMessageNotificationSoundBase64
15
20
  },
16
21
  callingContainerProps: {
17
22
  controlProps: {
@@ -163,24 +168,28 @@ export const dummyDefaultProps = {
163
168
  },
164
169
  audioCallButtonStyleProps: {
165
170
  borderRadius: "50%",
166
- color: "#FFFFFF",
167
171
  backgroundColor: "#008000",
168
172
  lineHeight: "40px",
169
173
  height: "40px",
170
174
  width: "40px",
171
- fontSize: 18
175
+ icon: {
176
+ fontSize: 18,
177
+ color: "#FFFFFF"
178
+ }
172
179
  },
173
180
  audioCallButtonHoverStyleProps: {
174
181
  filter: "brightness(0.8)"
175
182
  },
176
183
  videoCallButtonStyleProps: {
177
184
  borderRadius: "50%",
178
- color: "#FFFFFF",
179
185
  backgroundColor: "#008000",
180
186
  lineHeight: "40px",
181
187
  height: "40px",
182
188
  width: "40px",
183
- fontSize: 18
189
+ icon: {
190
+ fontSize: 18,
191
+ color: "#FFFFFF"
192
+ }
184
193
  },
185
194
  videoCallButtonHoverStyleProps: {
186
195
  filter: "brightness(0.8)"
@@ -191,13 +200,15 @@ export const dummyDefaultProps = {
191
200
  },
192
201
  declineCallButtonStyleProps: {
193
202
  borderRadius: "50%",
194
- color: "#FFFFFF",
195
203
  backgroundColor: "#DC0000",
196
204
  lineHeight: "40px",
197
205
  height: "40px",
198
206
  width: "40px",
199
- fontSize: 18,
200
- marginLeft: "5px"
207
+ marginLeft: "5px",
208
+ icon: {
209
+ fontSize: 18,
210
+ color: "#FFFFFF"
211
+ }
201
212
  },
202
213
  incomingCallTitleStyleProps: {
203
214
  margin: "0 5px",
@@ -250,18 +261,6 @@ export const dummyDefaultProps = {
250
261
  width: "50px",
251
262
  fontSize: "18px"
252
263
  },
253
- currentCallTimerStyleProps: {
254
- borderRadius: "2px",
255
- margin: "1px",
256
- color: "#FFFFFF",
257
- paddingTop: "18px",
258
- fontSize: 12,
259
- fontFamily: "Segoe UI, Arial, sans-serif",
260
- backgroundColor: "darkgrey",
261
- height: "45px",
262
- width: "50px",
263
- textAlign: "center"
264
- },
265
264
  videoTileStyleProps: {
266
265
  width: "100%",
267
266
  marginLeft: "auto",
@@ -325,7 +324,10 @@ export const dummyDefaultProps = {
325
324
  hideChatTextContainer: false,
326
325
  hideChatSubtitle: false,
327
326
  hideChatTitle: false,
328
- hideNotificationBubble: true
327
+ hideNotificationBubble: true,
328
+ unreadMessageString: "new messages",
329
+ largeUnreadMessageString: "99+",
330
+ ariaLabelUnreadMessageString: "you have new messages"
329
331
  },
330
332
  styleProps: {
331
333
  generalStyleProps: {
@@ -366,7 +368,7 @@ export const dummyDefaultProps = {
366
368
  margin: "-2px -2px -2px -3px",
367
369
  justifyContent: "center",
368
370
  backgroundSize: "65% 65%",
369
- backgroundImage: "assets/imgs/chat.svg",
371
+ backgroundImage: `url(${ModernChatIconBase64})`,
370
372
  display: "flex",
371
373
  backgroundRepeat: "no-repeat",
372
374
  backgroundPosition: "center"
@@ -471,24 +473,27 @@ export const dummyDefaultProps = {
471
473
  onConfirm: () => {},
472
474
  // Detailed implementation omitted
473
475
  onCancel: () => {} // Detailed implementation omitted
474
-
475
476
  },
477
+
476
478
  styleProps: {
477
479
  generalStyleProps: {
480
+ display: "flex",
481
+ minHeight: "160px",
482
+ maxHeight: "300px",
483
+ boxSizing: "border-box",
478
484
  backgroundColor: "#FFFFFF",
479
485
  borderRadius: "2px",
480
486
  color: "black",
481
487
  fontFamily: "Segoe UI, Arial, sans-serif",
482
488
  fontSize: "14px",
483
- height: "160px",
484
489
  padding: "10px 20px",
485
- width: "262px",
486
490
  position: "absolute",
487
491
  justifyContent: "center",
488
492
  alignItems: "center",
489
- display: "flex",
490
493
  flexFlow: "column",
491
- zIndex: "9999"
494
+ zIndex: "9999",
495
+ left: "26px",
496
+ right: "26px"
492
497
  },
493
498
  titleStyleProps: {
494
499
  color: "#323130",
@@ -510,10 +515,14 @@ export const dummyDefaultProps = {
510
515
  },
511
516
  buttonGroupStyleProps: {
512
517
  display: "flex",
518
+ width: "auto",
519
+ height: "auto",
520
+ boxSizing: "border-box",
513
521
  flexFlow: "row",
514
522
  justifyContent: "center",
515
523
  alignItems: "center",
516
- gap: "10px"
524
+ gap: "10px",
525
+ marginBottom: "10px"
517
526
  },
518
527
  confirmButtonStyleProps: {
519
528
  backgroundColor: "rgba(9,72,159,1)",
@@ -577,7 +586,7 @@ export const dummyDefaultProps = {
577
586
  hideProactiveChatPane: false,
578
587
  hideReconnectChatPane: false,
579
588
  hideWebChatContainer: false,
580
- skipChatButtonRendering: false
589
+ hideStartChatButton: false
581
590
  },
582
591
  directLine: new MockAdapter(),
583
592
  downloadTranscriptProps: {
@@ -777,6 +786,7 @@ export const dummyDefaultProps = {
777
786
  },
778
787
  audioNotificationButtonProps: {
779
788
  id: "oc-lcw-footer-audionotification-button",
789
+ type: "icon",
780
790
  ariaLabel: "Turn sound off",
781
791
  toggleAriaLabel: "Turn sound on",
782
792
  iconName: "Volume3",
@@ -802,8 +812,10 @@ export const dummyDefaultProps = {
802
812
  padding: "0 10px 5px 10px"
803
813
  },
804
814
  downloadTranscriptButtonStyleProps: {
805
- color: "blue",
806
- fontSize: 16,
815
+ icon: {
816
+ color: "blue",
817
+ fontSize: 16
818
+ },
807
819
  height: "25px",
808
820
  lineHeight: "25px",
809
821
  width: "25px"
@@ -813,8 +825,10 @@ export const dummyDefaultProps = {
813
825
  backgroundColor: "#C8C8C8"
814
826
  },
815
827
  emailTranscriptButtonStyleProps: {
816
- color: "blue",
817
- fontSize: 16,
828
+ cicon: {
829
+ color: "blue",
830
+ fontSize: 16
831
+ },
818
832
  height: "25px",
819
833
  lineHeight: "25px",
820
834
  width: "25px"
@@ -824,8 +838,10 @@ export const dummyDefaultProps = {
824
838
  backgroundColor: "#C8C8C8"
825
839
  },
826
840
  audioNotificationButtonStyleProps: {
827
- color: "blue",
828
- fontSize: 16,
841
+ icon: {
842
+ color: "blue",
843
+ fontSize: 16
844
+ },
829
845
  height: "25px",
830
846
  lineHeight: "25px",
831
847
  width: "25px"
@@ -876,7 +892,7 @@ export const dummyDefaultProps = {
876
892
  className: undefined
877
893
  },
878
894
  closeButtonProps: {
879
- id: "oc-lcw-header-minimize-button",
895
+ id: "oc-lcw-header-close-button",
880
896
  type: "icon",
881
897
  iconName: "ChromeClose",
882
898
  ariaLabel: "Close",
@@ -887,7 +903,7 @@ export const dummyDefaultProps = {
887
903
  },
888
904
  headerIconProps: {
889
905
  id: "oc-lcw-header-icon",
890
- src: "assets/imgs/chatIcon.svg",
906
+ src: ModernChatIconBase64,
891
907
  alt: "Chat Icon",
892
908
  className: undefined
893
909
  },
@@ -1012,7 +1028,7 @@ export const dummyDefaultProps = {
1012
1028
  alignSelf: "auto"
1013
1029
  },
1014
1030
  iconImageProps: {
1015
- src: "assets/imgs/chat.svg",
1031
+ src: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2lpKSI+DQo8cGF0aCBkPSJNMTUuMTk3MSAxNi4yNzI1VjI1Ljg1MjRDMTUuMTk3MSAyNy4zODExIDE1Ljg0MDEgMjcuNTIwMSAxNi45ODMyIDI3LjUyMDFMMjYuNzA4NCAyNy41NjQ5TDMxLjAwMzkgMzIuMzEyM1YyNy41NjQ5SDMxLjg5N0MzMi4xNzQzIDI3LjU2MzcgMzIuNDQ4NyAyNy41MDc3IDMyLjcwNDUgMjcuNDAwMUMzMi45NjAzIDI3LjI5MjQgMzMuMTkyNSAyNy4xMzUzIDMzLjM4NzggMjYuOTM3NUMzMy41ODMxIDI2LjczOTggMzMuNzM3NyAyNi41MDU0IDMzLjg0MjcgMjYuMjQ3N0MzMy45NDc4IDI1Ljk5IDM0LjAwMTMgMjUuNzE0IDM0LjAwMDEgMjUuNDM1NVYxNi4zMDM4QzM0LjAwMTMgMTYuMDI1NCAzMy45NDc4IDE1Ljc0OTQgMzMuODQyNyAxNS40OTE3QzMzLjczNzcgMTUuMjM0IDMzLjU4MzEgMTQuOTk5NiAzMy4zODc4IDE0LjgwMThDMzMuMTkyNSAxNC42MDQxIDMyLjk2MDMgMTQuNDQ2OSAzMi43MDQ1IDE0LjMzOTNDMzIuNDQ4NyAxNC4yMzE2IDMyLjE3NDMgMTQuMTc1NiAzMS44OTcgMTQuMTc0NEwxNy4zMDQ3IDE0LjE0MzFDMTcuMDI2OSAxNC4xNDM3IDE2Ljc1MiAxNC4xOTkyIDE2LjQ5NTcgMTQuMzA2NkMxNi4yMzk0IDE0LjQxNCAxNi4wMDY3IDE0LjU3MTEgMTUuODEwOSAxNC43Njg5QzE1LjYxNTIgMTQuOTY2NyAxNS40NjAyIDE1LjIwMTMgMTUuMzU0OCAxNS40NTkzQzE1LjI0OTUgMTUuNzE3MyAxNS4xOTU5IDE1Ljk5MzYgMTUuMTk3MSAxNi4yNzI1WiIgZmlsbD0iI0Q2RDZENiIvPg0KPC9nPg0KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjFfZGlpKSI+DQo8cGF0aCBkPSJNMjcuODczNSA2LjY5ODg3VjE4Ljg0MDlDMjcuODczNSAyMC43Nzg1IDI3LjA1NzIgMjAuOTU0NiAyNS42MDU4IDIwLjk1NDZMMTMuMjU4IDIxLjAxMTRMNy44MDQxNCAyNy4wMjg1VjIxLjAxMTRINi42NzAyN0M2LjMxODEyIDIxLjAwOTkgNS45Njk3MSAyMC45Mzg5IDUuNjQ0OTMgMjAuODAyNUM1LjMyMDE2IDIwLjY2NjEgNS4wMjUzOCAyMC40NjY4IDQuNzc3NDIgMjAuMjE2MkM0LjUyOTQ2IDE5Ljk2NTYgNC4zMzMxOSAxOS42Njg1IDQuMTk5OCAxOS4zNDE5QzQuMDY2NDIgMTkuMDE1MiAzLjk5ODUzIDE4LjY2NTUgNC4wMDAwMiAxOC4zMTI1VjYuNzM4NjRDMy45OTg1MyA2LjM4NTcxIDQuMDY2NDIgNi4wMzU5NSA0LjE5OTggNS43MDkzMUM0LjMzMzE5IDUuMzgyNjcgNC41Mjk0NiA1LjA4NTU3IDQuNzc3NDIgNC44MzQ5NUM1LjAyNTM4IDQuNTg0MzQgNS4zMjAxNiA0LjM4NTEzIDUuNjQ0OTMgNC4yNDg2OUM1Ljk2OTcxIDQuMTEyMjUgNi4zMTgxMiA0LjA0MTI2IDYuNjcwMjcgNC4wMzk3N0wyNS4xOTc2IDRDMjUuNTUwMiA0LjAwMDc0IDI1Ljg5OTMgNC4wNzExOCAyNi4yMjQ3IDQuMjA3MjlDMjYuNTUwMSA0LjM0MzM5IDI2Ljg0NTYgNC41NDI0OSAyNy4wOTQxIDQuNzkzMThDMjcuMzQyNyA1LjA0Mzg2IDI3LjUzOTUgNS4zNDEyMiAyNy42NzMyIDUuNjY4MjNDMjcuODA3IDUuOTk1MjMgMjcuODc1IDYuMzQ1NDYgMjcuODczNSA2LjY5ODg3WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyKSIvPg0KPC9nPg0KPGRlZnM+DQo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2lpIiB4PSIxNS4xOTcxIiB5PSIxNC4xNDMxIiB3aWR0aD0iMTguODAzMSIgaGVpZ2h0PSIxOC4xNjkzIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+DQo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMC4yIiBkeT0iLTAuMiIvPg0KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIvPg0KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAuMTcgMCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9InNoYXBlIiByZXN1bHQ9ImVmZmVjdDFfaW5uZXJTaGFkb3ciLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMC41IiBkeT0iLTAuNSIvPg0KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIvPg0KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAuMTYgMCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9ImVmZmVjdDFfaW5uZXJTaGFkb3ciIHJlc3VsdD0iZWZmZWN0Ml9pbm5lclNoYWRvdyIvPg0KPC9maWx0ZXI+DQo8ZmlsdGVyIGlkPSJmaWx0ZXIxX2RpaSIgeD0iMCIgeT0iMCIgd2lkdGg9IjM5Ljg3MzYiIGhlaWdodD0iMzkuMDI4NSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPg0KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+DQo8ZmVPZmZzZXQgZHg9IjQiIGR5PSI0Ii8+DQo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI0Ii8+DQo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4yNSAwIi8+DQo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3ciIHJlc3VsdD0ic2hhcGUiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMiIgZHk9Ii0yIi8+DQo8ZmVDb21wb3NpdGUgaW4yPSJoYXJkQWxwaGEiIG9wZXJhdG9yPSJhcml0aG1ldGljIiBrMj0iLTEiIGszPSIxIi8+DQo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMC4xNyAwIi8+DQo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0ic2hhcGUiIHJlc3VsdD0iZWZmZWN0Ml9pbm5lclNoYWRvdyIvPg0KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+DQo8ZmVPZmZzZXQgZHg9Ii0xIiBkeT0iLTEiLz4NCjxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9ImFyaXRobWV0aWMiIGsyPSItMSIgazM9IjEiLz4NCjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwLjE2IDAiLz4NCjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJlZmZlY3QyX2lubmVyU2hhZG93IiByZXN1bHQ9ImVmZmVjdDNfaW5uZXJTaGFkb3ciLz4NCjwvZmlsdGVyPg0KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyIiB4MT0iLTAuMzk1MDAxIiB5MT0iMjMuMTI4MiIgeDI9IjIwLjEwNTgiIHkyPSIzNy44NDc0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQo8c3RvcCBzdG9wLWNvbG9yPSIjRUZFRkVGIi8+DQo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IndoaXRlIi8+DQo8L2xpbmVhckdyYWRpZW50Pg0KPC9kZWZzPg0KPC9zdmc+DQo=",
1016
1032
  imageFit: 0,
1017
1033
  width: "86px",
1018
1034
  height: "86px",
@@ -1055,8 +1071,8 @@ export const dummyDefaultProps = {
1055
1071
  titleText: "We're Offline",
1056
1072
  subtitleText: "No agents available",
1057
1073
  onClick: () => {} // Detailed implementation omitted
1058
-
1059
1074
  },
1075
+
1060
1076
  styleProps: {
1061
1077
  // ...[Existing chat button style props]
1062
1078
  iconStyleProps: {
@@ -1074,8 +1090,8 @@ export const dummyDefaultProps = {
1074
1090
  text: "We're Offline"
1075
1091
  },
1076
1092
  onMinimizeClick: () => {} // Detailed implementation omitted
1077
-
1078
1093
  },
1094
+
1079
1095
  styleProps: {
1080
1096
  // ...[Existing chat button style props]
1081
1097
  generalStyleProps: {
@@ -1172,6 +1188,48 @@ export const dummyDefaultProps = {
1172
1188
  backgroundColor: "#FFFFFF",
1173
1189
  borderColor: "#F1F1F1"
1174
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
+ }
1175
1233
  }
1176
1234
  },
1177
1235
  proactiveChatPaneProps: {
@@ -1192,7 +1250,17 @@ export const dummyDefaultProps = {
1192
1250
  hideSubtitle: false,
1193
1251
  subtitleText: "Live chat support!",
1194
1252
  hideCloseButton: false,
1195
- 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
+ },
1196
1264
  isBodyContainerHorizantal: false,
1197
1265
  hideBodyTitle: false,
1198
1266
  bodyTitleText: "Hi! Have any questions? I am here to help.",
@@ -1202,8 +1270,8 @@ export const dummyDefaultProps = {
1202
1270
  onClose: () => {},
1203
1271
  // Detailed implementation omitted
1204
1272
  onStart: () => {} // Detailed implementation omitted
1205
-
1206
1273
  },
1274
+
1207
1275
  styleProps: {
1208
1276
  generalStyleProps: {
1209
1277
  backgroundColor: "rgb(255, 255, 255)",
@@ -1220,7 +1288,7 @@ export const dummyDefaultProps = {
1220
1288
  },
1221
1289
  headerContainerStyleProps: {
1222
1290
  backgroundColor: "rgb(49, 95, 162)",
1223
- backgroundImage: "assets/imgs/Proactive_banner.png",
1291
+ backgroundImage: `url(${ProactiveChatBannerBase64})`,
1224
1292
  backgroundPosition: "initial",
1225
1293
  backgroundRepeat: "no-repeat",
1226
1294
  borderTopLeftRadius: "inherit",
@@ -1248,7 +1316,7 @@ export const dummyDefaultProps = {
1248
1316
  fontWeight: "600"
1249
1317
  },
1250
1318
  closeButtonStyleProps: {
1251
- backgroundImage: "assets/imgs/closeChatButton.svg",
1319
+ backgroundImage: `url(${CloseChatButtonIconBase64})`,
1252
1320
  backgroundPosition: "center",
1253
1321
  backgroundRepeat: "no-repeat",
1254
1322
  color: "#605e5c",
@@ -1334,8 +1402,8 @@ export const dummyDefaultProps = {
1334
1402
  onStartNewChat: () => {},
1335
1403
  // Detailed implementation omitted
1336
1404
  onMinimize: () => {} // Detailed implementation omitted
1337
-
1338
1405
  },
1406
+
1339
1407
  styleProps: {
1340
1408
  generalStyleProps: {
1341
1409
  backgroundColor: "rgb(255, 255, 255)",
@@ -1371,7 +1439,7 @@ export const dummyDefaultProps = {
1371
1439
  lineHeight: "19px"
1372
1440
  },
1373
1441
  iconStyleProps: {
1374
- backgroundImage: "assets/imgs//ChatReconnectPopupIcon.png",
1442
+ backgroundImage: `url(${ChatReconnectIconBase64})`,
1375
1443
  backgroundPosition: "center",
1376
1444
  backgroundRepeat: "no-repeat",
1377
1445
  backgroundSize: "200px",
@@ -1420,9 +1488,8 @@ export const dummyDefaultProps = {
1420
1488
  startNewChatButtonClassName: undefined
1421
1489
  }
1422
1490
  },
1423
- authClientFunction: undefined,
1424
- isReconnectEnabled: undefined,
1425
- reconnectId: undefined
1491
+ reconnectId: undefined,
1492
+ redirectInSameWindow: undefined
1426
1493
  },
1427
1494
  styleProps: {
1428
1495
  generalStyles: {
@@ -1494,7 +1561,7 @@ export const dummyDefaultProps = {
1494
1561
  internalErrorBoxClass: undefined,
1495
1562
  internalRenderErrorBox: undefined,
1496
1563
  locale: "en-US",
1497
- onTelemetry: undefined,
1564
+ onTelemetry: createWebChatTelemetry(),
1498
1565
  overrideLocalizedStrings: undefined,
1499
1566
  renderMarkdown: createMarkdown(false, false),
1500
1567
  scrollToEndButtonMiddleware: undefined,
@@ -1542,6 +1609,12 @@ export const dummyDefaultProps = {
1542
1609
  lineHeight: "16px",
1543
1610
  padding: "0px 10px 0 10px"
1544
1611
  },
1612
+ userMessageBoxStyles: {
1613
+ maxWidth: "75%"
1614
+ },
1615
+ systemMessageBoxStyles: {
1616
+ maxWidth: "75%"
1617
+ },
1545
1618
  typingIndicatorStyleProps: {
1546
1619
  marginLeft: "10px",
1547
1620
  marginBottom: "5px",
@@ -1661,6 +1734,9 @@ export const dummyDefaultProps = {
1661
1734
  },
1662
1735
  attachmentSizeStyles: {
1663
1736
  display: "none"
1737
+ },
1738
+ receivedMessageAnchorStyles: {
1739
+ color: "white"
1664
1740
  }
1665
1741
  },
1666
1742
  localizedTexts: {
@@ -1684,7 +1760,16 @@ export const dummyDefaultProps = {
1684
1760
  MIDDLEWARE_MESSAGE_RETRY: "Retry",
1685
1761
  PRECHAT_REQUIRED_FIELD_MISSING_MESSAGE: "{0} field is required",
1686
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"
1687
1771
  }
1688
1772
  },
1689
- telemetryConfig: undefined
1773
+ telemetryConfig: undefined,
1774
+ getAuthToken: undefined
1690
1775
  };
@@ -1,61 +1,182 @@
1
- import { LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
1
+ import { BroadcastEvent, LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
2
2
  import { BroadcastService } from "@microsoft/omnichannel-chat-components";
3
3
  import { ConversationState } from "../../../contexts/common/ConversationState";
4
4
  import { LiveChatWidgetActionType } from "../../../contexts/common/LiveChatWidgetActionType";
5
- import { NotificationHandler } from "../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler";
6
- import { NotificationScenarios } from "../../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios";
7
5
  import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
8
6
  import { WebChatStoreLoader } from "../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader";
9
- 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";
10
12
 
11
- export const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter) => {
12
- try {
13
- var _props$webChatContain;
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;
14
18
 
15
- TelemetryHelper.logSDKEvent(LogLevel.INFO, {
16
- Event: TelemetryEvent.EndChatSDKCall
17
- });
18
- await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat());
19
- adapter === null || adapter === void 0 ? void 0 : adapter.end();
20
- setAdapter(undefined);
21
- setWebChatStyles({ ...defaultWebChatContainerStatefulProps.webChatStyles,
22
- ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
23
- });
24
- WebChatStoreLoader.store = null;
25
- dispatch({
26
- type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
27
- payload: ConversationState.Closed
28
- });
29
- dispatch({
30
- type: LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
31
- payload: false
32
- });
33
- dispatch({
34
- type: LiveChatWidgetActionType.SET_RECONNECT_ID,
35
- payload: undefined
36
- });
37
- dispatch({
38
- type: LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION,
39
- payload: null
40
- });
41
- dispatch({
42
- type: LiveChatWidgetActionType.SET_CHAT_TOKEN,
43
- payload: undefined
44
- });
45
- dispatch({
46
- type: LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
47
- payload: undefined
48
- });
49
- BroadcastService.postMessage({
50
- eventName: "EndChat"
51
- });
52
- } catch (ex) {
53
- TelemetryHelper.logSDKEvent(LogLevel.ERROR, {
54
- Event: TelemetryEvent.EndChatSDKCallFailed,
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,
55
43
  ExceptionDetails: {
56
- exception: ex
44
+ exception: `Failed to get conversation details: ${erorr}`
57
45
  }
58
46
  });
59
- NotificationHandler.notifyError(NotificationScenarios.Connection, "End Chat Call Failed: " + ex);
60
47
  }
61
- };
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) => {
93
+ if (!skipEndChatSDK) {
94
+ try {
95
+ TelemetryHelper.logSDKEvent(LogLevel.INFO, {
96
+ Event: TelemetryEvent.EndChatSDKCall
97
+ });
98
+ await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat());
99
+ } catch (ex) {
100
+ TelemetryHelper.logSDKEvent(LogLevel.ERROR, {
101
+ Event: TelemetryEvent.EndChatSDKCallFailed,
102
+ ExceptionDetails: {
103
+ exception: ex
104
+ }
105
+ });
106
+ postMessageToOtherTab = false;
107
+ }
108
+ }
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
+ });
127
+ if (!skipCloseChat) {
128
+ try {
129
+ var _props$webChatContain3;
130
+ adapter === null || adapter === void 0 ? void 0 : adapter.end();
131
+ setAdapter(undefined);
132
+ setWebChatStyles({
133
+ ...defaultWebChatContainerStatefulProps.webChatStyles,
134
+ ...((_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles)
135
+ });
136
+ WebChatStoreLoader.store = null;
137
+ dispatch({
138
+ type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
139
+ payload: ConversationState.Closed
140
+ });
141
+ dispatch({
142
+ type: LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
143
+ payload: false
144
+ });
145
+ dispatch({
146
+ type: LiveChatWidgetActionType.SET_RECONNECT_ID,
147
+ payload: undefined
148
+ });
149
+ dispatch({
150
+ type: LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION,
151
+ payload: null
152
+ });
153
+ dispatch({
154
+ type: LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
155
+ payload: 0
156
+ });
157
+ dispatch({
158
+ type: LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS,
159
+ payload: {
160
+ proactiveChatBodyTitle: "",
161
+ proactiveChatEnablePrechat: false,
162
+ proactiveChatInNewWindow: false
163
+ }
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
+ }
172
+ } catch (error) {
173
+ TelemetryHelper.logActionEvent(LogLevel.ERROR, {
174
+ Event: TelemetryEvent.CloseChatMethodException,
175
+ ExceptionDetails: {
176
+ exception: `Failed to endChat: ${error}`
177
+ }
178
+ });
179
+ }
180
+ }
181
+ };
182
+ export { prepareEndChat, endChat };