@microsoft/omnichannel-chat-widget 0.1.0-main.3d1c026 → 0.1.0-main.4151518

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 (388) hide show
  1. package/README.md +232 -0
  2. package/lib/cjs/assets/Audios.js +8 -0
  3. package/lib/cjs/assets/Icons.js +30 -0
  4. package/lib/cjs/common/Constants.js +61 -151
  5. package/lib/cjs/common/KeyCodes.js +3 -4
  6. package/lib/cjs/common/contextDataStore/DataStoreManager.js +12 -0
  7. package/lib/cjs/common/storage/default/defaultCacheManager.js +26 -0
  8. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +111 -0
  9. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
  10. package/lib/cjs/common/telemetry/TelemetryConstants.js +118 -26
  11. package/lib/cjs/common/telemetry/TelemetryHelper.js +31 -56
  12. package/lib/cjs/common/telemetry/TelemetryManager.js +17 -35
  13. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  14. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -3
  15. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +49 -35
  16. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -14
  17. package/lib/cjs/common/utils.js +101 -80
  18. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +21 -45
  19. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -26
  20. package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  21. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +21 -99
  22. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  23. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +11 -39
  24. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  25. package/lib/cjs/components/footerstateful/FooterStateful.js +14 -46
  26. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  27. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -44
  28. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  29. package/lib/cjs/components/headerstateful/HeaderStateful.js +27 -35
  30. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  31. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +39 -0
  32. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +139 -0
  33. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +20 -0
  34. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  35. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +34 -0
  36. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +64 -0
  37. package/lib/cjs/components/livechatwidget/common/Deferred.js +37 -0
  38. package/lib/cjs/components/livechatwidget/common/agentEndConversationHelper.js +36 -0
  39. package/lib/cjs/components/livechatwidget/common/authHelper.js +50 -0
  40. package/lib/cjs/components/livechatwidget/common/createAdapter.js +12 -9
  41. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  42. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
  43. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +36 -44
  44. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
  45. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +151 -68
  46. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  47. package/lib/cjs/components/livechatwidget/common/endChat.js +151 -61
  48. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  49. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +10 -14
  50. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  51. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +34 -74
  52. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +102 -66
  53. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +13 -20
  54. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +271 -29
  55. package/lib/cjs/components/livechatwidget/common/shareObservable.js +41 -0
  56. package/lib/cjs/components/livechatwidget/common/startChat.js +281 -67
  57. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -11
  58. package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +2 -11
  59. package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  60. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +413 -165
  61. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +38 -26
  62. package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -0
  63. package/lib/cjs/components/loadingpanestateful/interfaces/IStartChatErrorPaneControlProps.js +1 -0
  64. package/lib/cjs/components/loadingpanestateful/interfaces/IStartChatErrorPaneProps.js +1 -0
  65. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +9 -14
  66. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -14
  67. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +35 -24
  68. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  69. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  70. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  71. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  72. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +27 -43
  73. package/lib/cjs/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  74. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +27 -35
  75. package/lib/cjs/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  76. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +8 -24
  77. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -19
  78. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
  79. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  80. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  81. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +12 -27
  82. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +9 -16
  83. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  84. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +56 -88
  85. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  86. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  87. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +12 -0
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -5
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +33 -80
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +10 -22
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +27 -61
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +41 -0
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +82 -0
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +89 -0
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +7 -18
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +8 -42
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +4 -22
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +20 -33
  117. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  118. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +81 -45
  119. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  120. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +7 -18
  121. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  122. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  123. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  124. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  125. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  126. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  127. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  128. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  129. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +33 -0
  130. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  131. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  132. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  133. package/lib/cjs/contexts/common/ConversationEndEntity.js +12 -0
  134. package/lib/cjs/contexts/common/ConversationState.js +4 -3
  135. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +34 -24
  136. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +24 -12
  137. package/lib/cjs/contexts/createReducer.js +213 -106
  138. package/lib/cjs/controller/componentController.js +5 -34
  139. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  140. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  141. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  142. package/lib/cjs/hooks/useDebounce.js +28 -0
  143. package/lib/cjs/hooks/useWindowDimensions.js +30 -0
  144. package/lib/cjs/index.js +0 -5
  145. package/lib/cjs/plugins/newMessageEventHandler.js +92 -0
  146. package/lib/esm/assets/Audios.js +1 -0
  147. package/lib/esm/assets/Icons.js +12 -0
  148. package/lib/esm/common/Constants.js +55 -139
  149. package/lib/esm/common/KeyCodes.js +3 -3
  150. package/lib/esm/common/contextDataStore/DataStoreManager.js +5 -0
  151. package/lib/esm/common/interfaces/IContextDataStore.js +1 -0
  152. package/lib/esm/common/storage/default/defaultCacheManager.js +18 -0
  153. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +104 -0
  154. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  155. package/lib/esm/common/telemetry/TelemetryConstants.js +117 -21
  156. package/lib/esm/common/telemetry/TelemetryHelper.js +32 -46
  157. package/lib/esm/common/telemetry/TelemetryManager.js +17 -24
  158. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  159. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  160. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +49 -23
  161. package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -10
  162. package/lib/esm/common/utils.js +92 -44
  163. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +21 -16
  164. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +23 -13
  165. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  166. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +22 -75
  167. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +11 -18
  168. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  169. package/lib/esm/components/footerstateful/FooterStateful.js +15 -26
  170. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -37
  171. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  172. package/lib/esm/components/headerstateful/HeaderStateful.js +28 -21
  173. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  174. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +32 -0
  175. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +134 -0
  176. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +13 -0
  177. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  178. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +27 -0
  179. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +57 -0
  180. package/lib/esm/components/livechatwidget/common/Deferred.js +30 -0
  181. package/lib/esm/components/livechatwidget/common/agentEndConversationHelper.js +30 -0
  182. package/lib/esm/components/livechatwidget/common/authHelper.js +42 -0
  183. package/lib/esm/components/livechatwidget/common/createAdapter.js +14 -4
  184. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  185. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
  186. package/lib/esm/components/livechatwidget/common/createMarkdown.js +38 -37
  187. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  188. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +152 -57
  189. package/lib/esm/components/livechatwidget/common/endChat.js +152 -47
  190. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  191. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +12 -11
  192. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  193. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +35 -45
  194. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +102 -58
  195. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +13 -12
  196. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +272 -22
  197. package/lib/esm/components/livechatwidget/common/shareObservable.js +35 -0
  198. package/lib/esm/components/livechatwidget/common/startChat.js +284 -52
  199. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  200. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  201. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  202. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +415 -117
  203. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +39 -14
  204. package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
  205. package/lib/esm/components/loadingpanestateful/interfaces/IStartChatErrorPaneControlProps.js +1 -0
  206. package/lib/esm/components/loadingpanestateful/interfaces/IStartChatErrorPaneProps.js +1 -0
  207. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +9 -4
  208. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -4
  209. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +35 -12
  210. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  211. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  212. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  213. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  214. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +30 -28
  215. package/lib/esm/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  216. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +30 -14
  217. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  218. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +8 -6
  219. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -4
  220. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  221. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  222. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  223. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +12 -19
  224. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +9 -12
  225. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  226. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +7 -17
  227. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  228. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  229. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -3
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  242. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +34 -66
  243. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +12 -14
  244. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +27 -40
  245. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  246. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +34 -0
  247. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +80 -0
  248. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  249. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  250. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  251. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  252. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  253. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  254. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +83 -0
  255. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +8 -9
  256. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +9 -28
  257. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +5 -14
  258. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +20 -22
  259. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  260. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +81 -40
  261. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  262. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +9 -14
  263. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  264. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  265. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  266. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  267. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  268. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  269. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  270. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  271. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +27 -0
  272. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  273. package/lib/esm/contexts/ChatContextStore.js +2 -1
  274. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  275. package/lib/esm/contexts/common/ConversationEndEntity.js +5 -0
  276. package/lib/esm/contexts/common/ConversationState.js +4 -3
  277. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +34 -24
  278. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +24 -8
  279. package/lib/esm/contexts/createReducer.js +213 -102
  280. package/lib/esm/controller/componentController.js +6 -5
  281. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  282. package/lib/esm/hooks/useChatContextStore.js +0 -4
  283. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  284. package/lib/esm/hooks/useDebounce.js +22 -0
  285. package/lib/esm/hooks/useWindowDimensions.js +23 -0
  286. package/lib/esm/plugins/newMessageEventHandler.js +85 -0
  287. package/lib/types/assets/Audios.d.ts +1 -0
  288. package/lib/types/assets/Icons.d.ts +12 -0
  289. package/lib/types/common/Constants.d.ts +48 -1
  290. package/lib/types/common/contextDataStore/DataStoreManager.d.ts +4 -0
  291. package/lib/types/common/interfaces/IContextDataStore.d.ts +14 -0
  292. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  293. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  294. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  295. package/lib/types/common/telemetry/TelemetryConstants.d.ts +85 -7
  296. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  297. package/lib/types/common/telemetry/definitions/Contracts.d.ts +4 -4
  298. package/lib/types/common/telemetry/definitions/Payload.d.ts +13 -9
  299. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +7 -3
  300. package/lib/types/common/utils.d.ts +9 -1
  301. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +0 -4
  302. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  303. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +5 -1
  304. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  305. package/lib/types/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.d.ts +9 -0
  306. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  307. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  308. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  309. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  310. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  311. package/lib/types/components/livechatwidget/common/agentEndConversationHelper.d.ts +6 -0
  312. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  313. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  314. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  315. package/lib/types/components/livechatwidget/common/initWebChatComposer.d.ts +1 -1
  316. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -4
  317. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +6 -1
  318. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  319. package/lib/types/components/livechatwidget/common/startChat.d.ts +5 -2
  320. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
  321. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  322. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +4 -1
  323. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +9 -2
  324. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  325. package/lib/types/components/loadingpanestateful/LoadingPaneStateful.d.ts +1 -2
  326. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
  327. package/lib/types/components/loadingpanestateful/interfaces/IStartChatErrorPaneControlProps.d.ts +4 -0
  328. package/lib/types/components/loadingpanestateful/interfaces/IStartChatErrorPaneProps.d.ts +4 -0
  329. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  330. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  331. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  332. package/lib/types/components/prechatsurveypanestateful/interfaces/IPreChatSurveyPaneStatefulParams.d.ts +1 -1
  333. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  334. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -2
  335. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  336. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +2 -0
  337. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  338. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  339. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  340. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  341. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +4 -0
  342. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  343. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  344. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  345. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  346. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  347. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  348. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  349. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  350. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  351. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.d.ts +1 -1
  352. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.d.ts +1 -1
  353. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  354. package/lib/types/contexts/common/ConversationEndEntity.d.ts +4 -0
  355. package/lib/types/contexts/common/ConversationState.d.ts +4 -2
  356. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +13 -4
  357. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +34 -23
  358. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  359. package/lib/types/hooks/useDebounce.d.ts +3 -0
  360. package/lib/types/hooks/useWindowDimensions.d.ts +4 -0
  361. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  362. package/package.json +12 -13
  363. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  364. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  365. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  366. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  367. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  368. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  369. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  370. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  371. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  372. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  373. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  374. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  375. package/lib/esm/assets/assets.d.js +0 -0
  376. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  377. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  378. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  379. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  380. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  381. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  382. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  383. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  384. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  385. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  386. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  387. package/lib/esm/assets/icons/wordIcon.svg +0 -6
  388. /package/lib/cjs/{assets/assets.d.js → common/interfaces/IContextDataStore.js} +0 -0
@@ -1,224 +1,335 @@
1
1
  /* eslint-disable indent */
2
+
2
3
  import { LiveChatWidgetActionType } from "./common/LiveChatWidgetActionType";
3
- import { TelemetryManager } from "../common/telemetry/TelemetryManager";
4
4
  export const createReducer = () => {
5
5
  const reducer = (state, action) => {
6
6
  var _action$payload, _action$payload2, _action$payload3;
7
-
8
7
  switch (action.type) {
9
8
  case LiveChatWidgetActionType.SET_WIDGET_ELEMENT_ID:
10
- return { ...state,
11
- domainStates: { ...state.domainStates,
9
+ return {
10
+ ...state,
11
+ domainStates: {
12
+ ...state.domainStates,
12
13
  widgetElementId: action.payload
13
14
  }
14
15
  };
15
-
16
16
  case LiveChatWidgetActionType.SET_RENDERING_MIDDLEWARE_PROPS:
17
- return { ...state,
18
- domainStates: { ...state.domainStates,
17
+ return {
18
+ ...state,
19
+ domainStates: {
20
+ ...state.domainStates,
19
21
  renderingMiddlewareProps: action.payload
20
22
  }
21
23
  };
22
-
23
24
  case LiveChatWidgetActionType.SET_MIDDLEWARE_LOCALIZED_TEXTS:
24
- return { ...state,
25
- domainStates: { ...state.domainStates,
25
+ return {
26
+ ...state,
27
+ domainStates: {
28
+ ...state.domainStates,
26
29
  middlewareLocalizedTexts: action.payload
27
30
  }
28
31
  };
29
-
30
32
  case LiveChatWidgetActionType.SET_GLOBAL_DIR:
31
- return { ...state,
32
- domainStates: { ...state.domainStates,
33
+ return {
34
+ ...state,
35
+ domainStates: {
36
+ ...state.domainStates,
33
37
  globalDir: action.payload === "ltr" || action.payload === "rtl" ? action.payload : "ltr"
34
38
  }
35
39
  };
36
-
37
40
  case LiveChatWidgetActionType.SET_MINIMIZED:
38
- return { ...state,
39
- appStates: { ...state.appStates,
41
+ return {
42
+ ...state,
43
+ appStates: {
44
+ ...state.appStates,
40
45
  isMinimized: action.payload
41
46
  }
42
47
  };
43
-
44
48
  case LiveChatWidgetActionType.SET_CONVERSATION_STATE:
45
- return { ...state,
46
- appStates: { ...state.appStates,
49
+ return {
50
+ ...state,
51
+ appStates: {
52
+ ...state.appStates,
47
53
  conversationState: action.payload
48
54
  }
49
55
  };
50
-
56
+ case LiveChatWidgetActionType.SET_START_CHAT_FAILING:
57
+ return {
58
+ ...state,
59
+ appStates: {
60
+ ...state.appStates,
61
+ isStartChatFailing: action.payload
62
+ }
63
+ };
51
64
  case LiveChatWidgetActionType.SET_OUTSIDE_OPERATING_HOURS:
52
- return { ...state,
53
- appStates: { ...state.appStates,
65
+ return {
66
+ ...state,
67
+ appStates: {
68
+ ...state.appStates,
54
69
  outsideOperatingHours: action.payload
55
70
  }
56
71
  };
57
-
58
72
  case LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE:
59
- return { ...state,
60
- domainStates: { ...state.domainStates,
73
+ return {
74
+ ...state,
75
+ domainStates: {
76
+ ...state.domainStates,
61
77
  preChatSurveyResponse: action.payload
62
78
  }
63
79
  };
64
-
65
- case LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT:
66
- return { ...state,
67
- appStates: { ...state.appStates,
68
- previousElementOnFocusBeforeModalOpen: action.payload
80
+ case LiveChatWidgetActionType.SET_CUSTOM_CONTEXT:
81
+ return {
82
+ ...state,
83
+ domainStates: {
84
+ ...state.domainStates,
85
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
86
+ customContext: action.payload
87
+ }
88
+ };
89
+ case LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT_ID:
90
+ return {
91
+ ...state,
92
+ appStates: {
93
+ ...state.appStates,
94
+ previousElementIdOnFocusBeforeModalOpen: action.payload
69
95
  }
70
96
  };
71
-
72
97
  case LiveChatWidgetActionType.SET_SHOW_CONFIRMATION:
73
- return { ...state,
74
- uiStates: { ...state.uiStates,
98
+ return {
99
+ ...state,
100
+ uiStates: {
101
+ ...state.uiStates,
75
102
  showConfirmationPane: action.payload
76
103
  }
77
104
  };
78
-
79
105
  case LiveChatWidgetActionType.SET_POST_CHAT_CONTEXT:
80
- return { ...state,
81
- domainStates: { ...state.domainStates,
106
+ return {
107
+ ...state,
108
+ domainStates: {
109
+ ...state.domainStates,
82
110
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
83
111
  postChatContext: action.payload
84
112
  }
85
113
  };
86
-
87
- case LiveChatWidgetActionType.SET_SHOULD_SHOW_POST_CHAT:
88
- return { ...state,
89
- appStates: { ...state.appStates,
90
- shouldShowPostChat: action.payload
91
- }
92
- };
93
-
94
114
  case LiveChatWidgetActionType.SHOW_CALLING_CONTAINER:
95
- return { ...state,
96
- uiStates: { ...state.uiStates,
115
+ return {
116
+ ...state,
117
+ uiStates: {
118
+ ...state.uiStates,
97
119
  showCallingPopup: action.payload
98
120
  }
99
121
  };
100
-
101
122
  case LiveChatWidgetActionType.SET_INCOMING_CALL:
102
- return { ...state,
103
- uiStates: { ...state.uiStates,
123
+ return {
124
+ ...state,
125
+ uiStates: {
126
+ ...state.uiStates,
104
127
  isIncomingCall: action.payload
105
128
  }
106
129
  };
107
-
108
130
  case LiveChatWidgetActionType.SET_FOCUS_CHAT_BUTTON:
109
- return { ...state,
110
- uiStates: { ...state.uiStates,
131
+ return {
132
+ ...state,
133
+ uiStates: {
134
+ ...state.uiStates,
111
135
  focusChatButton: action.payload
112
136
  }
113
137
  };
114
-
115
138
  case LiveChatWidgetActionType.DISABLE_VIDEO_CALL:
116
- return { ...state,
117
- uiStates: { ...state.uiStates,
139
+ return {
140
+ ...state,
141
+ uiStates: {
142
+ ...state.uiStates,
118
143
  disableVideoCall: action.payload
119
144
  }
120
145
  };
121
-
122
146
  case LiveChatWidgetActionType.DISABLE_LOCAL_VIDEO:
123
- return { ...state,
124
- uiStates: { ...state.uiStates,
147
+ return {
148
+ ...state,
149
+ uiStates: {
150
+ ...state.uiStates,
125
151
  disableSelfVideo: action.payload
126
152
  }
127
153
  };
128
-
129
154
  case LiveChatWidgetActionType.DISABLE_REMOTE_VIDEO:
130
- return { ...state,
131
- uiStates: { ...state.uiStates,
155
+ return {
156
+ ...state,
157
+ uiStates: {
158
+ ...state.uiStates,
132
159
  disableRemoteVideo: action.payload
133
160
  }
134
161
  };
135
-
136
162
  case LiveChatWidgetActionType.SET_CHAT_TOKEN:
137
- return { ...state,
138
- domainStates: { ...state.domainStates,
163
+ return {
164
+ ...state,
165
+ domainStates: {
166
+ ...state.domainStates,
167
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
139
168
  chatToken: action.payload
140
169
  }
141
170
  };
142
-
143
171
  case LiveChatWidgetActionType.SET_SHOW_EMAIL_TRANSCRIPT_PANE:
144
- return { ...state,
145
- uiStates: { ...state.uiStates,
172
+ return {
173
+ ...state,
174
+ uiStates: {
175
+ ...state.uiStates,
146
176
  showEmailTranscriptPane: action.payload
147
177
  }
148
178
  };
149
-
150
179
  case LiveChatWidgetActionType.SET_PRECHAT_RESPONSE_EMAIL:
151
- return { ...state,
152
- appStates: { ...state.appStates,
180
+ return {
181
+ ...state,
182
+ appStates: {
183
+ ...state.appStates,
153
184
  preChatResponseEmail: action.payload
154
185
  }
155
186
  };
156
-
157
187
  case LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION:
158
- return { ...state,
159
- appStates: { ...state.appStates,
188
+ return {
189
+ ...state,
190
+ appStates: {
191
+ ...state.appStates,
160
192
  isAudioMuted: action.payload
161
193
  }
162
194
  };
163
-
164
195
  case LiveChatWidgetActionType.SET_E2VV_ENABLED:
165
- return { ...state,
166
- appStates: { ...state.appStates,
196
+ return {
197
+ ...state,
198
+ appStates: {
199
+ ...state.appStates,
167
200
  e2vvEnabled: action.payload
168
201
  }
169
202
  };
170
-
171
- case LiveChatWidgetActionType.SET_SKIP_CHAT_BUTTON_RENDERING:
172
- return { ...state,
173
- appStates: { ...state.appStates,
174
- skipChatButtonRendering: action.payload
203
+ case LiveChatWidgetActionType.SET_START_CHAT_BUTTON_DISPLAY:
204
+ return {
205
+ ...state,
206
+ appStates: {
207
+ ...state.appStates,
208
+ hideStartChatButton: action.payload
175
209
  }
176
210
  };
177
-
178
211
  case LiveChatWidgetActionType.SET_PROACTIVE_CHAT_PARAMS:
179
- return { ...state,
180
- appStates: { ...state.appStates,
181
- proactiveChatStates: { ...state.appStates.proactiveChatStates,
212
+ return {
213
+ ...state,
214
+ appStates: {
215
+ ...state.appStates,
216
+ proactiveChatStates: {
217
+ ...state.appStates.proactiveChatStates,
182
218
  proactiveChatBodyTitle: (_action$payload = action.payload) === null || _action$payload === void 0 ? void 0 : _action$payload.proactiveChatBodyTitle,
183
219
  proactiveChatEnablePrechat: (_action$payload2 = action.payload) === null || _action$payload2 === void 0 ? void 0 : _action$payload2.proactiveChatEnablePrechat,
184
220
  proactiveChatInNewWindow: (_action$payload3 = action.payload) === null || _action$payload3 === void 0 ? void 0 : _action$payload3.proactiveChatInNewWindow
185
221
  }
186
222
  }
187
223
  };
188
-
189
224
  case LiveChatWidgetActionType.SET_TELEMETRY_DATA:
190
- TelemetryManager.InternalTelemetryData = action.payload;
191
- return { ...state,
192
- domainStates: { ...state.domainStates,
225
+ return {
226
+ ...state,
227
+ domainStates: {
228
+ ...state.domainStates,
193
229
  telemetryInternalData: action.payload
194
230
  }
195
231
  };
196
-
197
232
  case LiveChatWidgetActionType.SET_RECONNECT_ID:
198
- return { ...state,
199
- appStates: { ...state.appStates,
233
+ return {
234
+ ...state,
235
+ appStates: {
236
+ ...state.appStates,
200
237
  reconnectId: action.payload
201
238
  }
202
239
  };
203
-
204
240
  case LiveChatWidgetActionType.SET_UNREAD_MESSAGE_COUNT:
205
- return { ...state,
206
- appStates: { ...state.appStates,
241
+ return {
242
+ ...state,
243
+ appStates: {
244
+ ...state.appStates,
207
245
  unreadMessageCount: action.payload
208
246
  }
209
247
  };
210
-
211
- case LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT:
212
- return { ...state,
213
- appStates: { ...state.appStates,
214
- conversationEndedByAgent: action.payload
248
+ case LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT:
249
+ return {
250
+ ...state,
251
+ domainStates: {
252
+ ...state.domainStates,
253
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
254
+ liveChatContext: action.payload
255
+ }
256
+ };
257
+ case LiveChatWidgetActionType.SET_WIDGET_STATE:
258
+ return {
259
+ ...action.payload
260
+ };
261
+ case LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT_EVENT_RECEIVED:
262
+ return {
263
+ ...state,
264
+ appStates: {
265
+ ...state.appStates,
266
+ conversationEndedByAgentEventReceived: action.payload
267
+ }
268
+ };
269
+ case LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY:
270
+ return {
271
+ ...state,
272
+ appStates: {
273
+ ...state.appStates,
274
+ conversationEndedBy: action.payload
275
+ }
276
+ };
277
+ case LiveChatWidgetActionType.SET_WIDGET_SIZE:
278
+ return {
279
+ ...state,
280
+ domainStates: {
281
+ ...state.domainStates,
282
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
283
+ widgetSize: action.payload
284
+ }
285
+ };
286
+ case LiveChatWidgetActionType.SET_WIDGET_INSTANCE_ID:
287
+ return {
288
+ ...state,
289
+ domainStates: {
290
+ ...state.domainStates,
291
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
292
+ widgetInstanceId: action.payload
293
+ }
294
+ };
295
+ case LiveChatWidgetActionType.SET_LIVE_CHAT_CONFIG:
296
+ return {
297
+ ...state,
298
+ domainStates: {
299
+ ...state.domainStates,
300
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
301
+ liveChatConfig: action.payload
302
+ }
303
+ };
304
+ case LiveChatWidgetActionType.SET_POST_CHAT_WORKFLOW_IN_PROGRESS:
305
+ return {
306
+ ...state,
307
+ appStates: {
308
+ ...state.appStates,
309
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
310
+ postChatWorkflowInProgress: action.payload
311
+ }
312
+ };
313
+ case LiveChatWidgetActionType.SET_INITIAL_CHAT_SDK_REQUEST_ID:
314
+ return {
315
+ ...state,
316
+ domainStates: {
317
+ ...state.domainStates,
318
+ initialChatSdkRequestId: action.payload
319
+ }
320
+ };
321
+ case LiveChatWidgetActionType.SET_SHOULD_USE_BOT_SURVEY:
322
+ return {
323
+ ...state,
324
+ appStates: {
325
+ ...state.appStates,
326
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
327
+ shouldUseBotSurvey: action.payload
215
328
  }
216
329
  };
217
-
218
330
  default:
219
331
  return state;
220
332
  }
221
333
  };
222
-
223
334
  return reducer;
224
335
  };
@@ -1,7 +1,8 @@
1
1
  import { ConversationState } from "../contexts/common/ConversationState";
2
2
  export const shouldShowChatButton = state => {
3
- return state.appStates.isMinimized || state.appStates.conversationState === ConversationState.Closed;
3
+ return (state.appStates.isMinimized || state.appStates.conversationState === ConversationState.Closed) && state.appStates.hideStartChatButton === false; // Do not show chat button in case of popout
4
4
  };
5
+
5
6
  export const shouldShowProactiveChatPane = state => {
6
7
  return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.ProactiveChat;
7
8
  };
@@ -9,22 +10,22 @@ export const shouldShowHeader = state => {
9
10
  return !state.appStates.isMinimized && state.appStates.conversationState !== ConversationState.Closed && state.appStates.conversationState !== ConversationState.ProactiveChat;
10
11
  };
11
12
  export const shouldShowFooter = state => {
12
- return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.Active;
13
+ return !state.appStates.isMinimized && (state.appStates.conversationState === ConversationState.Active || state.appStates.conversationState === ConversationState.InActive || state.appStates.conversationState === ConversationState.Postchat);
13
14
  };
14
15
  export const shouldShowEmailTranscriptPane = state => {
15
16
  return state.uiStates.showEmailTranscriptPane;
16
17
  };
17
18
  export const shouldShowWebChatContainer = state => {
18
- return state.appStates.conversationState === ConversationState.Active;
19
+ return state.appStates.conversationState === ConversationState.Active || state.appStates.conversationState === ConversationState.InActive;
19
20
  };
20
21
  export const shouldShowLoadingPane = state => {
21
- return !state.appStates.isMinimized && !state.appStates.shouldShowPostChat && state.appStates.conversationState === ConversationState.Loading;
22
+ return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.Loading;
22
23
  };
23
24
  export const shouldShowReconnectChatPane = state => {
24
25
  return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.ReconnectChat;
25
26
  };
26
27
  export const shouldShowPostChatLoadingPane = state => {
27
- return !state.appStates.isMinimized && state.appStates.shouldShowPostChat && state.appStates.conversationState === ConversationState.Loading;
28
+ return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.PostchatLoading;
28
29
  };
29
30
  export const shouldShowOutOfOfficeHoursPane = state => {
30
31
  return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.OutOfOffice;
@@ -1,15 +1,11 @@
1
1
  import { ChatAdapterStore } from "../contexts/ChatAdapterStore";
2
2
  import { useContext } from "react";
3
-
4
3
  const useChatAdapterStore = () => {
5
4
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
5
  const adapter = useContext(ChatAdapterStore);
7
-
8
6
  if (!adapter) {
9
7
  throw new Error("This hook can only be used on component that is descendants of <ChatAdapterStore.Provider>");
10
8
  }
11
-
12
9
  return adapter;
13
10
  };
14
-
15
11
  export default useChatAdapterStore;
@@ -1,14 +1,10 @@
1
1
  import { useContext } from "react";
2
2
  import { ChatContextStore } from "../contexts/ChatContextStore";
3
-
4
3
  const useChatContextStore = () => {
5
4
  const context = useContext(ChatContextStore);
6
-
7
5
  if (!context) {
8
6
  throw new Error("This hook can only be used on component that is descendants of <ChatContextStore.Provider>");
9
7
  }
10
-
11
8
  return context;
12
9
  };
13
-
14
10
  export default useChatContextStore;
@@ -1,14 +1,10 @@
1
1
  import { ChatSDKStore } from "../contexts/ChatSDKStore";
2
2
  import { useContext } from "react";
3
-
4
3
  const useChatSDKStore = () => {
5
4
  const sdk = useContext(ChatSDKStore);
6
-
7
5
  if (!sdk) {
8
6
  throw new Error("This hook is not called on component that is descendants of <ChatSDKStore.Provider>, or ChatSDK is not passed into LiveChatWidget component.");
9
7
  }
10
-
11
8
  return sdk;
12
9
  };
13
-
14
10
  export default useChatSDKStore;
@@ -0,0 +1,22 @@
1
+ import { useRef, useEffect } from "react";
2
+ export default function useDebounce(func) {
3
+ let delay = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 1000;
4
+ const timer = useRef();
5
+ useEffect(() => {
6
+ return () => {
7
+ if (!timer.current) return;
8
+ clearTimeout(timer.current);
9
+ };
10
+ }, []);
11
+ const debouncedFunction = function () {
12
+ for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {
13
+ args[_key] = arguments[_key];
14
+ }
15
+ const newTimer = setTimeout(() => {
16
+ func(...args);
17
+ }, delay);
18
+ clearTimeout(timer.current);
19
+ timer.current = newTimer;
20
+ };
21
+ return debouncedFunction;
22
+ }
@@ -0,0 +1,23 @@
1
+ import { useState, useEffect } from "react";
2
+ import useDebounce from "./useDebounce";
3
+ function getWindowDimensions() {
4
+ const {
5
+ innerWidth: width,
6
+ innerHeight: height
7
+ } = window;
8
+ return {
9
+ width,
10
+ height
11
+ };
12
+ }
13
+ export default function useWindowDimensions() {
14
+ let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 200;
15
+ const [windowDimensions, setWindowDimensions] = useState(getWindowDimensions());
16
+ const handleResize = () => setWindowDimensions(getWindowDimensions());
17
+ const debouncedHandleResize = useDebounce(handleResize, delay);
18
+ useEffect(() => {
19
+ window.addEventListener("resize", debouncedHandleResize);
20
+ return () => window.removeEventListener("resize", debouncedHandleResize);
21
+ }, []);
22
+ return windowDimensions;
23
+ }
@@ -0,0 +1,85 @@
1
+ import { BroadcastEvent, LogLevel, TelemetryEvent } from "../common/telemetry/TelemetryConstants";
2
+ import { BroadcastService } from "@microsoft/omnichannel-chat-components";
3
+ import { Constants } from "../common/Constants";
4
+ import { TelemetryHelper } from "../common/telemetry/TelemetryHelper";
5
+ export const createOnNewAdapterActivityHandler = (chatId, userId) => {
6
+ const onNewAdapterActivityHandler = activity => {
7
+ var _activity$channelData, _activity$channelData2, _activity$channelData3;
8
+ const isActivityMessage = (activity === null || activity === void 0 ? void 0 : activity.type) === Constants.message;
9
+ const isHistoryMessage = isActivityMessage && ((activity === null || activity === void 0 ? void 0 : (_activity$channelData = activity.channelData) === null || _activity$channelData === void 0 ? void 0 : (_activity$channelData2 = _activity$channelData.tags) === null || _activity$channelData2 === void 0 ? void 0 : _activity$channelData2.includes(Constants.historyMessageTag)) || (activity === null || activity === void 0 ? void 0 : (_activity$channelData3 = activity.channelData) === null || _activity$channelData3 === void 0 ? void 0 : _activity$channelData3.fromList));
10
+ raiseMessageEvent(activity, isHistoryMessage);
11
+ };
12
+ let isHistoryMessageReceivedEventRasied = false;
13
+ const raiseMessageEvent = (activity, isHistoryMessage) => {
14
+ if ((activity === null || activity === void 0 ? void 0 : activity.type) === Constants.message) {
15
+ var _text, _text2, _activity$channelData4, _activity$from;
16
+ const payload = {
17
+ // To identify hidden contents vs empty content
18
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
+ text: (activity === null || activity === void 0 ? void 0 : (_text = activity.text) === null || _text === void 0 ? void 0 : _text.length) >= 1 ? `*contents hidden (${activity === null || activity === void 0 ? void 0 : (_text2 = activity.text) === null || _text2 === void 0 ? void 0 : _text2.length} chars)*` : "",
20
+ type: activity === null || activity === void 0 ? void 0 : activity.type,
21
+ timestamp: activity === null || activity === void 0 ? void 0 : activity.timestamp,
22
+ userId: userId,
23
+ tags: activity === null || activity === void 0 ? void 0 : (_activity$channelData4 = activity.channelData) === null || _activity$channelData4 === void 0 ? void 0 : _activity$channelData4.tags,
24
+ messageType: ""
25
+ };
26
+ if ((activity === null || activity === void 0 ? void 0 : (_activity$from = activity.from) === null || _activity$from === void 0 ? void 0 : _activity$from.role) === Constants.userMessageTag) {
27
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
+ payload.messageType = Constants.userMessageTag;
29
+ const newMessageSentEvent = {
30
+ eventName: BroadcastEvent.NewMessageSent,
31
+ payload: payload
32
+ };
33
+ BroadcastService.postMessage(newMessageSentEvent);
34
+ TelemetryHelper.logActionEvent(LogLevel.INFO, {
35
+ Event: TelemetryEvent.MessageSent,
36
+ Description: "New message sent"
37
+ });
38
+ } else {
39
+ var _activity$channelData5, _activity$channelData6;
40
+ if (activity !== null && activity !== void 0 && (_activity$channelData5 = activity.channelData) !== null && _activity$channelData5 !== void 0 && (_activity$channelData6 = _activity$channelData5.tags) !== null && _activity$channelData6 !== void 0 && _activity$channelData6.includes(Constants.systemMessageTag)) {
41
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
42
+ payload.messageType = Constants.systemMessageTag;
43
+ TelemetryHelper.logActionEvent(LogLevel.INFO, {
44
+ Event: TelemetryEvent.SystemMessageReceived,
45
+ Description: "System message received"
46
+ });
47
+ } else {
48
+ var _activity$channelData7, _activity$channelData8, _activity$channelData9;
49
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
+ const messageHasNoText = !(activity !== null && activity !== void 0 && activity.text);
51
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
52
+ const messageHasNoTags = !(activity !== null && activity !== void 0 && activity.channelData) || !(activity !== null && activity !== void 0 && (_activity$channelData7 = activity.channelData) !== null && _activity$channelData7 !== void 0 && _activity$channelData7.tags) || (activity === null || activity === void 0 ? void 0 : (_activity$channelData8 = activity.channelData) === null || _activity$channelData8 === void 0 ? void 0 : (_activity$channelData9 = _activity$channelData8.tags) === null || _activity$channelData9 === void 0 ? void 0 : _activity$channelData9.length) === 0;
53
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
+ const messageHasNoAttachments = !(activity !== null && activity !== void 0 && activity.attachments) || (activity === null || activity === void 0 ? void 0 : activity.attachments.length) === 0;
55
+ if (messageHasNoTags && messageHasNoText && messageHasNoAttachments) {
56
+ return;
57
+ }
58
+ payload.messageType = Constants.userMessageTag;
59
+ }
60
+ const newMessageReceivedEvent = {
61
+ eventName: isHistoryMessage ? BroadcastEvent.HistoryMessageReceived : BroadcastEvent.NewMessageReceived,
62
+ payload: payload
63
+ };
64
+ BroadcastService.postMessage(newMessageReceivedEvent);
65
+ if (!isHistoryMessage) {
66
+ TelemetryHelper.logActionEvent(LogLevel.INFO, {
67
+ Event: TelemetryEvent.MessageReceived,
68
+ Description: "New message received",
69
+ Data: payload
70
+ });
71
+ } else {
72
+ if (!isHistoryMessageReceivedEventRasied) {
73
+ isHistoryMessageReceivedEventRasied = true;
74
+ TelemetryHelper.logActionEvent(LogLevel.INFO, {
75
+ Event: TelemetryEvent.HistoryMessageReceived,
76
+ Description: "History message received",
77
+ Data: payload
78
+ });
79
+ }
80
+ }
81
+ }
82
+ }
83
+ };
84
+ return onNewAdapterActivityHandler;
85
+ };
@@ -0,0 +1 @@
1
+ export declare const NewMessageNotificationSoundBase64: string;