@microsoft/omnichannel-chat-widget 0.1.0-main.8cded52 → 0.1.0-main.94f4f7a

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