@microsoft/omnichannel-chat-widget 0.1.0-main.a72fbb6 → 0.1.0-main.a7ac5de

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 (301) hide show
  1. package/lib/cjs/common/Constants.js +18 -167
  2. package/lib/cjs/common/KeyCodes.js +0 -3
  3. package/lib/cjs/common/contextDataStore/DataStoreManager.js +0 -4
  4. package/lib/cjs/common/storage/default/defaultCacheManager.js +24 -0
  5. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +102 -0
  6. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
  7. package/lib/cjs/common/telemetry/TelemetryConstants.js +30 -23
  8. package/lib/cjs/common/telemetry/TelemetryHelper.js +16 -57
  9. package/lib/cjs/common/telemetry/TelemetryManager.js +0 -31
  10. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +0 -2
  11. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +30 -36
  12. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +0 -9
  13. package/lib/cjs/common/utils.js +34 -108
  14. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +8 -46
  15. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +2 -24
  16. package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  17. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -32
  18. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  19. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -36
  20. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  21. package/lib/cjs/components/footerstateful/FooterStateful.js +11 -42
  22. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  23. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -45
  24. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  25. package/lib/cjs/components/headerstateful/HeaderStateful.js +14 -28
  26. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  27. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +37 -0
  28. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +18 -0
  29. package/lib/cjs/components/livechatwidget/{interfaces/IAuthProps.js → common/ActivitySubscriber/IActivitySubscriber.js} +0 -0
  30. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +32 -0
  31. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +62 -0
  32. package/lib/cjs/components/livechatwidget/common/Deferred.js +35 -0
  33. package/lib/cjs/components/livechatwidget/common/authHelper.js +50 -0
  34. package/lib/cjs/components/livechatwidget/common/createAdapter.js +10 -9
  35. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  36. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
  37. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +16 -24
  38. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
  39. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +64 -43
  40. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  41. package/lib/cjs/components/livechatwidget/common/endChat.js +53 -38
  42. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  43. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +7 -16
  44. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  45. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +20 -54
  46. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +78 -128
  47. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +4 -17
  48. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +2 -11
  49. package/lib/cjs/components/livechatwidget/common/shareObservable.js +41 -0
  50. package/lib/cjs/components/livechatwidget/common/startChat.js +158 -113
  51. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
  52. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
  53. package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  54. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +257 -230
  55. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +4 -17
  56. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  57. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -17
  58. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -23
  59. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  60. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  61. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  62. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  63. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +10 -38
  64. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +2 -32
  65. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
  66. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +29 -34
  67. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
  68. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  69. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  70. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +9 -26
  71. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +3 -16
  72. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  73. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -15
  74. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  75. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  76. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +0 -4
  77. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -4
  78. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  79. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  80. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  81. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -41
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +9 -19
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +23 -60
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -13
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -16
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +2 -30
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +2 -12
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +6 -28
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +2 -11
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  117. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
  118. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  119. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  120. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  121. package/lib/cjs/contexts/common/ConversationState.js +0 -1
  122. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +4 -3
  123. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +11 -12
  124. package/lib/cjs/contexts/createReducer.js +151 -105
  125. package/lib/cjs/controller/componentController.js +2 -31
  126. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  127. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  128. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  129. package/lib/cjs/index.js +0 -5
  130. package/lib/cjs/plugins/newMessageEventHandler.js +15 -36
  131. package/lib/esm/common/Constants.js +15 -154
  132. package/lib/esm/common/KeyCodes.js +0 -2
  133. package/lib/esm/common/contextDataStore/DataStoreManager.js +0 -2
  134. package/lib/esm/common/storage/default/defaultCacheManager.js +16 -0
  135. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +95 -0
  136. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  137. package/lib/esm/common/telemetry/TelemetryConstants.js +34 -20
  138. package/lib/esm/common/telemetry/TelemetryHelper.js +16 -45
  139. package/lib/esm/common/telemetry/TelemetryManager.js +0 -18
  140. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +28 -24
  141. package/lib/esm/common/telemetry/loggers/consoleLogger.js +0 -5
  142. package/lib/esm/common/utils.js +31 -57
  143. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +8 -17
  144. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +2 -7
  145. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  146. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +10 -13
  147. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +8 -15
  148. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  149. package/lib/esm/components/footerstateful/FooterStateful.js +13 -23
  150. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -35
  151. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  152. package/lib/esm/components/headerstateful/HeaderStateful.js +14 -13
  153. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  154. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +30 -0
  155. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +11 -0
  156. package/lib/esm/components/livechatwidget/{interfaces/IAuthProps.js → common/ActivitySubscriber/IActivitySubscriber.js} +0 -0
  157. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +25 -0
  158. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +55 -0
  159. package/lib/esm/components/livechatwidget/common/Deferred.js +28 -0
  160. package/lib/esm/components/livechatwidget/common/authHelper.js +42 -0
  161. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -4
  162. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  163. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
  164. package/lib/esm/components/livechatwidget/common/createMarkdown.js +18 -18
  165. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  166. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +66 -30
  167. package/lib/esm/components/livechatwidget/common/endChat.js +55 -23
  168. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  169. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +9 -11
  170. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  171. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +22 -19
  172. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +76 -109
  173. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -9
  174. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -3
  175. package/lib/esm/components/livechatwidget/common/shareObservable.js +35 -0
  176. package/lib/esm/components/livechatwidget/common/startChat.js +158 -90
  177. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  178. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  179. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +261 -169
  180. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +4 -5
  181. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  182. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -5
  183. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  184. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  185. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  186. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  187. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  188. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +12 -22
  189. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +4 -8
  190. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
  191. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +27 -9
  192. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  193. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  194. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  195. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +9 -18
  196. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +3 -12
  197. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  198. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +3 -5
  199. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  200. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  201. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +0 -2
  202. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +0 -2
  203. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  204. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  205. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  206. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  207. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  208. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  209. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  210. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  211. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  212. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -26
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +11 -11
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +23 -38
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -9
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -14
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +4 -28
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +3 -3
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +7 -14
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +3 -3
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  242. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
  243. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  244. package/lib/esm/contexts/ChatContextStore.js +2 -1
  245. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  246. package/lib/esm/contexts/common/ConversationState.js +0 -1
  247. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +4 -3
  248. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +11 -8
  249. package/lib/esm/contexts/createReducer.js +151 -102
  250. package/lib/esm/controller/componentController.js +3 -2
  251. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  252. package/lib/esm/hooks/useChatContextStore.js +0 -4
  253. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  254. package/lib/esm/plugins/newMessageEventHandler.js +15 -26
  255. package/lib/types/common/Constants.d.ts +13 -0
  256. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  257. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  258. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  259. package/lib/types/common/telemetry/TelemetryConstants.d.ts +18 -5
  260. package/lib/types/common/telemetry/TelemetryHelper.d.ts +1 -1
  261. package/lib/types/common/telemetry/definitions/Contracts.d.ts +2 -4
  262. package/lib/types/common/utils.d.ts +5 -4
  263. package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.d.ts +1 -1
  264. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +2 -1
  265. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  266. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  267. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  268. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  269. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  270. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  271. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  272. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  273. package/lib/types/components/livechatwidget/common/endChat.d.ts +1 -1
  274. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -8
  275. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +1 -1
  276. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  277. package/lib/types/components/livechatwidget/common/startChat.d.ts +5 -4
  278. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +1 -1
  279. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +2 -1
  280. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +5 -4
  281. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  282. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  283. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  284. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  285. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
  286. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  287. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  288. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  289. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  290. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  291. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +1 -1
  292. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  293. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.d.ts +1 -1
  294. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  295. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  296. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  297. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +3 -2
  298. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +5 -3
  299. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  300. package/package.json +5 -4
  301. package/lib/types/components/livechatwidget/interfaces/IAuthProps.d.ts +0 -4
@@ -3,92 +3,70 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.setPreChatAndInitiateChat = exports.prepareStartChat = exports.initStartChat = void 0;
7
-
6
+ exports.setPreChatAndInitiateChat = exports.prepareStartChat = exports.initStartChat = exports.checkIfConversationStillValid = void 0;
8
7
  var _Constants = require("../../../common/Constants");
9
-
10
8
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
11
-
12
9
  var _ConversationState = require("../../../contexts/common/ConversationState");
13
-
14
10
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
15
-
16
11
  var _NotificationHandler = require("../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler");
17
-
18
12
  var _NotificationScenarios = require("../../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios");
19
-
20
13
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
21
-
22
14
  var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
23
-
24
15
  var _createAdapter = require("./createAdapter");
25
-
26
16
  var _newMessageEventHandler = require("../../../plugins/newMessageEventHandler");
27
-
28
17
  var _utils = require("../../../common/utils");
29
-
30
- var _reconnectChatHelper = require("./reconnectChatHelper");
31
-
32
18
  var _setPostChatContextAndLoadSurvey = require("./setPostChatContextAndLoadSurvey");
33
-
34
19
  var _updateSessionDataForTelemetry = require("./updateSessionDataForTelemetry");
35
-
36
20
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
37
-
21
+ var _ActivityStreamHandler = require("./ActivityStreamHandler");
22
+ var _authHelper = require("./authHelper");
23
+ var _reconnectChatHelper = require("./reconnectChatHelper");
38
24
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
- let optionalParams = {}; // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
+ let optionalParams = {};
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ let widgetInstanceId;
40
28
 
29
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
30
  const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) => {
42
- var _props$reconnectChatP;
43
-
31
+ var _props$controlProps;
44
32
  optionalParams = {}; //Resetting to ensure no stale values
45
- // Can connect to existing chat session
33
+ widgetInstanceId = props === null || props === void 0 ? void 0 : (_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.widgetInstanceId;
46
34
 
35
+ // Can connect to existing chat session
47
36
  if (await canConnectToExistingChat(props, chatSDK, state, dispatch, setAdapter)) {
48
37
  return;
49
- } // Redirecting if unauthenticated reconnect chat expired
50
-
51
-
52
- if ((_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
53
- var _props$reconnectChatP2, _props$reconnectChatP3;
54
-
55
- await (0, _reconnectChatHelper.handleRedirectUnauthenticatedReconnectChat)(chatSDK, props.authProps, dispatch, setAdapter, initStartChat, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.reconnectId, (_props$reconnectChatP3 = props.reconnectChatPaneProps) === null || _props$reconnectChatP3 === void 0 ? void 0 : _props$reconnectChatP3.redirectInSameWindow);
56
- return;
57
- } // Getting reconnectId for authenticated chat
58
-
59
-
60
- const reconnectId = await (0, _reconnectChatHelper.getReconnectIdForAuthenticatedChat)(props, chatSDK);
38
+ }
39
+ await (0, _reconnectChatHelper.handleChatReconnect)(chatSDK, props, dispatch, setAdapter, initStartChat, state);
61
40
 
62
- if (reconnectId) {
63
- dispatch({
64
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
65
- payload: reconnectId
66
- });
67
- dispatch({
68
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
69
- payload: _ConversationState.ConversationState.ReconnectChat
70
- });
41
+ // If chat reconnect has kicked in chat state will become Active or Reconnect. So just exit, else go next
42
+ if (state.appStates.conversationState === _ConversationState.ConversationState.Active || state.appStates.conversationState === _ConversationState.ConversationState.ReconnectChat) {
71
43
  return;
72
- } // Set custom context params
73
-
74
-
75
- setCustomContextParams(props, chatSDK); // Setting Proactive chat settings
44
+ }
76
45
 
46
+ // Setting Proactive chat settings
77
47
  const isProactiveChat = state.appStates.conversationState === _ConversationState.ConversationState.ProactiveChat;
78
- const isPreChatEnabledInProactiveChat = state.appStates.proactiveChatStates.proactiveChatEnablePrechat; //Setting PreChat and intiate chat
79
-
80
- setPreChatAndInitiateChat(chatSDK, props.authProps, dispatch, setAdapter, isProactiveChat, isPreChatEnabledInProactiveChat);
81
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
+ const isPreChatEnabledInProactiveChat = state.appStates.proactiveChatStates.proactiveChatEnablePrechat;
82
49
 
50
+ //Setting PreChat and intiate chat
51
+ setPreChatAndInitiateChat(chatSDK, dispatch, setAdapter, isProactiveChat, isPreChatEnabledInProactiveChat, undefined, props);
52
+ };
83
53
 
54
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
55
  exports.prepareStartChat = prepareStartChat;
56
+ const setPreChatAndInitiateChat = async (chatSDK, dispatch, setAdapter, isProactiveChat, proactiveChatEnablePrechatState, state, props) => {
57
+ //Handle reconnect scenario
58
+ if (state) {
59
+ await (0, _reconnectChatHelper.handleChatReconnect)(chatSDK, props, dispatch, setAdapter, initStartChat, state);
60
+ // If chat reconnect has kicked in chat state will become Active or Reconnect. So just exit, else go next
61
+ if (state.appStates.conversationState === _ConversationState.ConversationState.Active || state.appStates.conversationState === _ConversationState.ConversationState.ReconnectChat) {
62
+ return;
63
+ }
64
+ }
85
65
 
86
- const setPreChatAndInitiateChat = async (chatSDK, authProps, dispatch, setAdapter, isProactiveChat, proactiveChatEnablePrechatState) => {
87
66
  // Getting prechat Survey Context
88
67
  const parseToJson = false;
89
68
  const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
90
69
  const showPrechat = isProactiveChat ? preChatSurveyResponse && proactiveChatEnablePrechatState : preChatSurveyResponse;
91
-
92
70
  if (showPrechat) {
93
71
  dispatch({
94
72
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
@@ -99,28 +77,40 @@ const setPreChatAndInitiateChat = async (chatSDK, authProps, dispatch, setAdapte
99
77
  payload: _ConversationState.ConversationState.Prechat
100
78
  });
101
79
  return;
102
- } //Initiate start chat
103
-
80
+ }
104
81
 
82
+ //Initiate start chat
105
83
  dispatch({
106
84
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
107
85
  payload: _ConversationState.ConversationState.Loading
108
86
  });
109
- await initStartChat(chatSDK, authProps, dispatch, setAdapter);
110
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
111
-
87
+ await initStartChat(chatSDK, props === null || props === void 0 ? void 0 : props.chatConfig, props === null || props === void 0 ? void 0 : props.getAuthToken, dispatch, setAdapter);
88
+ };
112
89
 
90
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
113
91
  exports.setPreChatAndInitiateChat = setPreChatAndInitiateChat;
114
-
115
- const initStartChat = async (chatSDK, authProps, dispatch, setAdapter, params, persistedState) => {
92
+ const initStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, params, persistedState) => {
116
93
  try {
117
94
  var _newAdapter$activity$, _TelemetryTimers$Widg;
95
+ //Start widget load timer
96
+ _TelemetryManager.TelemetryTimers.WidgetLoadTimer = (0, _utils.createTimer)();
97
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
98
+ Event: _TelemetryConstants.TelemetryEvent.WidgetLoadStarted,
99
+ Description: "Widget loading started"
100
+ });
101
+ const authClientFunction = (0, _authHelper.getAuthClientFunction)(chatConfig);
102
+ if (getAuthToken && authClientFunction) {
103
+ // set auth token to chat sdk before start chat
104
+ const authSuccess = await (0, _authHelper.handleAuthentication)(chatSDK, chatConfig, getAuthToken);
105
+ if (!authSuccess) {
106
+ return;
107
+ }
108
+ }
109
+ let isStartChatSuccessful = false;
118
110
 
119
- let isStartChatSuccessful = false; //Check if chat retrieved from cache
120
-
111
+ //Check if chat retrieved from cache
121
112
  if (persistedState || params !== null && params !== void 0 && params.liveChatContext) {
122
113
  var _persistedState$domai, _persistedState$domai2, _persistedState$domai3, _persistedState$domai4, _persistedState$domai5;
123
-
124
114
  _omnichannelChatComponents.BroadcastService.postMessage({
125
115
  eventName: _TelemetryConstants.BroadcastEvent.ChatRetrievedFromCache,
126
116
  payload: {
@@ -129,22 +119,14 @@ const initStartChat = async (chatSDK, authProps, dispatch, setAdapter, params, p
129
119
  }
130
120
  });
131
121
  }
132
-
133
122
  try {
134
- //Start widget load timer
135
- _TelemetryManager.TelemetryTimers.WidgetLoadTimer = (0, _utils.createTimer)();
136
-
137
123
  _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
138
124
  Event: _TelemetryConstants.TelemetryEvent.StartChatSDKCall
139
- }); // Set optional params
140
-
141
-
142
- optionalParams = Object.assign({}, params, optionalParams); // set auth token to chat sdk before start chat
143
-
144
- if (authProps && authProps.setAuthTokenProviderToChatSdk) {
145
- await authProps.setAuthTokenProviderToChatSdk(chatSDK, authProps.authClientFunction);
146
- }
125
+ });
147
126
 
127
+ // Set custom context params
128
+ setCustomContextParams(chatSDK);
129
+ optionalParams = Object.assign({}, params, optionalParams);
148
130
  await chatSDK.startChat(optionalParams);
149
131
  isStartChatSuccessful = true;
150
132
  } catch (error) {
@@ -154,18 +136,17 @@ const initStartChat = async (chatSDK, authProps, dispatch, setAdapter, params, p
154
136
  exception: `Failed to setup startChat: ${error}`
155
137
  }
156
138
  });
157
-
158
- isStartChatSuccessful = false; // Resetting the widget state to Closed, for recent introduction of OC rate limiting(429 Error)
139
+ isStartChatSuccessful = false;
140
+ // Resetting the widget state to Closed, for recent introduction of OC rate limiting(429 Error)
159
141
  // TODO : How to diplay a proper UI message to customer to try after sometime at this point - cool down scenario
160
-
161
142
  dispatch({
162
143
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
163
144
  payload: _ConversationState.ConversationState.Closed
164
145
  });
165
146
  return;
166
- } // New adapter creation
167
-
147
+ }
168
148
 
149
+ // New adapter creation
169
150
  const newAdapter = await (0, _createAdapter.createAdapter)(chatSDK);
170
151
  setAdapter(newAdapter);
171
152
  const chatToken = await chatSDK.getChatToken();
@@ -174,34 +155,36 @@ const initStartChat = async (chatSDK, authProps, dispatch, setAdapter, params, p
174
155
  payload: chatToken
175
156
  });
176
157
  newAdapter === null || newAdapter === void 0 ? void 0 : (_newAdapter$activity$ = newAdapter.activity$) === null || _newAdapter$activity$ === void 0 ? void 0 : _newAdapter$activity$.subscribe((0, _newMessageEventHandler.createOnNewAdapterActivityHandler)(chatToken === null || chatToken === void 0 ? void 0 : chatToken.chatId, chatToken === null || chatToken === void 0 ? void 0 : chatToken.visitorId));
177
-
178
158
  if (persistedState) {
179
159
  dispatch({
180
160
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_STATE,
181
161
  payload: persistedState
182
162
  });
183
- await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, true);
163
+ (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, true);
184
164
  return;
185
- } // eslint-disable-next-line @typescript-eslint/no-explicit-any
186
-
165
+ }
187
166
 
167
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
188
168
  const liveChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getCurrentLiveChatContext());
189
169
  dispatch({
190
170
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
191
171
  payload: liveChatContext
192
- }); // Set post chat context in state, no survey load
172
+ });
193
173
 
194
- await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch); // Updating chat session detail for telemetry
174
+ // Set post chat context in state, no survey load
175
+ (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch);
195
176
 
196
- await (0, _updateSessionDataForTelemetry.updateSessionDataForTelemetry)(chatSDK, dispatch); // Set app state to Active
177
+ // Updating chat session detail for telemetry
178
+ await (0, _updateSessionDataForTelemetry.updateSessionDataForTelemetry)(chatSDK, dispatch);
197
179
 
180
+ // Set app state to Active
198
181
  if (isStartChatSuccessful) {
182
+ _ActivityStreamHandler.ActivityStreamHandler.uncork();
199
183
  dispatch({
200
184
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
201
185
  payload: _ConversationState.ConversationState.Active
202
186
  });
203
187
  }
204
-
205
188
  _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
206
189
  Event: _TelemetryConstants.TelemetryEvent.WidgetLoadComplete,
207
190
  Description: "Widget load complete",
@@ -214,10 +197,8 @@ const initStartChat = async (chatSDK, authProps, dispatch, setAdapter, params, p
214
197
  Exception: `Widget load Failed: ${ex}`
215
198
  }
216
199
  });
217
-
218
- _NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.Connection, "Start Chat Failed: " + ex); // eslint-disable-next-line @typescript-eslint/no-explicit-any
219
-
220
-
200
+ _NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.Connection, "Start Chat Failed: " + ex);
201
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
221
202
  if (ex.message === _Constants.ChatSDKError.WidgetUseOutsideOperatingHour) {
222
203
  dispatch({
223
204
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_OUTSIDE_OPERATING_HOURS,
@@ -227,28 +208,32 @@ const initStartChat = async (chatSDK, authProps, dispatch, setAdapter, params, p
227
208
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
228
209
  payload: _ConversationState.ConversationState.OutOfOffice
229
210
  });
211
+ return;
230
212
  }
213
+ // Show the loading pane in other cases for failure, this will help for both hideStartChatButton case
214
+ dispatch({
215
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
216
+ payload: _ConversationState.ConversationState.Loading
217
+ });
231
218
  } finally {
232
219
  optionalParams = {};
220
+ widgetInstanceId = "";
233
221
  }
234
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
235
-
222
+ };
236
223
 
224
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
237
225
  exports.initStartChat = initStartChat;
238
-
239
226
  const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdapter) => {
240
- var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _persistedState$domai6, _persistedState$appSt;
241
-
227
+ var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _props$controlProps2, _persistedState$domai6, _persistedState$appSt;
242
228
  // By pass this function in case of popout chat
243
- if (state.appStates.skipChatButtonRendering === true) {
229
+ if (state.appStates.hideStartChatButton === true) {
244
230
  return false;
245
231
  }
232
+ const persistedState = (0, _utils.getStateFromCache)(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$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.widgetInstanceId) ?? "");
246
233
 
247
- const persistedState = (0, _utils.getStateFromCache)(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); //Connect to only active chat session
248
-
234
+ //Connect to only active chat session
249
235
  if (persistedState && !(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai6 = persistedState.domainStates) === null || _persistedState$domai6 === void 0 ? void 0 : _persistedState$domai6.liveChatContext) && (persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$appSt = persistedState.appStates) === null || _persistedState$appSt === void 0 ? void 0 : _persistedState$appSt.conversationState) === _ConversationState.ConversationState.Active) {
250
236
  var _persistedState$domai7;
251
-
252
237
  dispatch({
253
238
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
254
239
  payload: _ConversationState.ConversationState.Loading
@@ -256,25 +241,85 @@ const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdap
256
241
  const optionalParams = {
257
242
  liveChatContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai7 = persistedState.domainStates) === null || _persistedState$domai7 === void 0 ? void 0 : _persistedState$domai7.liveChatContext
258
243
  };
259
- await initStartChat(chatSDK, props.authProps, dispatch, setAdapter, optionalParams, persistedState);
244
+ await initStartChat(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, optionalParams, persistedState);
260
245
  return true;
261
246
  } else {
262
247
  return false;
263
248
  }
264
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
265
-
266
-
267
- const setCustomContextParams = (props, chatSDK) => {
268
- var _chatSDK$omnichannelC3, _chatSDK$omnichannelC4, _props$chatConfig, _persistedState$domai8;
249
+ };
269
250
 
251
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
252
+ const setCustomContextParams = chatSDK => {
253
+ var _chatSDK$omnichannelC3, _chatSDK$omnichannelC4, _persistedState$domai8;
270
254
  // Add custom context only for unauthenticated chat
271
- const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC4 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC4 === void 0 ? void 0 : _chatSDK$omnichannelC4.widgetId);
255
+ const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC4 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC4 === void 0 ? void 0 : _chatSDK$omnichannelC4.widgetId, widgetInstanceId ?? "");
256
+ if (!(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai8 = persistedState.domainStates) === null || _persistedState$domai8 === void 0 ? void 0 : _persistedState$domai8.customContext)) {
257
+ var _persistedState$domai9, _persistedState$domai10;
258
+ if (persistedState !== null && persistedState !== void 0 && (_persistedState$domai9 = persistedState.domainStates.liveChatConfig) !== null && _persistedState$domai9 !== void 0 && _persistedState$domai9.LiveChatConfigAuthSettings) {
259
+ const errorMessage = "Use of custom context with authenticated chat is deprecated. The chat would not go through.";
260
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.WARN, {
261
+ Event: _TelemetryConstants.TelemetryEvent.StartChatMethodException,
262
+ ExceptionDetails: {
263
+ exception: errorMessage
264
+ }
265
+ });
266
+ throw new Error(errorMessage);
267
+ }
268
+ optionalParams = Object.assign({}, optionalParams, {
269
+ customContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai10 = persistedState.domainStates) === null || _persistedState$domai10 === void 0 ? void 0 : _persistedState$domai10.customContext
270
+ });
271
+ }
272
+ };
273
+
274
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
275
+ const handleAuthenticationIfEnabled = async (chatSDK, props) => {
276
+ //For auth chat
277
+ if (props.getAuthToken) {
278
+ const authClientFunction = (0, _authHelper.getAuthClientFunction)(props.chatConfig);
279
+ if (authClientFunction) {
280
+ // set auth token to chat sdk before start chat
281
+ const authSuccess = await (0, _authHelper.handleAuthentication)(chatSDK, props.chatConfig, props.getAuthToken);
282
+ if (!authSuccess) {
283
+ return false;
284
+ }
285
+ return true;
286
+ }
287
+ }
288
+ return true;
289
+ };
272
290
 
273
- if (!((_props$chatConfig = props.chatConfig) !== null && _props$chatConfig !== void 0 && _props$chatConfig.LiveChatConfigAuthSettings) && !(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai8 = persistedState.domainStates) === null || _persistedState$domai8 === void 0 ? void 0 : _persistedState$domai8.customContext)) {
274
- var _persistedState$domai9;
291
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
292
+ const checkIfConversationStillValid = async (chatSDK, props, requestId) => {
293
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
294
+ let conversationDetails = undefined;
295
+ const authSucceed = await handleAuthenticationIfEnabled(chatSDK, props);
296
+ if (!authSucceed) {
297
+ return false;
298
+ }
275
299
 
276
- optionalParams = Object.assign({}, optionalParams, {
277
- customContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai9 = persistedState.domainStates) === null || _persistedState$domai9 === void 0 ? void 0 : _persistedState$domai9.customContext
300
+ //Preserve old requestId
301
+ const oldRequestId = chatSDK.requestId;
302
+ try {
303
+ chatSDK.requestId = requestId;
304
+ conversationDetails = await chatSDK.getConversationDetails();
305
+ if (Object.keys(conversationDetails).length === 0) {
306
+ chatSDK.requestId = oldRequestId;
307
+ return false;
308
+ }
309
+ if (conversationDetails.state === _Constants.LiveWorkItemState.Closed || conversationDetails.state === _Constants.LiveWorkItemState.WrapUp) {
310
+ chatSDK.requestId = oldRequestId;
311
+ return false;
312
+ }
313
+ return true;
314
+ } catch (erorr) {
315
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
316
+ Event: _TelemetryConstants.TelemetryEvent.GetConversationDetailsException,
317
+ ExceptionDetails: {
318
+ exception: `Conversation is not valid: ${erorr}`
319
+ }
278
320
  });
321
+ chatSDK.requestId = oldRequestId;
322
+ return false;
279
323
  }
280
- };
324
+ };
325
+ exports.checkIfConversationStillValid = checkIfConversationStillValid;
@@ -4,17 +4,11 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.startProactiveChat = void 0;
7
-
8
7
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
-
10
8
  var _ConversationState = require("../../../contexts/common/ConversationState");
11
-
12
9
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
13
-
14
10
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
15
-
16
11
  var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
17
-
18
12
  // Defines startProactiveChat callback
19
13
  const startProactiveChat = (dispatch, notificationConfig, enablePreChat, inNewWindow) => {
20
14
  dispatch({
@@ -29,12 +23,10 @@ const startProactiveChat = (dispatch, notificationConfig, enablePreChat, inNewWi
29
23
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
30
24
  payload: _ConversationState.ConversationState.ProactiveChat
31
25
  });
32
-
33
26
  _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
34
27
  Event: _TelemetryConstants.TelemetryEvent.IncomingProactiveChatScreenLoaded,
35
28
  ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers.LcwLoadToChatButtonTimer.milliSecondsElapsed,
36
29
  Description: "Incoming proactive chat loaded."
37
30
  });
38
31
  };
39
-
40
32
  exports.startProactiveChat = startProactiveChat;
@@ -4,39 +4,30 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.updateSessionDataForTelemetry = void 0;
7
-
8
7
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
9
-
10
8
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
11
-
12
9
  var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
13
-
14
10
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
11
  const updateSessionDataForTelemetry = async (chatSDK, dispatch) => {
16
12
  if (chatSDK) {
17
13
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
14
  const chatSession = await chatSDK.getCurrentLiveChatContext();
19
-
20
15
  const telemetryData = _TelemetryHelper.TelemetryHelper.addSessionDataToTelemetry(chatSession, _TelemetryManager.TelemetryManager.InternalTelemetryData);
21
-
22
16
  dispatch({
23
17
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_TELEMETRY_DATA,
24
18
  payload: telemetryData
25
19
  });
26
20
  await updateConversationDataForTelemetry(chatSDK, dispatch);
27
21
  }
28
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
-
22
+ };
30
23
 
24
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
25
  exports.updateSessionDataForTelemetry = updateSessionDataForTelemetry;
32
-
33
26
  const updateConversationDataForTelemetry = async (chatSDK, dispatch) => {
34
27
  if (chatSDK) {
35
28
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
29
  const liveWorkItem = await chatSDK.getConversationDetails();
37
-
38
30
  const telemetryData = _TelemetryHelper.TelemetryHelper.addConversationDataToTelemetry(liveWorkItem, _TelemetryManager.TelemetryManager.InternalTelemetryData);
39
-
40
31
  dispatch({
41
32
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_TELEMETRY_DATA,
42
33
  payload: telemetryData