@microsoft/omnichannel-chat-widget 0.1.0-main.0d584e6 → 0.1.0-main.0e38a73

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