@microsoft/omnichannel-chat-widget 0.1.0-main.e67738e → 0.1.0-main.ebfc563

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 (284) hide show
  1. package/lib/cjs/assets/Icons.js +4 -2
  2. package/lib/cjs/common/Constants.js +24 -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 +111 -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 +21 -59
  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 +2 -14
  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 +115 -46
  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 +29 -73
  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 +205 -119
  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 +224 -259
  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 +10 -38
  65. package/lib/cjs/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  66. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +2 -32
  67. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
  68. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +21 -37
  69. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +0 -7
  70. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  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/webchatcontroller/BotMagicCodeStore.js +3 -5
  77. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -5
  78. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  79. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  80. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  81. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -41
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +10 -22
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -61
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -13
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -16
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +2 -30
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +7 -18
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +8 -42
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +4 -22
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  117. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
  118. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  119. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  120. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  121. package/lib/cjs/contexts/common/ConversationState.js +0 -1
  122. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +30 -29
  123. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +12 -11
  124. package/lib/cjs/contexts/createReducer.js +154 -108
  125. package/lib/cjs/controller/componentController.js +2 -31
  126. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  127. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  128. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  129. package/lib/cjs/index.js +0 -5
  130. package/lib/cjs/plugins/newMessageEventHandler.js +19 -36
  131. package/lib/esm/assets/Icons.js +2 -1
  132. package/lib/esm/common/Constants.js +21 -158
  133. package/lib/esm/common/KeyCodes.js +3 -3
  134. package/lib/esm/common/contextDataStore/DataStoreManager.js +3 -3
  135. package/lib/esm/common/storage/default/defaultCacheManager.js +18 -0
  136. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +104 -0
  137. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  138. package/lib/esm/common/telemetry/TelemetryConstants.js +32 -20
  139. package/lib/esm/common/telemetry/TelemetryHelper.js +21 -47
  140. package/lib/esm/common/telemetry/TelemetryManager.js +3 -19
  141. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +28 -24
  142. package/lib/esm/common/telemetry/loggers/consoleLogger.js +0 -5
  143. package/lib/esm/common/utils.js +18 -53
  144. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +8 -17
  145. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +2 -7
  146. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  147. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +11 -14
  148. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -16
  149. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  150. package/lib/esm/components/footerstateful/FooterStateful.js +13 -23
  151. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -35
  152. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  153. package/lib/esm/components/headerstateful/HeaderStateful.js +18 -16
  154. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  155. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +5 -7
  156. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +3 -4
  157. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +7 -9
  158. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +14 -16
  159. package/lib/esm/components/livechatwidget/common/Deferred.js +6 -9
  160. package/lib/esm/components/livechatwidget/common/authHelper.js +13 -10
  161. package/lib/esm/components/livechatwidget/common/createAdapter.js +4 -6
  162. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  163. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +2 -5
  164. package/lib/esm/components/livechatwidget/common/createMarkdown.js +18 -18
  165. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  166. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +116 -32
  167. package/lib/esm/components/livechatwidget/common/endChat.js +52 -20
  168. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  169. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +9 -11
  170. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  171. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +31 -38
  172. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +77 -130
  173. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -9
  174. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -3
  175. package/lib/esm/components/livechatwidget/common/shareObservable.js +4 -7
  176. package/lib/esm/components/livechatwidget/common/startChat.js +204 -90
  177. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  178. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  179. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +226 -193
  180. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +19 -7
  181. package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
  182. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  183. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -5
  184. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  185. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  186. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  187. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  188. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  189. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +12 -22
  190. package/lib/esm/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  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 +19 -11
  194. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  195. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +12 -19
  196. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +5 -14
  197. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  198. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -5
  199. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  200. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -3
  201. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -3
  202. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  203. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  204. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  205. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  206. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  207. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  208. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  209. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  210. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  211. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  212. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -26
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +12 -14
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -39
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -9
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -14
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +4 -28
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +8 -9
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +9 -28
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +5 -14
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
  242. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  243. package/lib/esm/contexts/ChatContextStore.js +2 -1
  244. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  245. package/lib/esm/contexts/common/ConversationState.js +0 -1
  246. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +30 -29
  247. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +12 -7
  248. package/lib/esm/contexts/createReducer.js +154 -105
  249. package/lib/esm/controller/componentController.js +3 -2
  250. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  251. package/lib/esm/hooks/useChatContextStore.js +0 -4
  252. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  253. package/lib/esm/plugins/newMessageEventHandler.js +19 -26
  254. package/lib/types/assets/Icons.d.ts +1 -0
  255. package/lib/types/common/Constants.d.ts +14 -0
  256. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  257. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  258. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  259. package/lib/types/common/telemetry/TelemetryConstants.d.ts +17 -4
  260. package/lib/types/common/telemetry/definitions/Contracts.d.ts +4 -4
  261. package/lib/types/common/telemetry/definitions/Payload.d.ts +1 -0
  262. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +4 -0
  263. package/lib/types/components/livechatwidget/common/authHelper.d.ts +3 -2
  264. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  265. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -7
  266. package/lib/types/components/livechatwidget/common/startChat.d.ts +5 -4
  267. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +3 -1
  268. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +4 -2
  269. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  270. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
  271. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  272. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  273. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  274. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
  275. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  276. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  277. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  278. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  279. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  280. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.d.ts +1 -1
  281. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +3 -2
  282. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +30 -28
  283. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  284. package/package.json +3 -3
@@ -29,60 +29,52 @@ import preProcessingMiddleware from "../../webchatcontainerstateful/webchatcontr
29
29
  import sanitizationMiddleware from "../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware";
30
30
  import { createCardActionMiddleware } from "../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware";
31
31
  import createMessageTimeStampMiddleware from "../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware";
32
- import { Constants } from "../../../common/Constants"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
+ import { Constants } from "../../../common/Constants";
33
33
 
34
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
35
  export const initWebChatComposer = (props, chatSDK, state, dispatch, setWebChatStyles) => {
35
36
  var _props$webChatContain, _props$webChatContain2, _props$webChatContain3, _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3, _state$domainStates$l4, _state$domainStates$l8, _state$domainStates$l9, _props$webChatContain7, _props$webChatContain8, _state$domainStates$r, _state$domainStates$r2, _props$webChatContain9, _props$webChatContain10, _state$domainStates$r3, _state$domainStates$r4, _props$webChatContain11, _props$webChatContain12, _defaultWebChatContai, _props$webChatContain13, _props$webChatContain14, _props$webChatContain15, _props$webChatContain16, _state$domainStates$r5, _state$domainStates$r6, _props$webChatContain17, _props$webChatContain18, _defaultWebChatContai2, _props$webChatContain19, _props$webChatContain20, _defaultWebChatContai3, _props$webChatContain21, _props$webChatContain22;
36
-
37
- const localizedTexts = { ...defaultMiddlewareLocalizedTexts,
37
+ const localizedTexts = {
38
+ ...defaultMiddlewareLocalizedTexts,
38
39
  ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.localizedTexts)
39
40
  };
40
- const disableNewLineMarkdownSupport = ((_props$webChatContain2 = props.webChatContainerProps) === null || _props$webChatContain2 === void 0 ? void 0 : _props$webChatContain2.disableNewLineMarkdownSupport) ?? defaultWebChatContainerStatefulProps.disableNewLineMarkdownSupport; // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
41
-
41
+ const disableNewLineMarkdownSupport = ((_props$webChatContain2 = props.webChatContainerProps) === null || _props$webChatContain2 === void 0 ? void 0 : _props$webChatContain2.disableNewLineMarkdownSupport) ?? defaultWebChatContainerStatefulProps.disableNewLineMarkdownSupport;
42
+ // eslint-disable-next-line @typescript-eslint/no-non-null-assertion
42
43
  const markdown = createMarkdown(((_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.disableMarkdownMessageFormatting) ?? defaultWebChatContainerStatefulProps.disableMarkdownMessageFormatting, disableNewLineMarkdownSupport);
43
44
  const isPostChatEnabled = (_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.msdyn_postconversationsurveyenable;
44
- const postChatSurveyMode = (_state$domainStates$l3 = state.domainStates.liveChatConfig) === null || _state$domainStates$l3 === void 0 ? void 0 : (_state$domainStates$l4 = _state$domainStates$l3.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l4 === void 0 ? void 0 : _state$domainStates$l4.msdyn_postconversationsurveymode; // Initialize Web Chat's redux store
45
+ const postChatSurveyMode = (_state$domainStates$l3 = state.domainStates.liveChatConfig) === null || _state$domainStates$l3 === void 0 ? void 0 : (_state$domainStates$l4 = _state$domainStates$l3.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l4 === void 0 ? void 0 : _state$domainStates$l4.msdyn_postconversationsurveymode;
45
46
 
47
+ // Initialize Web Chat's redux store
46
48
  let webChatStore = WebChatStoreLoader.store;
47
-
48
49
  if (!webChatStore) {
49
50
  var _state$domainStates$l5, _state$domainStates$l6, _state$domainStates$l7, _props$webChatContain6;
50
-
51
51
  const conversationEndCallback = async () => {
52
52
  var _props$webChatContain4, _props$webChatContain5;
53
-
54
53
  TelemetryHelper.logActionEvent(LogLevel.INFO, {
55
54
  Event: TelemetryEvent.ConversationEndedThreadEventReceived,
56
55
  Description: "Conversation is ended by agent side or by timeout."
57
56
  });
58
-
59
57
  if ((props === null || props === void 0 ? void 0 : (_props$webChatContain4 = props.webChatContainerProps) === null || _props$webChatContain4 === void 0 ? void 0 : (_props$webChatContain5 = _props$webChatContain4.renderingMiddlewareProps) === null || _props$webChatContain5 === void 0 ? void 0 : _props$webChatContain5.hideSendboxOnConversationEnd) !== false) {
60
58
  setWebChatStyles(styles => {
61
- return { ...styles,
59
+ return {
60
+ ...styles,
62
61
  hideSendBox: true
63
62
  };
64
63
  });
65
64
  }
66
-
67
- if (isPostChatEnabled === "true") {
68
- if (postChatSurveyMode === PostChatSurveyMode.Embed) {
69
- WebChatStoreLoader.store = null;
70
- dispatch({
71
- type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
72
- payload: ConversationState.PostchatLoading
73
- });
74
- await addDelayInMs(Constants.PostChatLoadingDurationInMs);
75
- const loadPostChatEvent = {
76
- eventName: BroadcastEvent.LoadPostChatSurvey
77
- };
78
- BroadcastService.postMessage(loadPostChatEvent);
79
- } else if (postChatSurveyMode === PostChatSurveyMode.Link) {
80
- dispatch({
81
- type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
82
- payload: ConversationState.InActive
83
- });
84
- }
85
- } else {
65
+ if (isPostChatEnabled === "true" && postChatSurveyMode === PostChatSurveyMode.Embed && state.appStates.conversationState === ConversationState.Active) {
66
+ WebChatStoreLoader.store = null;
67
+ dispatch({
68
+ type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
69
+ payload: ConversationState.PostchatLoading
70
+ });
71
+ await addDelayInMs(Constants.PostChatLoadingDurationInMs);
72
+ const loadPostChatEvent = {
73
+ eventName: BroadcastEvent.LoadPostChatSurvey
74
+ };
75
+ BroadcastService.postMessage(loadPostChatEvent);
76
+ }
77
+ if (state.appStates.conversationState === ConversationState.Active) {
86
78
  dispatch({
87
79
  type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
88
80
  payload: ConversationState.InActive
@@ -92,7 +84,6 @@ export const initWebChatComposer = (props, chatSDK, state, dispatch, setWebChatS
92
84
  payload: true
93
85
  });
94
86
  }
95
-
96
87
  dispatch({
97
88
  type: LiveChatWidgetActionType.SET_CHAT_TOKEN,
98
89
  payload: undefined
@@ -102,15 +93,17 @@ export const initWebChatComposer = (props, chatSDK, state, dispatch, setWebChatS
102
93
  payload: undefined
103
94
  });
104
95
  };
105
-
106
- webChatStore = createStore({}, //initial state
107
- preProcessingMiddleware, attachmentProcessingMiddleware, createAttachmentUploadValidatorMiddleware((_state$domainStates$l5 = state.domainStates.liveChatConfig) === null || _state$domainStates$l5 === void 0 ? void 0 : _state$domainStates$l5.allowedFileExtensions, (_state$domainStates$l6 = state.domainStates.liveChatConfig) === null || _state$domainStates$l6 === void 0 ? void 0 : _state$domainStates$l6.maxUploadFileSize, localizedTexts), channelDataMiddleware, createConversationEndMiddleware(conversationEndCallback), createDataMaskingMiddleware((_state$domainStates$l7 = state.domainStates.liveChatConfig) === null || _state$domainStates$l7 === void 0 ? void 0 : _state$domainStates$l7.DataMaskingInfo), createMessageTimeStampMiddleware, gifUploadMiddleware, htmlPlayerMiddleware, htmlTextMiddleware, createMaxMessageSizeValidator(localizedTexts), sanitizationMiddleware, // eslint-disable-next-line @typescript-eslint/no-explicit-any
96
+ webChatStore = createStore({},
97
+ //initial state
98
+ preProcessingMiddleware, attachmentProcessingMiddleware, createAttachmentUploadValidatorMiddleware((_state$domainStates$l5 = state.domainStates.liveChatConfig) === null || _state$domainStates$l5 === void 0 ? void 0 : _state$domainStates$l5.allowedFileExtensions, (_state$domainStates$l6 = state.domainStates.liveChatConfig) === null || _state$domainStates$l6 === void 0 ? void 0 : _state$domainStates$l6.maxUploadFileSize, localizedTexts), channelDataMiddleware, createConversationEndMiddleware(conversationEndCallback), createDataMaskingMiddleware((_state$domainStates$l7 = state.domainStates.liveChatConfig) === null || _state$domainStates$l7 === void 0 ? void 0 : _state$domainStates$l7.DataMaskingInfo), createMessageTimeStampMiddleware, gifUploadMiddleware, htmlPlayerMiddleware, htmlTextMiddleware, createMaxMessageSizeValidator(localizedTexts), sanitizationMiddleware,
99
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
108
100
  ...(((_props$webChatContain6 = props.webChatContainerProps) === null || _props$webChatContain6 === void 0 ? void 0 : _props$webChatContain6.storeMiddlewares) ?? []));
109
101
  WebChatStoreLoader.store = webChatStore;
110
- } // Initialize the remaining Web Chat props
111
-
102
+ }
112
103
 
113
- const webChatProps = { ...defaultWebChatContainerStatefulProps.webChatProps,
104
+ // Initialize the remaining Web Chat props
105
+ const webChatProps = {
106
+ ...defaultWebChatContainerStatefulProps.webChatProps,
114
107
  dir: state.domainStates.globalDir,
115
108
  locale: changeLanguageCodeFormatForWebChat(getLocaleStringFromId((_state$domainStates$l8 = state.domainStates.liveChatConfig) === null || _state$domainStates$l8 === void 0 ? void 0 : (_state$domainStates$l9 = _state$domainStates$l8.ChatWidgetLanguage) === null || _state$domainStates$l9 === void 0 ? void 0 : _state$domainStates$l9.msdyn_localeid)),
116
109
  store: webChatStore,
@@ -1,95 +1,88 @@
1
1
  import "regenerator-runtime/runtime";
2
2
  import { BroadcastEvent, LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryConstants";
3
+ import { handleAuthentication, removeAuthTokenProvider } from "./authHelper";
4
+ import { isNullOrEmptyString, isNullOrUndefined } from "../../../common/utils";
3
5
  import { BroadcastService } from "@microsoft/omnichannel-chat-components";
4
6
  import { ConversationState } from "../../../contexts/common/ConversationState";
5
7
  import { LiveChatWidgetActionType } from "../../../contexts/common/LiveChatWidgetActionType";
6
8
  import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
7
- import { handleAuthentication, removeAuthTokenProvider } from "./authHelper"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
9
 
9
- const getChatReconnectContext = async (chatSDK, chatConfig, getAuthToken, isReconnectEnabled, reconnectId) => {
10
- if (isReconnectEnabled) {
11
- try {
12
- if (reconnectId) {
13
- const chatReconnectOptionalParams = {
14
- reconnectId: reconnectId
15
- };
16
- return await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getChatReconnectContext(chatReconnectOptionalParams));
17
- } else {
18
- // set auth token to chat sdk to get reconnectId for auth chat
19
- await handleAuthentication(chatSDK, chatConfig, getAuthToken);
20
- const reconnectChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getChatReconnectContext()); // remove auth token after reconnectId is fetched
21
- // this will be reset later at start chat
22
-
23
- removeAuthTokenProvider(chatSDK);
24
- return reconnectChatContext;
25
- }
26
- } catch (ex) {
27
- TelemetryHelper.logSDKEvent(LogLevel.ERROR, {
28
- Event: TelemetryEvent.GetChatReconnectContextSDKCallFailed,
29
- ExceptionDetails: {
30
- exception: ex
31
- }
32
- });
10
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
11
+ const handleChatReconnect = async (chatSDK, props, dispatch, setAdapter, initStartChat, state) => {
12
+ var _props$chatConfig, _props$chatConfig$Liv;
13
+ if (!isReconnectEnabled(props.chatConfig)) return;
14
+
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+ const isAuthenticatedChat = (_props$chatConfig = props.chatConfig) !== null && _props$chatConfig !== void 0 && (_props$chatConfig$Liv = _props$chatConfig.LiveChatConfigAuthSettings) !== null && _props$chatConfig$Liv !== void 0 && _props$chatConfig$Liv.msdyn_javascriptclientfunction ? true : false;
17
+
18
+ // Get chat reconnect context
19
+ const reconnectChatContext = await getChatReconnectContext(chatSDK, props.chatConfig, props, isAuthenticatedChat);
20
+ if (hasReconnectId(reconnectChatContext)) {
21
+ var _props$reconnectChatP2, _props$reconnectChatP3;
22
+ //Redirect if enabled
23
+ if (reconnectChatContext.redirectURL && !isNullOrEmptyString(reconnectChatContext.redirectURL)) {
24
+ var _props$reconnectChatP;
25
+ redirectPage(reconnectChatContext.redirectURL, (_props$reconnectChatP = props.reconnectChatPaneProps) === null || _props$reconnectChatP === void 0 ? void 0 : _props$reconnectChatP.redirectInSameWindow);
26
+ return;
33
27
  }
34
- }
35
-
36
- return null;
37
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
38
28
 
29
+ //if reconnect id is provided in props, don't show reconnect pane
30
+ if ((_props$reconnectChatP2 = props.reconnectChatPaneProps) !== null && _props$reconnectChatP2 !== void 0 && _props$reconnectChatP2.reconnectId && !isNullOrEmptyString((_props$reconnectChatP3 = props.reconnectChatPaneProps) === null || _props$reconnectChatP3 === void 0 ? void 0 : _props$reconnectChatP3.reconnectId)) {
31
+ const reconnectChatContext = await getChatReconnectContext(chatSDK, props.chatConfig, props, isAuthenticatedChat);
32
+ await setReconnectIdAndStartChat(isAuthenticatedChat, chatSDK, props, dispatch, setAdapter, reconnectChatContext.reconnectId ?? "", initStartChat);
33
+ return;
34
+ }
39
35
 
40
- const getReconnectIdForAuthenticatedChat = async (props, chatSDK) => {
41
- var _props$chatConfig, _props$reconnectChatP;
42
-
43
- let authClientFunction = undefined;
44
-
45
- if ((_props$chatConfig = props.chatConfig) !== null && _props$chatConfig !== void 0 && _props$chatConfig.LiveChatConfigAuthSettings) {
46
- var _props$chatConfig2, _props$chatConfig2$Li;
47
-
48
- authClientFunction = ((_props$chatConfig2 = props.chatConfig) === null || _props$chatConfig2 === void 0 ? void 0 : (_props$chatConfig2$Li = _props$chatConfig2.LiveChatConfigAuthSettings) === null || _props$chatConfig2$Li === void 0 ? void 0 : _props$chatConfig2$Li.msdyn_javascriptclientfunction) ?? undefined;
36
+ //show reconnect pane
37
+ state.appStates.conversationState = ConversationState.ReconnectChat;
38
+ dispatch({
39
+ type: LiveChatWidgetActionType.SET_RECONNECT_ID,
40
+ payload: reconnectChatContext.reconnectId ?? ""
41
+ });
42
+ dispatch({
43
+ type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
44
+ payload: ConversationState.ReconnectChat
45
+ });
46
+ return;
49
47
  }
48
+ };
50
49
 
51
- if ((_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.isReconnectEnabled && authClientFunction // TODO: Implement this after storage is in place
52
-
53
- /* && !isLoadWithState() */
54
- ) {
55
- var _props$reconnectChatP2;
56
-
57
- const previousActiveSessionResponse = await getChatReconnectContext(chatSDK, props.chatConfig, props.getAuthToken, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.isReconnectEnabled);
58
-
59
- if (previousActiveSessionResponse && previousActiveSessionResponse.reconnectId) {
60
- return previousActiveSessionResponse.reconnectId;
50
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
51
+ const getChatReconnectContext = async (chatSDK, chatConfig, props, isAuthenticatedChat) => {
52
+ try {
53
+ var _props$reconnectChatP4;
54
+ const chatReconnectOptionalParams = {
55
+ reconnectId: (_props$reconnectChatP4 = props.reconnectChatPaneProps) === null || _props$reconnectChatP4 === void 0 ? void 0 : _props$reconnectChatP4.reconnectId
56
+ };
57
+ if (isAuthenticatedChat) {
58
+ // Get auth token for for getting chat reconnect context
59
+ await handleAuthentication(chatSDK, chatConfig, props.getAuthToken);
61
60
  }
61
+ const reconnectChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getChatReconnectContext(chatReconnectOptionalParams));
62
+ if (isAuthenticatedChat) {
63
+ // remove auth token after reconnectId is fetched
64
+ // this will be reset later at start chat
65
+ removeAuthTokenProvider(chatSDK);
66
+ }
67
+ return reconnectChatContext;
68
+ } catch (error) {
69
+ TelemetryHelper.logSDKEvent(LogLevel.ERROR, {
70
+ Event: TelemetryEvent.GetChatReconnectContextSDKCallFailed,
71
+ ExceptionDetails: {
72
+ exception: error
73
+ }
74
+ });
62
75
  }
76
+ };
63
77
 
64
- return undefined;
65
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
66
-
67
-
68
- const handleUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, isReconnectEnabled, reconnectId, initStartChat, redirectInSameWindow) => {
69
- const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, chatConfig, getAuthToken, isReconnectEnabled, reconnectId);
70
-
71
- if (shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
72
- await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, redirectInSameWindow);
73
- } else {
74
- await setReconnectIdAndStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat);
75
- }
76
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
77
-
78
-
79
- const startUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, isReconnectEnabled, reconnectId, initStartChat) => {
80
- const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, chatConfig, getAuthToken, isReconnectEnabled, reconnectId);
81
-
82
- if (!shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
83
- await setReconnectIdAndStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat);
78
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
79
+ const setReconnectIdAndStartChat = async (isAuthenticatedChat, chatSDK, props, dispatch, setAdapter, reconnectId, initStartChat) => {
80
+ if (!isAuthenticatedChat) {
81
+ const startUnauthenticatedReconnectChat = {
82
+ eventName: BroadcastEvent.StartUnauthenticatedReconnectChat
83
+ };
84
+ BroadcastService.postMessage(startUnauthenticatedReconnectChat);
84
85
  }
85
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
86
-
87
-
88
- const setReconnectIdAndStartChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, reconnectId, initStartChat) => {
89
- const startUnauthenticatedReconnectChat = {
90
- eventName: BroadcastEvent.StartUnauthenticatedReconnectChat
91
- };
92
- BroadcastService.postMessage(startUnauthenticatedReconnectChat);
93
86
  const optionalParams = {
94
87
  reconnectId: reconnectId
95
88
  };
@@ -101,9 +94,8 @@ const setReconnectIdAndStartChat = async (chatSDK, chatConfig, getAuthToken, dis
101
94
  type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
102
95
  payload: ConversationState.Loading
103
96
  });
104
- await initStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, optionalParams);
97
+ await initStartChat(chatSDK, dispatch, setAdapter, props, optionalParams);
105
98
  };
106
-
107
99
  const redirectPage = (redirectURL, redirectInSameWindow) => {
108
100
  const redirectPageRequest = {
109
101
  eventName: BroadcastEvent.RedirectPageRequest,
@@ -112,60 +104,15 @@ const redirectPage = (redirectURL, redirectInSameWindow) => {
112
104
  }
113
105
  };
114
106
  BroadcastService.postMessage(redirectPageRequest);
115
-
116
107
  if (redirectInSameWindow) {
117
108
  window.location.href = redirectURL;
118
109
  }
119
110
  };
120
-
121
- const shouldRedirectOrStartNewChat = reconnectAvailabilityResponse => {
122
- return reconnectAvailabilityResponse && !reconnectAvailabilityResponse.reconnectId;
123
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
124
-
125
-
126
- const startNewChatEmptyRedirectionUrl = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat) => {
127
- const startUnauthenticatedReconnectChat = {
128
- eventName: BroadcastEvent.StartUnauthenticatedReconnectChat
129
- };
130
- BroadcastService.postMessage(startUnauthenticatedReconnectChat); // Getting PreChat Survey Context
131
-
132
- const parseToJson = false;
133
- const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
134
-
135
- if (preChatSurveyResponse) {
136
- dispatch({
137
- type: LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
138
- payload: preChatSurveyResponse
139
- });
140
- dispatch({
141
- type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
142
- payload: ConversationState.Prechat
143
- });
144
- } else {
145
- dispatch({
146
- type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
147
- payload: ConversationState.Loading
148
- });
149
- await initStartChat(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter);
150
- }
151
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
152
-
153
-
154
- const handleRedirectUnauthenticatedReconnectChat = async (chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, isReconnectEnabled, reconnectId, redirectInSameWindow) => {
155
- const reconnectAvailabilityResponse = await getChatReconnectContext(chatSDK, chatConfig, getAuthToken, isReconnectEnabled, reconnectId);
156
-
157
- if (shouldRedirectOrStartNewChat(reconnectAvailabilityResponse)) {
158
- await redirectOrStartNewChat(reconnectAvailabilityResponse, chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, redirectInSameWindow);
159
- }
160
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
161
-
162
-
163
- const redirectOrStartNewChat = async (reconnectAvailabilityResponse, chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat, redirectInSameWindow) => {
164
- if (reconnectAvailabilityResponse.redirectURL) {
165
- redirectPage(reconnectAvailabilityResponse.redirectURL, redirectInSameWindow);
166
- } else {
167
- await startNewChatEmptyRedirectionUrl(chatSDK, chatConfig, getAuthToken, dispatch, setAdapter, initStartChat);
168
- }
111
+ const isReconnectEnabled = chatConfig => {
112
+ var _chatConfig$LiveWSAnd;
113
+ return chatConfig && ((_chatConfig$LiveWSAnd = chatConfig.LiveWSAndLiveChatEngJoin) === null || _chatConfig$LiveWSAnd === void 0 ? void 0 : _chatConfig$LiveWSAnd.msdyn_enablechatreconnect) && (chatConfig.LiveWSAndLiveChatEngJoin.msdyn_enablechatreconnect === "true" || chatConfig.LiveWSAndLiveChatEngJoin.msdyn_enablechatreconnect === true);
169
114
  };
170
-
171
- export { getChatReconnectContext, getReconnectIdForAuthenticatedChat, handleUnauthenticatedReconnectChat, startUnauthenticatedReconnectChat, handleRedirectUnauthenticatedReconnectChat };
115
+ const hasReconnectId = reconnectAvailabilityResponse => {
116
+ return reconnectAvailabilityResponse && !isNullOrUndefined(reconnectAvailabilityResponse.reconnectId);
117
+ };
118
+ export { handleChatReconnect, isReconnectEnabled, getChatReconnectContext };
@@ -6,27 +6,23 @@ import { defaultInternalTelemetryData } from "../../../common/telemetry/defaultC
6
6
  import { defaultTelemetryConfiguration } from "../../../common/telemetry/defaultConfigs/defaultTelemetryConfiguration";
7
7
  export const registerTelemetryLoggers = (props, dispatch) => {
8
8
  var _props$liveChatContex, _props$liveChatContex2;
9
-
10
- const telemetryConfig = { ...defaultTelemetryConfiguration,
9
+ const telemetryConfig = {
10
+ ...defaultTelemetryConfiguration,
11
11
  ...props.telemetryConfig
12
12
  };
13
-
14
13
  if ((_props$liveChatContex = props.liveChatContextFromCache) !== null && _props$liveChatContex !== void 0 && (_props$liveChatContex2 = _props$liveChatContex.domainStates) !== null && _props$liveChatContex2 !== void 0 && _props$liveChatContex2.telemetryInternalData) {
15
14
  var _props$liveChatContex3, _props$liveChatContex4;
16
-
17
15
  TelemetryManager.InternalTelemetryData = (_props$liveChatContex3 = props.liveChatContextFromCache) === null || _props$liveChatContex3 === void 0 ? void 0 : (_props$liveChatContex4 = _props$liveChatContex3.domainStates) === null || _props$liveChatContex4 === void 0 ? void 0 : _props$liveChatContex4.telemetryInternalData;
18
16
  } else {
19
17
  var _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic, _props$chatSDK3, _props$chatSDK3$omnic;
20
-
21
- let telemetryData = { ...defaultInternalTelemetryData,
18
+ let telemetryData = {
19
+ ...defaultInternalTelemetryData,
22
20
  telemetryConfig: Object.assign({}, defaultTelemetryConfiguration, telemetryConfig),
23
21
  ariaConfig: Object.assign({}, defaultAriaConfig, telemetryConfig === null || telemetryConfig === void 0 ? void 0 : telemetryConfig.ariaConfigurations)
24
22
  };
25
-
26
23
  if (props.chatConfig) {
27
24
  telemetryData = TelemetryHelper.addChatConfigDataToTelemetry(props === null || props === void 0 ? void 0 : props.chatConfig, telemetryData);
28
25
  }
29
-
30
26
  telemetryData = TelemetryHelper.addWidgetDataToTelemetry(telemetryConfig, telemetryData);
31
27
  telemetryData.OCChatSDKVersion = telemetryConfig.OCChatSDKVersion ?? "0.0.0-0";
32
28
  telemetryData.chatComponentVersion = telemetryConfig.chatComponentVersion ?? "0.0.0-0";
@@ -40,6 +36,5 @@ export const registerTelemetryLoggers = (props, dispatch) => {
40
36
  payload: telemetryData
41
37
  });
42
38
  }
43
-
44
39
  RegisterLoggers();
45
40
  };
@@ -2,8 +2,9 @@ import { LogLevel, TelemetryEvent } from "../../../common/telemetry/TelemetryCon
2
2
  import { BroadcastService } from "@microsoft/omnichannel-chat-components";
3
3
  import { ConversationState } from "../../../contexts/common/ConversationState";
4
4
  import { LiveChatWidgetActionType } from "../../../contexts/common/LiveChatWidgetActionType";
5
- import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper"; // eslint-disable-next-line @typescript-eslint/no-explicit-any
5
+ import { TelemetryHelper } from "../../../common/telemetry/TelemetryHelper";
6
6
 
7
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
8
  export const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, persistedChat) => {
8
9
  try {
9
10
  if (!persistedChat) {
@@ -25,9 +26,9 @@ export const setPostChatContextAndLoadSurvey = async (chatSDK, dispatch, persist
25
26
  exception: ex
26
27
  }
27
28
  });
28
- } // eslint-disable-next-line @typescript-eslint/no-unused-vars
29
-
29
+ }
30
30
 
31
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
31
32
  BroadcastService.getMessageByEventName("LoadPostChatSurvey").subscribe(msg => {
32
33
  dispatch({
33
34
  type: LiveChatWidgetActionType.SET_CONVERSATION_STATE,
@@ -1,34 +1,31 @@
1
1
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
2
2
  export function shareObservable(observable) {
3
3
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
- let observers = []; // eslint-disable-next-line @typescript-eslint/no-explicit-any
4
+ let observers = [];
5
5
 
6
- let subscription; // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
7
+ let subscription;
7
8
 
9
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
8
10
  return new window.Observable(observer => {
9
11
  if (!subscription) {
10
12
  subscription = observable.subscribe({
11
13
  complete() {
12
14
  observers.forEach(observer => observer.complete());
13
15
  },
14
-
15
16
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
17
  error(err) {
17
18
  observers.forEach(observer => observer.error(err));
18
19
  },
19
-
20
20
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
21
21
  next(value) {
22
22
  observers.forEach(observer => observer.next(value));
23
23
  }
24
-
25
24
  });
26
25
  }
27
-
28
26
  observers.push(observer);
29
27
  return () => {
30
28
  observers = observers.filter(o => o !== observer);
31
-
32
29
  if (!observers.length) {
33
30
  subscription.unsubscribe();
34
31
  subscription = null;