@microsoft/omnichannel-chat-widget 0.1.0-main.5854782 → 0.1.0-main.5d6a45b

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