@microsoft/omnichannel-chat-widget 0.1.0-main.a27ec4b → 0.1.0-main.a2e5071

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