@microsoft/omnichannel-chat-widget 0.1.0-main.fb426ed → 1.0.0

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