@microsoft/omnichannel-chat-widget 0.1.0-main.c2417f9 → 0.1.0-main.c5ffed0

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 (311) hide show
  1. package/lib/cjs/assets/Icons.js +4 -2
  2. package/lib/cjs/common/Constants.js +26 -169
  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 +39 -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 +65 -93
  15. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +8 -46
  16. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +5 -23
  17. package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  18. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -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 +20 -32
  27. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  28. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +39 -0
  29. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +20 -0
  30. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  31. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +34 -0
  32. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +64 -0
  33. package/lib/cjs/components/livechatwidget/common/Deferred.js +37 -0
  34. package/lib/cjs/components/livechatwidget/common/authHelper.js +50 -0
  35. package/lib/cjs/components/livechatwidget/common/createAdapter.js +10 -9
  36. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  37. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
  38. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +36 -43
  39. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
  40. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +127 -51
  41. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  42. package/lib/cjs/components/livechatwidget/common/endChat.js +92 -45
  43. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  44. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +7 -16
  45. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  46. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +27 -53
  47. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +76 -129
  48. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +4 -17
  49. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +2 -15
  50. package/lib/cjs/components/livechatwidget/common/shareObservable.js +41 -0
  51. package/lib/cjs/components/livechatwidget/common/startChat.js +235 -127
  52. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +0 -8
  53. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
  54. package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  55. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +294 -250
  56. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +26 -19
  57. package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -0
  58. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  59. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -17
  60. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -23
  61. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  62. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  63. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  64. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  65. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +11 -43
  66. package/lib/cjs/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  67. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +3 -33
  68. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
  69. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +29 -34
  70. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
  71. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  72. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  73. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +12 -27
  74. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +6 -17
  75. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  76. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -15
  77. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  78. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  79. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -5
  80. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -5
  81. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -41
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +10 -22
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -61
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -13
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -16
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +2 -30
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +7 -18
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +8 -42
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +4 -22
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +13 -30
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -34
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  117. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  118. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  119. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  120. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
  121. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  122. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  123. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  124. package/lib/cjs/contexts/common/ConversationState.js +3 -3
  125. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +30 -28
  126. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +14 -13
  127. package/lib/cjs/contexts/createReducer.js +159 -105
  128. package/lib/cjs/controller/componentController.js +4 -33
  129. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  130. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  131. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  132. package/lib/cjs/hooks/useDebounce.js +28 -0
  133. package/lib/cjs/hooks/useWindowDimensions.js +30 -0
  134. package/lib/cjs/index.js +0 -5
  135. package/lib/cjs/plugins/newMessageEventHandler.js +19 -36
  136. package/lib/esm/assets/Icons.js +2 -1
  137. package/lib/esm/common/Constants.js +23 -156
  138. package/lib/esm/common/KeyCodes.js +3 -3
  139. package/lib/esm/common/contextDataStore/DataStoreManager.js +3 -3
  140. package/lib/esm/common/storage/default/defaultCacheManager.js +18 -0
  141. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +104 -0
  142. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  143. package/lib/esm/common/telemetry/TelemetryConstants.js +43 -20
  144. package/lib/esm/common/telemetry/TelemetryHelper.js +21 -47
  145. package/lib/esm/common/telemetry/TelemetryManager.js +3 -19
  146. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +28 -24
  147. package/lib/esm/common/telemetry/loggers/consoleLogger.js +0 -5
  148. package/lib/esm/common/utils.js +60 -50
  149. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +8 -17
  150. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +5 -6
  151. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  152. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +10 -14
  153. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -16
  154. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  155. package/lib/esm/components/footerstateful/FooterStateful.js +13 -23
  156. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -35
  157. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  158. package/lib/esm/components/headerstateful/HeaderStateful.js +20 -17
  159. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  160. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +32 -0
  161. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +13 -0
  162. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  163. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +27 -0
  164. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +57 -0
  165. package/lib/esm/components/livechatwidget/common/Deferred.js +30 -0
  166. package/lib/esm/components/livechatwidget/common/authHelper.js +42 -0
  167. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -4
  168. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  169. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
  170. package/lib/esm/components/livechatwidget/common/createMarkdown.js +38 -37
  171. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  172. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +128 -37
  173. package/lib/esm/components/livechatwidget/common/endChat.js +94 -30
  174. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  175. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +9 -11
  176. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  177. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +30 -20
  178. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +77 -111
  179. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -9
  180. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -7
  181. package/lib/esm/components/livechatwidget/common/shareObservable.js +35 -0
  182. package/lib/esm/components/livechatwidget/common/startChat.js +233 -103
  183. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  184. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  185. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +297 -188
  186. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +26 -7
  187. package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
  188. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  189. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -5
  190. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  191. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  192. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  193. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  194. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  195. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +14 -27
  196. package/lib/esm/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  197. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +5 -9
  198. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
  199. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +27 -9
  200. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  201. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  202. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  203. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +12 -19
  204. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +6 -13
  205. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  206. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -5
  207. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  208. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  209. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -3
  210. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -3
  211. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  212. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -26
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +12 -14
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -39
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -9
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -14
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +4 -28
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +8 -9
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +9 -28
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +5 -14
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
  242. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  243. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  244. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  245. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  246. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  247. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  248. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  249. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  250. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
  251. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  252. package/lib/esm/contexts/ChatContextStore.js +2 -1
  253. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  254. package/lib/esm/contexts/common/ConversationState.js +3 -3
  255. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +30 -28
  256. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +14 -9
  257. package/lib/esm/contexts/createReducer.js +159 -102
  258. package/lib/esm/controller/componentController.js +5 -4
  259. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  260. package/lib/esm/hooks/useChatContextStore.js +0 -4
  261. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  262. package/lib/esm/hooks/useDebounce.js +22 -0
  263. package/lib/esm/hooks/useWindowDimensions.js +23 -0
  264. package/lib/esm/plugins/newMessageEventHandler.js +19 -26
  265. package/lib/types/assets/Icons.d.ts +1 -0
  266. package/lib/types/common/Constants.d.ts +16 -0
  267. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  268. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  269. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  270. package/lib/types/common/telemetry/TelemetryConstants.d.ts +26 -5
  271. package/lib/types/common/telemetry/definitions/Contracts.d.ts +4 -4
  272. package/lib/types/common/telemetry/definitions/Payload.d.ts +1 -0
  273. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +4 -0
  274. package/lib/types/common/utils.d.ts +7 -3
  275. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +2 -1
  276. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  277. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  278. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  279. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  280. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  281. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  282. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  283. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  284. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -7
  285. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  286. package/lib/types/components/livechatwidget/common/startChat.d.ts +5 -2
  287. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +4 -1
  288. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +5 -2
  289. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  290. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
  291. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  292. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  293. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  294. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -2
  295. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  296. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  297. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  298. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  299. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  300. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  301. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  302. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  303. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  304. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.d.ts +1 -1
  305. package/lib/types/contexts/common/ConversationState.d.ts +3 -2
  306. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +4 -3
  307. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +30 -27
  308. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  309. package/lib/types/hooks/useDebounce.d.ts +3 -0
  310. package/lib/types/hooks/useWindowDimensions.d.ts +4 -0
  311. package/package.json +5 -4
@@ -4,235 +4,235 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.LiveChatWidgetStateful = void 0;
7
-
8
7
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
-
10
8
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
11
-
12
9
  var _react = require("@fluentui/react");
13
-
14
10
  var _react2 = _interopRequireWildcard(require("react"));
15
-
16
- var _utils = require("../../../common/utils");
17
-
18
- var _reconnectChatHelper = require("../common/reconnectChatHelper");
19
-
20
11
  var _startChat = require("../common/startChat");
21
-
12
+ var _utils = require("../../../common/utils");
13
+ var _endChat = require("../common/endChat");
22
14
  var _componentController = require("../../../controller/componentController");
23
-
15
+ var _ActivityStreamHandler = require("../common/ActivityStreamHandler");
24
16
  var _CallingContainerStateful = _interopRequireDefault(require("../../callingcontainerstateful/CallingContainerStateful"));
25
-
26
17
  var _ChatButtonStateful = _interopRequireDefault(require("../../chatbuttonstateful/ChatButtonStateful"));
27
-
28
18
  var _botframeworkWebchat = require("botframework-webchat");
29
-
30
19
  var _ConfirmationPaneStateful = _interopRequireDefault(require("../../confirmationpanestateful/ConfirmationPaneStateful"));
31
-
32
20
  var _ConversationState = require("../../../contexts/common/ConversationState");
33
-
34
21
  var _DataStoreManager = require("../../../common/contextDataStore/DataStoreManager");
35
-
22
+ var _Constants = require("../../../common/Constants");
36
23
  var _EmailTranscriptPaneStateful = _interopRequireDefault(require("../../emailtranscriptpanestateful/EmailTranscriptPaneStateful"));
37
-
38
24
  var _HeaderStateful = _interopRequireDefault(require("../../headerstateful/HeaderStateful"));
39
-
40
25
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
41
-
42
26
  var _LoadingPaneStateful = _interopRequireDefault(require("../../loadingpanestateful/LoadingPaneStateful"));
43
-
44
27
  var _OOOHPaneStateful = _interopRequireDefault(require("../../ooohpanestateful/OOOHPaneStateful"));
45
-
46
28
  var _PostChatLoadingPaneStateful = _interopRequireDefault(require("../../postchatloadingpanestateful/PostChatLoadingPaneStateful"));
47
-
48
29
  var _PostChatSurveyPaneStateful = _interopRequireDefault(require("../../postchatsurveypanestateful/PostChatSurveyPaneStateful"));
49
-
50
30
  var _PreChatSurveyPaneStateful = _interopRequireDefault(require("../../prechatsurveypanestateful/PreChatSurveyPaneStateful"));
51
-
52
31
  var _ProactiveChatPaneStateful = _interopRequireDefault(require("../../proactivechatpanestateful/ProactiveChatPaneStateful"));
53
-
54
32
  var _ReconnectChatPaneStateful = _interopRequireDefault(require("../../reconnectchatpanestateful/ReconnectChatPaneStateful"));
55
-
56
33
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
57
-
58
34
  var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
59
-
60
35
  var _WebChatContainerStateful = _interopRequireDefault(require("../../webchatcontainerstateful/WebChatContainerStateful"));
61
-
62
36
  var _createFooter = require("../common/createFooter");
63
-
64
37
  var _createInternetConnectionChangeHandler = require("../common/createInternetConnectionChangeHandler");
65
-
38
+ var _defaultClientDataStoreProvider = require("../../../common/storage/default/defaultClientDataStoreProvider");
39
+ var _defaultScrollBarProps = require("../common/defaultProps/defaultScrollBarProps");
66
40
  var _defaultWebChatContainerStatefulProps = require("../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps");
67
-
68
41
  var _disposeTelemetryLoggers = require("../common/disposeTelemetryLoggers");
69
-
70
- var _endChat = require("../common/endChat");
71
-
72
42
  var _getGeneralStylesForButton = require("../common/getGeneralStylesForButton");
73
-
74
43
  var _initCallingSdk = require("../common/initCallingSdk");
75
-
76
44
  var _initConfirmationPropsComposer = require("../common/initConfirmationPropsComposer");
77
-
78
45
  var _initWebChatComposer = require("../common/initWebChatComposer");
79
-
46
+ var _defaultCacheManager = require("../../../common/storage/default/defaultCacheManager");
80
47
  var _registerTelemetryLoggers = require("../common/registerTelemetryLoggers");
81
-
82
48
  var _setPostChatContextAndLoadSurvey = require("../common/setPostChatContextAndLoadSurvey");
83
-
84
49
  var _startProactiveChat = require("../common/startProactiveChat");
85
-
86
50
  var _useChatAdapterStore = _interopRequireDefault(require("../../../hooks/useChatAdapterStore"));
87
-
88
51
  var _useChatContextStore = _interopRequireDefault(require("../../../hooks/useChatContextStore"));
89
-
90
52
  var _useChatSDKStore = _interopRequireDefault(require("../../../hooks/useChatSDKStore"));
91
-
92
53
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
93
-
94
54
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
95
-
96
55
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
97
-
98
- function _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
99
-
56
+ function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
100
57
  const LiveChatWidgetStateful = props => {
101
- var _props$webChatContain, _props$styleProps, _props$controlProps, _props$webChatContain3, _props$webChatContain4, _props$styleProps2, _props$controlProps5, _props$componentOverr, _props$controlProps6, _props$componentOverr2, _props$controlProps7, _props$componentOverr3, _props$controlProps8, _props$componentOverr4, _props$controlProps9, _props$componentOverr5, _props$controlProps10, _props$componentOverr6, _props$controlProps11, _props$componentOverr7, _props$controlProps12, _props$controlProps13, _props$componentOverr8, _props$controlProps14, _props$componentOverr9, _props$controlProps15, _props$componentOverr10, _props$componentOverr11, _props$componentOverr12;
102
-
103
- const [state, dispatch] = (0, _useChatContextStore.default)(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
104
-
58
+ var _props$webChatContain, _props$styleProps, _chatSDK$omnichannelC, _props$controlProps, _props$controlProps2, _props$webChatContain3, _props$webChatContain4, _props$styleProps2, _props$controlProps14, _props$controlProps15, _props$componentOverr, _props$controlProps16, _props$componentOverr2, _props$controlProps17, _props$componentOverr3, _props$controlProps18, _props$componentOverr4, _props$controlProps19, _props$componentOverr5, _props$controlProps20, _props$componentOverr6, _props$controlProps21, _props$componentOverr7, _props$controlProps22, _props$controlProps23, _props$componentOverr8, _props$controlProps24, _props$componentOverr9, _props$controlProps25, _props$componentOverr10, _props$componentOverr11, _props$componentOverr12;
59
+ const [state, dispatch] = (0, _useChatContextStore.default)();
60
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
105
61
  const [adapter, setAdapter] = (0, _useChatAdapterStore.default)();
106
- const [webChatStyles, setWebChatStyles] = (0, _react2.useState)({ ..._defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.webChatStyles,
62
+ const [webChatStyles, setWebChatStyles] = (0, _react2.useState)({
63
+ ..._defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.webChatStyles,
107
64
  ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
108
- }); // eslint-disable-next-line @typescript-eslint/no-explicit-any
109
-
110
- const chatSDK = (0, _useChatSDKStore.default)(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
111
-
65
+ });
66
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
+ const chatSDK = (0, _useChatSDKStore.default)();
68
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
112
69
  const [voiceVideoCallingSDK, setVoiceVideoCallingSDK] = (0, _react2.useState)(undefined);
113
70
  const {
114
71
  Composer
115
72
  } = _botframeworkWebchat.Components;
116
73
  const canStartProactiveChat = (0, _react2.useRef)(true);
117
- const canEndChat = (0, _react2.useRef)(true); // Process general styles
118
74
 
75
+ // Process general styles
119
76
  const generalStyles = {
120
77
  root: Object.assign({}, (0, _getGeneralStylesForButton.getGeneralStylesForButton)(state), (_props$styleProps = props.styleProps) === null || _props$styleProps === void 0 ? void 0 : _props$styleProps.generalStyles)
121
78
  };
79
+
80
+ //Scrollbar styles
81
+ const scrollbarProps = Object.assign({}, _defaultScrollBarProps.defaultScrollBarProps, props === null || props === void 0 ? void 0 : props.scrollBarProps);
82
+ const broadcastServiceChannelName = (0, _utils.getBroadcastChannelName)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.widgetId, ((_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.widgetInstanceId) ?? "");
83
+ (0, _omnichannelChatComponents.BroadcastServiceInitialize)(broadcastServiceChannelName);
122
84
  _TelemetryManager.TelemetryTimers.LcwLoadToChatButtonTimer = (0, _utils.createTimer)();
123
- const widgetElementId = ((_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.id) || "oc-lcw";
85
+ const widgetElementId = ((_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.id) || "oc-lcw";
124
86
  const currentMessageCountRef = (0, _react2.useRef)(0);
125
87
  let widgetStateEventName = "";
126
- (0, _react2.useEffect)(() => {
127
- var _props$controlProps2, _props$controlProps3, _props$reconnectChatP, _props$controlProps4, _props$chatConfig, _props$chatConfig$Cha, _state$domainStates;
88
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
89
+ let optionalParams;
90
+ let activeCachedChatExist = false;
91
+ const setOptionalParams = () => {
92
+ var _state$appStates, _state$domainStates;
93
+ if (!(0, _utils.isUndefinedOrEmpty)((_state$appStates = state.appStates) === null || _state$appStates === void 0 ? void 0 : _state$appStates.reconnectId)) {
94
+ activeCachedChatExist = true;
95
+ optionalParams = {
96
+ reconnectId: state.appStates.reconnectId
97
+ };
98
+ } else if (!(0, _utils.isUndefinedOrEmpty)((_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : _state$domainStates.liveChatContext)) {
99
+ var _state$domainStates2;
100
+ activeCachedChatExist = true;
101
+ optionalParams = {
102
+ liveChatContext: (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.liveChatContext
103
+ };
104
+ } else {
105
+ activeCachedChatExist = false;
106
+ optionalParams = {};
107
+ }
108
+ };
109
+
110
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
111
+ const startChat = async (props, localState) => {
112
+ let isChatValid = false;
113
+
114
+ //Start a chat from cache/reconnectid
115
+ if (activeCachedChatExist === true) {
116
+ var _state$domainStates3, _state$domainStates3$;
117
+ dispatch({
118
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
119
+ payload: _ConversationState.ConversationState.Loading
120
+ });
121
+ if (localState) {
122
+ localState.appStates.conversationState = _ConversationState.ConversationState.Loading;
123
+ }
128
124
 
125
+ //Check if conversation state is not in wrapup or closed state
126
+ isChatValid = await (0, _startChat.checkIfConversationStillValid)(chatSDK, props, (_state$domainStates3 = state.domainStates) === null || _state$domainStates3 === void 0 ? void 0 : (_state$domainStates3$ = _state$domainStates3.liveChatContext) === null || _state$domainStates3$ === void 0 ? void 0 : _state$domainStates3$.requestId, dispatch);
127
+ if (isChatValid === true) {
128
+ await (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, props, optionalParams);
129
+ return;
130
+ }
131
+ }
132
+ if (isChatValid === false) {
133
+ if (localState) {
134
+ await (0, _startChat.setPreChatAndInitiateChat)(chatSDK, dispatch, setAdapter, undefined, undefined, localState, props);
135
+ return;
136
+ } else {
137
+ dispatch({
138
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
139
+ payload: _ConversationState.ConversationState.Closed
140
+ });
141
+ }
142
+ }
143
+ };
144
+
145
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
146
+ const setupClientDataStore = () => {
147
+ // Add default localStorage support for widget
148
+ if (props.contextDataStore === undefined) {
149
+ var _props$controlProps3, _chatSDK$omnichannelC2, _chatSDK$omnichannelC3, _props$controlProps4;
150
+ const cacheTtlInMins = (props === null || props === void 0 ? void 0 : (_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : _props$controlProps3.cacheTtlInMins) ?? _Constants.Constants.CacheTtlInMinutes;
151
+ _DataStoreManager.DataStoreManager.clientDataStore = (0, _defaultClientDataStoreProvider.defaultClientDataStoreProvider)(cacheTtlInMins);
152
+ (0, _defaultCacheManager.registerBroadcastServiceForLocalStorage)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps4 = props.controlProps) === null || _props$controlProps4 === void 0 ? void 0 : _props$controlProps4.widgetInstanceId) ?? "", cacheTtlInMins);
153
+ } else {
154
+ _DataStoreManager.DataStoreManager.clientDataStore = props.contextDataStore;
155
+ }
156
+ };
157
+ (0, _react2.useEffect)(() => {
158
+ var _props$controlProps5, _props$controlProps6, _props$controlProps7, _props$chatConfig, _props$chatConfig$Liv, _props$controlProps9, _props$chatConfig2, _props$chatConfig2$Ch;
159
+ setupClientDataStore();
129
160
  (0, _registerTelemetryLoggers.registerTelemetryLoggers)(props, dispatch);
130
161
  (0, _createInternetConnectionChangeHandler.createInternetConnectionChangeHandler)();
131
- _DataStoreManager.DataStoreManager.clientDataStore = props.contextDataStore ?? undefined;
132
162
  dispatch({
133
163
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_ELEMENT_ID,
134
164
  payload: widgetElementId
135
165
  });
136
166
  dispatch({
137
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SKIP_CHAT_BUTTON_RENDERING,
138
- payload: ((_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.skipChatButtonRendering) || false
167
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_START_CHAT_BUTTON_DISPLAY,
168
+ payload: ((_props$controlProps5 = props.controlProps) === null || _props$controlProps5 === void 0 ? void 0 : _props$controlProps5.hideStartChatButton) || false
139
169
  });
140
170
  dispatch({
141
171
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_E2VV_ENABLED,
142
172
  payload: false
143
173
  });
144
- (0, _initCallingSdk.initCallingSdk)(chatSDK, setVoiceVideoCallingSDK).then(sdkCreated => {
145
- sdkCreated && dispatch({
146
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_E2VV_ENABLED,
147
- payload: true
174
+ if ((_props$controlProps6 = props.controlProps) !== null && _props$controlProps6 !== void 0 && _props$controlProps6.widgetInstanceId && !(0, _utils.isNullOrEmptyString)((_props$controlProps7 = props.controlProps) === null || _props$controlProps7 === void 0 ? void 0 : _props$controlProps7.widgetInstanceId)) {
175
+ var _props$controlProps8;
176
+ dispatch({
177
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_INSTANCE_ID,
178
+ payload: (_props$controlProps8 = props.controlProps) === null || _props$controlProps8 === void 0 ? void 0 : _props$controlProps8.widgetInstanceId
148
179
  });
149
- });
150
-
151
- if (!((_props$controlProps3 = props.controlProps) !== null && _props$controlProps3 !== void 0 && _props$controlProps3.skipChatButtonRendering) && (_props$reconnectChatP = props.reconnectChatPaneProps) !== null && _props$reconnectChatP !== void 0 && _props$reconnectChatP.reconnectId) {
152
- var _props$reconnectChatP2;
153
-
154
- (0, _reconnectChatHelper.startUnauthenticatedReconnectChat)(chatSDK, dispatch, setAdapter, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.reconnectId, _startChat.initStartChat);
155
- } // Initialize global dir
156
-
180
+ }
181
+ if (((_props$chatConfig = props.chatConfig) === null || _props$chatConfig === void 0 ? void 0 : (_props$chatConfig$Liv = _props$chatConfig.LiveWSAndLiveChatEngJoin) === null || _props$chatConfig$Liv === void 0 ? void 0 : _props$chatConfig$Liv.msdyn_callingoptions) !== _Constants.E2VVOptions.NoCalling) {
182
+ (0, _initCallingSdk.initCallingSdk)(chatSDK, setVoiceVideoCallingSDK).then(sdkCreated => {
183
+ sdkCreated && dispatch({
184
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_E2VV_ENABLED,
185
+ payload: true
186
+ });
187
+ });
188
+ }
157
189
 
158
- const globalDir = ((_props$controlProps4 = props.controlProps) === null || _props$controlProps4 === void 0 ? void 0 : _props$controlProps4.dir) ?? (0, _utils.getLocaleDirection)((_props$chatConfig = props.chatConfig) === null || _props$chatConfig === void 0 ? void 0 : (_props$chatConfig$Cha = _props$chatConfig.ChatWidgetLanguage) === null || _props$chatConfig$Cha === void 0 ? void 0 : _props$chatConfig$Cha.msdyn_localeid);
190
+ // Initialize global dir
191
+ const globalDir = ((_props$controlProps9 = props.controlProps) === null || _props$controlProps9 === void 0 ? void 0 : _props$controlProps9.dir) ?? (0, _utils.getLocaleDirection)((_props$chatConfig2 = props.chatConfig) === null || _props$chatConfig2 === void 0 ? void 0 : (_props$chatConfig2$Ch = _props$chatConfig2.ChatWidgetLanguage) === null || _props$chatConfig2$Ch === void 0 ? void 0 : _props$chatConfig2$Ch.msdyn_localeid);
159
192
  dispatch({
160
193
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_GLOBAL_DIR,
161
194
  payload: globalDir
162
195
  });
196
+ setOptionalParams();
163
197
 
164
- if ((_state$domainStates = state.domainStates) !== null && _state$domainStates !== void 0 && _state$domainStates.liveChatContext) {
165
- var _state$domainStates2;
166
-
167
- const optionalParams = {
168
- liveChatContext: (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.liveChatContext
169
- };
170
- (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, optionalParams);
198
+ // Unauth chat
199
+ if (state.appStates.hideStartChatButton === false) {
200
+ startChat(props);
171
201
  }
172
- }, []); // useEffect for when skip chat button rendering
202
+ }, []);
173
203
 
204
+ // useEffect for when skip chat button rendering
174
205
  (0, _react2.useEffect)(() => {
175
- if (state.appStates.skipChatButtonRendering) {
176
- var _props$reconnectChatP3;
177
-
178
- if ((_props$reconnectChatP3 = props.reconnectChatPaneProps) !== null && _props$reconnectChatP3 !== void 0 && _props$reconnectChatP3.reconnectId && !state.appStates.reconnectId) {
179
- var _props$reconnectChatP4, _props$reconnectChatP5;
180
-
181
- (0, _reconnectChatHelper.handleUnauthenticatedReconnectChat)(chatSDK, dispatch, setAdapter, (_props$reconnectChatP4 = props.reconnectChatPaneProps) === null || _props$reconnectChatP4 === void 0 ? void 0 : _props$reconnectChatP4.reconnectId, _startChat.initStartChat, (_props$reconnectChatP5 = props.reconnectChatPaneProps) === null || _props$reconnectChatP5 === void 0 ? void 0 : _props$reconnectChatP5.redirectInSameWindow);
182
- } else {
183
- (0, _reconnectChatHelper.getReconnectIdForAuthenticatedChat)(props, chatSDK).then(authReconnectId => {
184
- if (authReconnectId && !state.appStates.reconnectId) {
185
- dispatch({
186
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
187
- payload: authReconnectId
188
- });
189
- dispatch({
190
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
191
- payload: _ConversationState.ConversationState.ReconnectChat
192
- });
193
- } else {
194
- const chatStartedSkippingChatButtonRendering = {
195
- eventName: _TelemetryConstants.BroadcastEvent.StartChatSkippingChatButtonRendering
196
- };
197
-
198
- _omnichannelChatComponents.BroadcastService.postMessage(chatStartedSkippingChatButtonRendering);
199
-
200
- dispatch({
201
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
202
- payload: _ConversationState.ConversationState.Loading
203
- });
204
- (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter);
205
- }
206
- });
207
- }
206
+ if (state.appStates.hideStartChatButton === true) {
207
+ _omnichannelChatComponents.BroadcastService.postMessage({
208
+ eventName: _TelemetryConstants.BroadcastEvent.ChatInitiated
209
+ });
210
+ //Pass the state to avoid getting stale state
211
+ startChat(props, state);
208
212
  }
209
- }, [state.appStates.skipChatButtonRendering]); // useEffect for when skip chat button rendering
213
+ }, [state.appStates.hideStartChatButton]);
210
214
 
215
+ // useEffect for custom context
211
216
  (0, _react2.useEffect)(() => {
212
- var _chatSDK$omnichannelC3, _chatSDK$omnichannelC4;
213
-
217
+ var _chatSDK$omnichannelC8, _chatSDK$omnichannelC9, _props$controlProps12;
214
218
  // Add the custom context on receiving the SetCustomContext event
215
219
  _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.SetCustomContext).subscribe(msg => {
216
220
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
217
221
  Event: _TelemetryConstants.TelemetryEvent.CustomContextReceived,
218
222
  Description: "CustomContext received."
219
223
  });
220
-
221
224
  dispatch({
222
225
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CUSTOM_CONTEXT,
223
226
  payload: msg === null || msg === void 0 ? void 0 : msg.payload
224
227
  });
225
228
  });
226
-
227
229
  _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.StartProactiveChat).subscribe(msg => {
228
230
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
229
231
  Event: _TelemetryConstants.TelemetryEvent.StartProactiveChatEventReceived,
230
232
  Description: "Start proactive chat event received."
231
233
  });
232
-
233
- if (canStartProactiveChat.current) {
234
+ if (canStartProactiveChat.current === true) {
234
235
  var _msg$payload, _msg$payload2, _msg$payload3;
235
-
236
236
  (0, _startProactiveChat.startProactiveChat)(dispatch, msg === null || msg === void 0 ? void 0 : (_msg$payload = msg.payload) === null || _msg$payload === void 0 ? void 0 : _msg$payload.notificationConfig, msg === null || msg === void 0 ? void 0 : (_msg$payload2 = msg.payload) === null || _msg$payload2 === void 0 ? void 0 : _msg$payload2.enablePreChat, msg === null || msg === void 0 ? void 0 : (_msg$payload3 = msg.payload) === null || _msg$payload3 === void 0 ? void 0 : _msg$payload3.inNewWindow);
237
237
  } else {
238
238
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
@@ -240,36 +240,43 @@ const LiveChatWidgetStateful = props => {
240
240
  Description: "Start proactive chat method called, when chat was already triggered."
241
241
  });
242
242
  }
243
- }); // Start chat from SDK Event
244
-
243
+ });
245
244
 
245
+ // Start chat from SDK Event
246
246
  _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.StartChat).subscribe(() => {
247
- var _chatSDK$omnichannelC, _chatSDK$omnichannelC2, _DataStoreManager$cli;
248
-
247
+ var _chatSDK$omnichannelC4, _chatSDK$omnichannelC5, _props$controlProps10;
249
248
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
250
249
  Event: _TelemetryConstants.TelemetryEvent.StartChatEventRecevied,
251
250
  Description: "Start chat event received."
252
- }); // Getting updated state from cache
253
-
254
-
255
- const widgetStateEventName = (0, _utils.getWidgetCacheId)((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) ?? "");
256
- const widgetStateFromCache = (_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.getData(widgetStateEventName, "localStorage");
257
- const persistedState = widgetStateFromCache ? JSON.parse(widgetStateFromCache) : undefined;
251
+ });
252
+ const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC4 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC4 === void 0 ? void 0 : _chatSDK$omnichannelC4.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC5 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC5 === void 0 ? void 0 : _chatSDK$omnichannelC5.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps10 = props.controlProps) === null || _props$controlProps10 === void 0 ? void 0 : _props$controlProps10.widgetInstanceId) ?? "");
258
253
 
259
- if (persistedState.appStates.conversationState === _ConversationState.ConversationState.Closed || persistedState.appStates.conversationState === _ConversationState.ConversationState.InActive || persistedState.appStates.conversationState === _ConversationState.ConversationState.Postchat) {
254
+ // Chat not found in cache
255
+ if (persistedState === undefined) {
260
256
  _omnichannelChatComponents.BroadcastService.postMessage({
261
257
  eventName: _TelemetryConstants.BroadcastEvent.ChatInitiated
262
258
  });
263
-
264
259
  (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter);
265
- } else {
260
+ return;
261
+ }
262
+
263
+ // Chat exist in cache
264
+ if (persistedState) {
266
265
  var _persistedState$domai, _persistedState$domai2, _persistedState$domai3, _persistedState$domai4;
266
+ // Only initiate new chat if widget state in cache in one of the followings
267
+ if (persistedState.appStates.conversationState === _ConversationState.ConversationState.Closed || persistedState.appStates.conversationState === _ConversationState.ConversationState.InActive || persistedState.appStates.conversationState === _ConversationState.ConversationState.Postchat) {
268
+ _omnichannelChatComponents.BroadcastService.postMessage({
269
+ eventName: _TelemetryConstants.BroadcastEvent.ChatInitiated
270
+ });
271
+ (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter);
272
+ return;
273
+ }
267
274
 
275
+ // If minimized, maximize the chat
268
276
  dispatch({
269
277
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
270
278
  payload: false
271
279
  });
272
-
273
280
  _omnichannelChatComponents.BroadcastService.postMessage({
274
281
  eventName: _TelemetryConstants.BroadcastEvent.MaximizeChat,
275
282
  payload: {
@@ -278,112 +285,104 @@ const LiveChatWidgetStateful = props => {
278
285
  }
279
286
  });
280
287
  }
281
- }); // End chat
282
-
283
-
284
- _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.InitiateEndChat).subscribe(async msg => {
285
- var _msg$payload4, _msg$payload5;
286
-
287
- const isChatUnloading = ((_msg$payload4 = msg.payload) === null || _msg$payload4 === void 0 ? void 0 : _msg$payload4.chatUnloading) ?? false;
288
- const isSdkCall = ((_msg$payload5 = msg.payload) === null || _msg$payload5 === void 0 ? void 0 : _msg$payload5.isSdkCall) ?? false;
289
- const eventDescription = isChatUnloading ? "End chat event received from unload." : "End chat event received.";
290
-
291
- _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
292
- Event: _TelemetryConstants.TelemetryEvent.EndChatEventReceived,
293
- Description: eventDescription
294
- });
295
-
296
- if (isChatUnloading) {
297
- var _DataStoreManager$cli2;
298
-
299
- //Browser close scenario/no room for PCS/so just end chat and notify agent immidiately
300
- (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, false); // Clean local storage
301
-
302
- (_DataStoreManager$cli2 = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli2 === void 0 ? void 0 : _DataStoreManager$cli2.removeData(widgetStateEventName, "localStorage");
303
- } else if (canEndChat.current) {
304
- (0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
305
- } else {
306
- const skipEndChatSDK = true;
307
- const skipCloseChat = false;
308
- (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat);
309
- } // Raise chatClose for SDK events
310
-
311
-
312
- if (isSdkCall) {
313
- _omnichannelChatComponents.BroadcastService.postMessage({
314
- eventName: _TelemetryConstants.BroadcastEvent.CloseChat
315
- });
316
- }
317
- }); // reset proactive chat params
318
-
288
+ });
319
289
 
320
- _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.ResetProactiveChatParams).subscribe(async () => {
321
- dispatch({
322
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS,
323
- payload: {
324
- proactiveChatBodyTitle: "",
325
- proactiveChatEnablePrechat: false,
326
- proactiveChatInNewWindow: false
290
+ // End chat
291
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.InitiateEndChat).subscribe(async () => {
292
+ if (state.appStates.hideStartChatButton === false) {
293
+ var _chatSDK$omnichannelC6, _chatSDK$omnichannelC7, _props$controlProps11;
294
+ // This is to ensure to get latest state from cache in multitab
295
+ const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC6 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC6 === void 0 ? void 0 : _chatSDK$omnichannelC6.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC7 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC7 === void 0 ? void 0 : _chatSDK$omnichannelC7.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps11 = props.controlProps) === null || _props$controlProps11 === void 0 ? void 0 : _props$controlProps11.widgetInstanceId) ?? "");
296
+ if (persistedState && persistedState.appStates.conversationState === _ConversationState.ConversationState.Active) {
297
+ (0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
298
+ } else {
299
+ const skipEndChatSDK = true;
300
+ const skipCloseChat = false;
301
+ (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat);
327
302
  }
303
+ }
304
+ _omnichannelChatComponents.BroadcastService.postMessage({
305
+ eventName: _TelemetryConstants.BroadcastEvent.CloseChat
328
306
  });
329
- }); // Listen to end chat event from other tabs
330
-
307
+ });
331
308
 
332
- const endChatEventName = (0, _utils.getWidgetEndChatEventName)(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);
309
+ // End chat on browser unload
310
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.InitiateEndChatOnBrowserUnload).subscribe(() => {
311
+ initiateEndChatOnBrowserUnload();
312
+ });
333
313
 
314
+ // Listen to end chat event from other tabs
315
+ const endChatEventName = (0, _utils.getWidgetEndChatEventName)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC8 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC8 === void 0 ? void 0 : _chatSDK$omnichannelC8.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC9 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC9 === void 0 ? void 0 : _chatSDK$omnichannelC9.widgetId, ((_props$controlProps12 = props.controlProps) === null || _props$controlProps12 === void 0 ? void 0 : _props$controlProps12.widgetInstanceId) ?? "");
334
316
  _omnichannelChatComponents.BroadcastService.getMessageByEventName(endChatEventName).subscribe(async () => {
335
317
  (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, false);
336
- }); // Close popout window
337
-
338
-
339
- window.addEventListener("beforeunload", () => {
340
- _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
341
- Event: _TelemetryConstants.TelemetryEvent.WindowClosed,
342
- Description: "Closed window."
343
- });
344
-
345
- (0, _disposeTelemetryLoggers.disposeTelemetryLoggers)();
318
+ return;
346
319
  });
347
320
 
321
+ // When conversation ended by agent
348
322
  if (state.appStates.conversationEndedByAgent) {
349
323
  (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter);
350
- } //Listen to WidgetSize
351
-
324
+ }
352
325
 
326
+ //Listen to WidgetSize, used for minimize to maximize
353
327
  _omnichannelChatComponents.BroadcastService.getMessageByEventName("WidgetSize").subscribe(msg => {
354
328
  dispatch({
355
329
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_SIZE,
356
330
  payload: msg === null || msg === void 0 ? void 0 : msg.payload
357
331
  });
358
332
  });
359
- }, []);
360
- (0, _react2.useEffect)(() => {
361
- canEndChat.current = state.appStates.conversationState === _ConversationState.ConversationState.Active;
362
333
 
363
- if (state.appStates.conversationState === _ConversationState.ConversationState.Active) {
364
- chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.onNewMessage(() => {
365
- _omnichannelChatComponents.BroadcastService.postMessage({
366
- eventName: _TelemetryConstants.BroadcastEvent.NewMessageNotification
367
- });
334
+ // Reset state variables
335
+ _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.RaiseErrorEvent).subscribe(() => {
336
+ dispatch({
337
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONFIG,
338
+ payload: undefined
368
339
  });
369
- } // Track the message count
370
-
371
-
340
+ dispatch({
341
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CUSTOM_CONTEXT,
342
+ payload: undefined
343
+ });
344
+ dispatch({
345
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
346
+ payload: undefined
347
+ });
348
+ dispatch({
349
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
350
+ payload: undefined
351
+ });
352
+ });
353
+ return () => {
354
+ (0, _disposeTelemetryLoggers.disposeTelemetryLoggers)();
355
+ };
356
+ }, []);
357
+ (0, _react2.useEffect)(() => {
358
+ // On new message
372
359
  if (state.appStates.conversationState === _ConversationState.ConversationState.Active) {
373
360
  chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.onNewMessage(() => {
361
+ // Track the message count
374
362
  currentMessageCountRef.current++;
375
363
  dispatch({
376
364
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
377
365
  payload: currentMessageCountRef.current + 1
378
366
  });
367
+
368
+ // New message notification
369
+ _omnichannelChatComponents.BroadcastService.postMessage({
370
+ eventName: _TelemetryConstants.BroadcastEvent.NewMessageNotification
371
+ });
379
372
  });
380
373
  }
381
374
  }, [state.appStates.conversationState]);
382
375
  (0, _react2.useEffect)(() => {
383
376
  canStartProactiveChat.current = state.appStates.conversationState === _ConversationState.ConversationState.Closed && !state.appStates.proactiveChatStates.proactiveChatInNewWindow;
384
- }, [state.appStates.conversationState, state.appStates.proactiveChatStates.proactiveChatInNewWindow]); // Reset the UnreadMessageCount when minimized is toggled and broadcast it.
377
+ }, [state.appStates.conversationState, state.appStates.proactiveChatStates.proactiveChatInNewWindow]);
385
378
 
379
+ // Reset the UnreadMessageCount when minimized is toggled and broadcast it.
386
380
  (0, _react2.useEffect)(() => {
381
+ if (state.appStates.isMinimized) {
382
+ _ActivityStreamHandler.ActivityStreamHandler.cork();
383
+ } else {
384
+ setTimeout(() => _ActivityStreamHandler.ActivityStreamHandler.uncork(), 500);
385
+ }
387
386
  currentMessageCountRef.current = -1;
388
387
  dispatch({
389
388
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT,
@@ -394,89 +393,134 @@ const LiveChatWidgetStateful = props => {
394
393
  eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
395
394
  payload: 0
396
395
  };
397
-
398
396
  _omnichannelChatComponents.BroadcastService.postMessage(customEvent);
399
- }, [state.appStates.isMinimized]); // Broadcast the UnreadMessageCount state on any change.
397
+ }, [state.appStates.isMinimized]);
400
398
 
399
+ // Broadcast the UnreadMessageCount state on any change.
401
400
  (0, _react2.useEffect)(() => {
402
- if (state.appStates.isMinimized && state.appStates.unreadMessageCount > 0) {
401
+ if (state.appStates.isMinimized === true && state.appStates.unreadMessageCount > 0) {
403
402
  const customEvent = {
404
403
  elementType: _omnichannelChatComponents.ElementType.Custom,
405
404
  eventName: _TelemetryConstants.BroadcastEvent.UnreadMessageCount,
406
405
  payload: `${state.appStates.unreadMessageCount}`
407
406
  };
408
-
409
407
  _omnichannelChatComponents.BroadcastService.postMessage(customEvent);
410
408
  }
411
409
  }, [state.appStates.unreadMessageCount]);
412
410
  (0, _react2.useEffect)(() => {
413
411
  var _props$webChatContain2;
414
-
415
- setWebChatStyles({ ...webChatStyles,
412
+ setWebChatStyles({
413
+ ...webChatStyles,
416
414
  ...((_props$webChatContain2 = props.webChatContainerProps) === null || _props$webChatContain2 === void 0 ? void 0 : _props$webChatContain2.webChatStyles)
417
415
  });
418
- }, [(_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles]); // Publish chat widget state
416
+ }, [(_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.webChatStyles]);
419
417
 
418
+ // Publish chat widget state
420
419
  (0, _react2.useEffect)(() => {
421
- var _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic;
422
-
423
- widgetStateEventName = (0, _utils.getWidgetCacheId)(props === null || props === void 0 ? void 0 : (_props$chatSDK = props.chatSDK) === null || _props$chatSDK === void 0 ? void 0 : (_props$chatSDK$omnich = _props$chatSDK.omnichannelConfig) === null || _props$chatSDK$omnich === void 0 ? void 0 : _props$chatSDK$omnich.orgId, props === null || props === void 0 ? void 0 : (_props$chatSDK2 = props.chatSDK) === null || _props$chatSDK2 === void 0 ? void 0 : (_props$chatSDK2$omnic = _props$chatSDK2.omnichannelConfig) === null || _props$chatSDK2$omnic === void 0 ? void 0 : _props$chatSDK2$omnic.widgetId);
420
+ var _props$chatSDK, _props$chatSDK$omnich, _props$chatSDK2, _props$chatSDK2$omnic, _props$controlProps13;
421
+ // Only activate these windows events when conversation state is active and chat widget is in popout mode
422
+ // Ghost chat scenarios
423
+ /* COMMENTING THIS CODE FOR PARITY WITH OLD LCW
424
+ if (state.appStates.conversationState === ConversationState.Active &&
425
+ props.controlProps?.hideStartChatButton === true) {
426
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
427
+
428
+ window.onbeforeunload = function () {
429
+ const prompt = Constants.BrowserUnloadConfirmationMessage;
430
+ return prompt;
431
+ };
432
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
433
+ window.onunload = function () {
434
+ initiateEndChatOnBrowserUnload();
435
+ };
436
+ }*/
437
+
438
+ widgetStateEventName = (0, _utils.getWidgetCacheId)(props === null || props === void 0 ? void 0 : (_props$chatSDK = props.chatSDK) === null || _props$chatSDK === void 0 ? void 0 : (_props$chatSDK$omnich = _props$chatSDK.omnichannelConfig) === null || _props$chatSDK$omnich === void 0 ? void 0 : _props$chatSDK$omnich.orgId, props === null || props === void 0 ? void 0 : (_props$chatSDK2 = props.chatSDK) === null || _props$chatSDK2 === void 0 ? void 0 : (_props$chatSDK2$omnic = _props$chatSDK2.omnichannelConfig) === null || _props$chatSDK2$omnic === void 0 ? void 0 : _props$chatSDK2$omnic.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps13 = props.controlProps) === null || _props$controlProps13 === void 0 ? void 0 : _props$controlProps13.widgetInstanceId) ?? "");
424
439
  const chatWidgetStateChangeEvent = {
425
440
  eventName: widgetStateEventName,
426
- payload: { ...state
441
+ payload: {
442
+ ...state
427
443
  }
428
444
  };
429
-
430
445
  _omnichannelChatComponents.BroadcastService.postMessage(chatWidgetStateChangeEvent);
431
446
  }, [state]);
432
- const webChatProps = (0, _initWebChatComposer.initWebChatComposer)(props, chatSDK, state, dispatch, setWebChatStyles);
433
-
434
- const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch); // eslint-disable-next-line @typescript-eslint/no-explicit-any
435
-
436
-
437
- const endChatRelay = (adapter, skipEndChatSDK, skipCloseChat) => (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat); // eslint-disable-next-line @typescript-eslint/no-explicit-any
438
-
447
+ const initiateEndChatOnBrowserUnload = () => {
448
+ var _DataStoreManager$cli;
449
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
450
+ Event: _TelemetryConstants.TelemetryEvent.BrowserUnloadEventStarted,
451
+ Description: "Browser unload event received."
452
+ });
453
+ (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, false);
454
+ // Clean local storage
455
+ (_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.removeData(widgetStateEventName, "localStorage");
439
456
 
457
+ //Dispose calling instance
458
+ if (voiceVideoCallingSDK) {
459
+ voiceVideoCallingSDK === null || voiceVideoCallingSDK === void 0 ? void 0 : voiceVideoCallingSDK.close();
460
+ }
461
+ //Message for clearing window[popouTab]
462
+ _omnichannelChatComponents.BroadcastService.postMessage({
463
+ eventName: _TelemetryConstants.BroadcastEvent.ClosePopoutWindow
464
+ });
465
+ };
466
+ const webChatProps = (0, _initWebChatComposer.initWebChatComposer)(props, chatSDK, state, dispatch, setWebChatStyles);
467
+ const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch);
468
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
469
+ const endChatRelay = (adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTab) => (0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTab);
470
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
440
471
  const prepareEndChatRelay = (adapter, state) => (0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
441
-
442
- const prepareStartChatRelay = () => (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter); // eslint-disable-next-line @typescript-eslint/no-explicit-any
443
-
444
-
445
- const initStartChatRelay = (optionalParams, persistedState) => (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, optionalParams, persistedState);
446
-
472
+ const prepareStartChatRelay = () => (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter);
473
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
474
+ const initStartChatRelay = (optionalParams, persistedState) => (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, props, optionalParams, persistedState);
447
475
  const confirmationPaneProps = (0, _initConfirmationPropsComposer.initConfirmationPropsComposer)(props);
448
- return /*#__PURE__*/_react2.default.createElement(Composer, _extends({}, webChatProps, {
476
+ return /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, /*#__PURE__*/_react2.default.createElement("style", null, `
477
+ ::-webkit-scrollbar {
478
+ width: ${scrollbarProps.width};
479
+ }
480
+
481
+ ::-webkit-scrollbar-track {
482
+ background: ${scrollbarProps.trackBackgroundColor};
483
+ }
484
+
485
+ ::-webkit-scrollbar-thumb {
486
+ background: ${scrollbarProps.thumbBackgroundColor};
487
+ border-radius: ${scrollbarProps.thumbBorderRadius};
488
+ }
489
+
490
+ ::-webkit-scrollbar-thumb:hover {
491
+ background: ${scrollbarProps.thumbHoverColor};
492
+ }
493
+ `), /*#__PURE__*/_react2.default.createElement(Composer, _extends({}, webChatProps, {
449
494
  styleOptions: webChatStyles,
450
495
  directLine: ((_props$webChatContain4 = props.webChatContainerProps) === null || _props$webChatContain4 === void 0 ? void 0 : _props$webChatContain4.directLine) ?? adapter ?? _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.directLine
451
496
  }), /*#__PURE__*/_react2.default.createElement(_react.Stack, {
452
497
  id: widgetElementId,
453
498
  styles: generalStyles,
454
499
  className: (_props$styleProps2 = props.styleProps) === null || _props$styleProps2 === void 0 ? void 0 : _props$styleProps2.className
455
- }, !((_props$controlProps5 = props.controlProps) !== null && _props$controlProps5 !== void 0 && _props$controlProps5.hideChatButton) && (0, _componentController.shouldShowChatButton)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr = props.componentOverrides) === null || _props$componentOverr === void 0 ? void 0 : _props$componentOverr.chatButton) || /*#__PURE__*/_react2.default.createElement(_ChatButtonStateful.default, {
500
+ }, !((_props$controlProps14 = props.controlProps) !== null && _props$controlProps14 !== void 0 && _props$controlProps14.hideChatButton) && !((_props$controlProps15 = props.controlProps) !== null && _props$controlProps15 !== void 0 && _props$controlProps15.hideStartChatButton) && (0, _componentController.shouldShowChatButton)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr = props.componentOverrides) === null || _props$componentOverr === void 0 ? void 0 : _props$componentOverr.chatButton) || /*#__PURE__*/_react2.default.createElement(_ChatButtonStateful.default, {
456
501
  buttonProps: props.chatButtonProps,
457
502
  outOfOfficeButtonProps: props.outOfOfficeChatButtonProps,
458
503
  startChat: prepareStartChatRelay
459
- })), !((_props$controlProps6 = props.controlProps) !== null && _props$controlProps6 !== void 0 && _props$controlProps6.hideProactiveChatPane) && (0, _componentController.shouldShowProactiveChatPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr2 = props.componentOverrides) === null || _props$componentOverr2 === void 0 ? void 0 : _props$componentOverr2.proactiveChatPane) || /*#__PURE__*/_react2.default.createElement(_ProactiveChatPaneStateful.default, {
504
+ })), !((_props$controlProps16 = props.controlProps) !== null && _props$controlProps16 !== void 0 && _props$controlProps16.hideProactiveChatPane) && (0, _componentController.shouldShowProactiveChatPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr2 = props.componentOverrides) === null || _props$componentOverr2 === void 0 ? void 0 : _props$componentOverr2.proactiveChatPane) || /*#__PURE__*/_react2.default.createElement(_ProactiveChatPaneStateful.default, {
460
505
  proactiveChatProps: props.proactiveChatPaneProps,
461
506
  startChat: prepareStartChatRelay
462
- })), !((_props$controlProps7 = props.controlProps) !== null && _props$controlProps7 !== void 0 && _props$controlProps7.hideHeader) && (0, _componentController.shouldShowHeader)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr3 = props.componentOverrides) === null || _props$componentOverr3 === void 0 ? void 0 : _props$componentOverr3.header) || /*#__PURE__*/_react2.default.createElement(_HeaderStateful.default, {
507
+ })), !((_props$controlProps17 = props.controlProps) !== null && _props$controlProps17 !== void 0 && _props$controlProps17.hideHeader) && (0, _componentController.shouldShowHeader)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr3 = props.componentOverrides) === null || _props$componentOverr3 === void 0 ? void 0 : _props$componentOverr3.header) || /*#__PURE__*/_react2.default.createElement(_HeaderStateful.default, {
463
508
  headerProps: props.headerProps,
464
509
  outOfOfficeHeaderProps: props.outOfOfficeHeaderProps,
465
510
  endChat: endChatRelay
466
- })), !((_props$controlProps8 = props.controlProps) !== null && _props$controlProps8 !== void 0 && _props$controlProps8.hideLoadingPane) && (0, _componentController.shouldShowLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr4 = props.componentOverrides) === null || _props$componentOverr4 === void 0 ? void 0 : _props$componentOverr4.loadingPane) || /*#__PURE__*/_react2.default.createElement(_LoadingPaneStateful.default, props.loadingPaneProps)), !((_props$controlProps9 = props.controlProps) !== null && _props$controlProps9 !== void 0 && _props$controlProps9.hideOutOfOfficeHoursPane) && (0, _componentController.shouldShowOutOfOfficeHoursPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr5 = props.componentOverrides) === null || _props$componentOverr5 === void 0 ? void 0 : _props$componentOverr5.outOfOfficeHoursPane) || /*#__PURE__*/_react2.default.createElement(_OOOHPaneStateful.default, props.outOfOfficeHoursPaneProps)), !((_props$controlProps10 = props.controlProps) !== null && _props$controlProps10 !== void 0 && _props$controlProps10.hideReconnectChatPane) && (0, _componentController.shouldShowReconnectChatPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr6 = props.componentOverrides) === null || _props$componentOverr6 === void 0 ? void 0 : _props$componentOverr6.reconnectChatPane) || /*#__PURE__*/_react2.default.createElement(_ReconnectChatPaneStateful.default, {
511
+ })), !((_props$controlProps18 = props.controlProps) !== null && _props$controlProps18 !== void 0 && _props$controlProps18.hideLoadingPane) && (0, _componentController.shouldShowLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr4 = props.componentOverrides) === null || _props$componentOverr4 === void 0 ? void 0 : _props$componentOverr4.loadingPane) || /*#__PURE__*/_react2.default.createElement(_LoadingPaneStateful.default, props.loadingPaneProps)), !((_props$controlProps19 = props.controlProps) !== null && _props$controlProps19 !== void 0 && _props$controlProps19.hideOutOfOfficeHoursPane) && (0, _componentController.shouldShowOutOfOfficeHoursPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr5 = props.componentOverrides) === null || _props$componentOverr5 === void 0 ? void 0 : _props$componentOverr5.outOfOfficeHoursPane) || /*#__PURE__*/_react2.default.createElement(_OOOHPaneStateful.default, props.outOfOfficeHoursPaneProps)), !((_props$controlProps20 = props.controlProps) !== null && _props$controlProps20 !== void 0 && _props$controlProps20.hideReconnectChatPane) && (0, _componentController.shouldShowReconnectChatPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr6 = props.componentOverrides) === null || _props$componentOverr6 === void 0 ? void 0 : _props$componentOverr6.reconnectChatPane) || /*#__PURE__*/_react2.default.createElement(_ReconnectChatPaneStateful.default, {
467
512
  reconnectChatProps: props.reconnectChatPaneProps,
468
513
  initStartChat: initStartChatRelay
469
- })), !((_props$controlProps11 = props.controlProps) !== null && _props$controlProps11 !== void 0 && _props$controlProps11.hidePreChatSurveyPane) && (0, _componentController.shouldShowPreChatSurveyPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr7 = props.componentOverrides) === null || _props$componentOverr7 === void 0 ? void 0 : _props$componentOverr7.preChatSurveyPane) || /*#__PURE__*/_react2.default.createElement(_PreChatSurveyPaneStateful.default, {
514
+ })), !((_props$controlProps21 = props.controlProps) !== null && _props$controlProps21 !== void 0 && _props$controlProps21.hidePreChatSurveyPane) && (0, _componentController.shouldShowPreChatSurveyPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr7 = props.componentOverrides) === null || _props$componentOverr7 === void 0 ? void 0 : _props$componentOverr7.preChatSurveyPane) || /*#__PURE__*/_react2.default.createElement(_PreChatSurveyPaneStateful.default, {
470
515
  surveyProps: props.preChatSurveyPaneProps,
471
516
  initStartChat: initStartChatRelay
472
- })), !((_props$controlProps12 = props.controlProps) !== null && _props$controlProps12 !== void 0 && _props$controlProps12.hideCallingContainer) && (0, _componentController.shouldShowCallingContainer)(state) && /*#__PURE__*/_react2.default.createElement(_CallingContainerStateful.default, _extends({
517
+ })), !((_props$controlProps22 = props.controlProps) !== null && _props$controlProps22 !== void 0 && _props$controlProps22.hideCallingContainer) && (0, _componentController.shouldShowCallingContainer)(state) && /*#__PURE__*/_react2.default.createElement(_CallingContainerStateful.default, _extends({
473
518
  voiceVideoCallingSdk: voiceVideoCallingSDK
474
- }, props.callingContainerProps)), !((_props$controlProps13 = props.controlProps) !== null && _props$controlProps13 !== void 0 && _props$controlProps13.hideWebChatContainer) && (0, _componentController.shouldShowWebChatContainer)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr8 = props.componentOverrides) === null || _props$componentOverr8 === void 0 ? void 0 : _props$componentOverr8.webChatContainer) || /*#__PURE__*/_react2.default.createElement(_WebChatContainerStateful.default, props.webChatContainerProps)), !((_props$controlProps14 = props.controlProps) !== null && _props$controlProps14 !== void 0 && _props$controlProps14.hideConfirmationPane) && (0, _componentController.shouldShowConfirmationPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr9 = props.componentOverrides) === null || _props$componentOverr9 === void 0 ? void 0 : _props$componentOverr9.confirmationPane) || /*#__PURE__*/_react2.default.createElement(_ConfirmationPaneStateful.default, _extends({}, confirmationPaneProps, {
519
+ }, props.callingContainerProps)), !((_props$controlProps23 = props.controlProps) !== null && _props$controlProps23 !== void 0 && _props$controlProps23.hideWebChatContainer) && (0, _componentController.shouldShowWebChatContainer)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr8 = props.componentOverrides) === null || _props$componentOverr8 === void 0 ? void 0 : _props$componentOverr8.webChatContainer) || /*#__PURE__*/_react2.default.createElement(_WebChatContainerStateful.default, props.webChatContainerProps)), !((_props$controlProps24 = props.controlProps) !== null && _props$controlProps24 !== void 0 && _props$controlProps24.hideConfirmationPane) && (0, _componentController.shouldShowConfirmationPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr9 = props.componentOverrides) === null || _props$componentOverr9 === void 0 ? void 0 : _props$componentOverr9.confirmationPane) || /*#__PURE__*/_react2.default.createElement(_ConfirmationPaneStateful.default, _extends({}, confirmationPaneProps, {
475
520
  setPostChatContext: setPostChatContextRelay,
476
521
  prepareEndChat: prepareEndChatRelay
477
- }))), !((_props$controlProps15 = props.controlProps) !== null && _props$controlProps15 !== void 0 && _props$controlProps15.hidePostChatLoadingPane) && (0, _componentController.shouldShowPostChatLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr10 = props.componentOverrides) === null || _props$componentOverr10 === void 0 ? void 0 : _props$componentOverr10.postChatLoadingPane) || /*#__PURE__*/_react2.default.createElement(_PostChatLoadingPaneStateful.default, props.postChatLoadingPaneProps)), (0, _componentController.shouldShowPostChatSurveyPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr11 = props.componentOverrides) === null || _props$componentOverr11 === void 0 ? void 0 : _props$componentOverr11.postChatSurveyPane) || /*#__PURE__*/_react2.default.createElement(_PostChatSurveyPaneStateful.default, _extends({}, props.postChatSurveyPaneProps, props.chatSDK))), (0, _createFooter.createFooter)(props, state), (0, _componentController.shouldShowEmailTranscriptPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr12 = props.componentOverrides) === null || _props$componentOverr12 === void 0 ? void 0 : _props$componentOverr12.emailTranscriptPane) || /*#__PURE__*/_react2.default.createElement(_EmailTranscriptPaneStateful.default, props.emailTranscriptPane))));
522
+ }))), !((_props$controlProps25 = props.controlProps) !== null && _props$controlProps25 !== void 0 && _props$controlProps25.hidePostChatLoadingPane) && (0, _componentController.shouldShowPostChatLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr10 = props.componentOverrides) === null || _props$componentOverr10 === void 0 ? void 0 : _props$componentOverr10.postChatLoadingPane) || /*#__PURE__*/_react2.default.createElement(_PostChatLoadingPaneStateful.default, props.postChatLoadingPaneProps)), (0, _componentController.shouldShowPostChatSurveyPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr11 = props.componentOverrides) === null || _props$componentOverr11 === void 0 ? void 0 : _props$componentOverr11.postChatSurveyPane) || /*#__PURE__*/_react2.default.createElement(_PostChatSurveyPaneStateful.default, _extends({}, props.postChatSurveyPaneProps, props.chatSDK))), (0, _createFooter.createFooter)(props, state), (0, _componentController.shouldShowEmailTranscriptPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr12 = props.componentOverrides) === null || _props$componentOverr12 === void 0 ? void 0 : _props$componentOverr12.emailTranscriptPane) || /*#__PURE__*/_react2.default.createElement(_EmailTranscriptPaneStateful.default, props.emailTranscriptPane)))));
478
523
  };
479
-
480
524
  exports.LiveChatWidgetStateful = LiveChatWidgetStateful;
481
525
  var _default = LiveChatWidgetStateful;
482
526
  exports.default = _default;