@microsoft/omnichannel-chat-widget 0.1.0-main.c461296 → 0.1.0-main.c881067

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 (321) hide show
  1. package/README.md +35 -11
  2. package/lib/cjs/assets/Icons.js +4 -2
  3. package/lib/cjs/common/Constants.js +50 -155
  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 +107 -0
  8. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
  9. package/lib/cjs/common/telemetry/TelemetryConstants.js +65 -25
  10. package/lib/cjs/common/telemetry/TelemetryHelper.js +31 -56
  11. package/lib/cjs/common/telemetry/TelemetryManager.js +16 -34
  12. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  13. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -3
  14. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +49 -35
  15. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +6 -14
  16. package/lib/cjs/common/utils.js +80 -80
  17. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +21 -45
  18. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +20 -26
  19. package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  20. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +12 -72
  21. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  22. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -37
  23. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  24. package/lib/cjs/components/footerstateful/FooterStateful.js +12 -44
  25. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  26. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -44
  27. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  28. package/lib/cjs/components/headerstateful/HeaderStateful.js +21 -39
  29. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  30. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +39 -0
  31. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +20 -0
  32. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  33. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +34 -0
  34. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +64 -0
  35. package/lib/cjs/components/livechatwidget/common/Deferred.js +37 -0
  36. package/lib/cjs/components/livechatwidget/common/authHelper.js +50 -0
  37. package/lib/cjs/components/livechatwidget/common/createAdapter.js +10 -9
  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 +36 -43
  41. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
  42. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +131 -61
  43. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  44. package/lib/cjs/components/livechatwidget/common/endChat.js +121 -23
  45. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  46. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +8 -17
  47. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  48. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +38 -52
  49. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +98 -66
  50. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +9 -33
  51. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +2 -15
  52. package/lib/cjs/components/livechatwidget/common/shareObservable.js +41 -0
  53. package/lib/cjs/components/livechatwidget/common/startChat.js +246 -92
  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 +347 -165
  58. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +19 -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 +9 -14
  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 +11 -44
  68. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +19 -33
  69. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -24
  70. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -19
  71. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -7
  72. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  73. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  74. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +12 -27
  75. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +6 -17
  76. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  77. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -15
  78. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  79. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  80. package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  81. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +12 -0
  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 +27 -37
  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 +41 -0
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +82 -0
  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 +89 -0
  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 +13 -30
  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 +33 -0
  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/ConversationState.js +3 -3
  127. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +30 -26
  128. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +14 -13
  129. package/lib/cjs/contexts/createReducer.js +169 -109
  130. package/lib/cjs/controller/componentController.js +4 -33
  131. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  132. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  133. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  134. package/lib/cjs/index.js +0 -5
  135. package/lib/cjs/plugins/newMessageEventHandler.js +26 -46
  136. package/lib/esm/assets/Icons.js +2 -1
  137. package/lib/esm/common/Constants.js +45 -143
  138. package/lib/esm/common/KeyCodes.js +3 -3
  139. package/lib/esm/common/contextDataStore/DataStoreManager.js +3 -3
  140. package/lib/esm/common/storage/default/defaultCacheManager.js +18 -0
  141. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +100 -0
  142. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  143. package/lib/esm/common/telemetry/TelemetryConstants.js +69 -22
  144. package/lib/esm/common/telemetry/TelemetryHelper.js +32 -46
  145. package/lib/esm/common/telemetry/TelemetryManager.js +16 -23
  146. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  147. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  148. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +49 -23
  149. package/lib/esm/common/telemetry/loggers/consoleLogger.js +6 -10
  150. package/lib/esm/common/utils.js +73 -45
  151. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +21 -16
  152. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +23 -13
  153. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  154. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +15 -49
  155. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -16
  156. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  157. package/lib/esm/components/footerstateful/FooterStateful.js +14 -25
  158. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +15 -37
  159. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  160. package/lib/esm/components/headerstateful/HeaderStateful.js +21 -24
  161. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  162. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +32 -0
  163. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +13 -0
  164. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  165. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +27 -0
  166. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +57 -0
  167. package/lib/esm/components/livechatwidget/common/Deferred.js +30 -0
  168. package/lib/esm/components/livechatwidget/common/authHelper.js +42 -0
  169. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -4
  170. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  171. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
  172. package/lib/esm/components/livechatwidget/common/createMarkdown.js +38 -37
  173. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  174. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +133 -49
  175. package/lib/esm/components/livechatwidget/common/endChat.js +124 -14
  176. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  177. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +10 -12
  178. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  179. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +41 -22
  180. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +98 -58
  181. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +9 -23
  182. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +4 -7
  183. package/lib/esm/components/livechatwidget/common/shareObservable.js +35 -0
  184. package/lib/esm/components/livechatwidget/common/startChat.js +245 -71
  185. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  186. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  187. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +350 -117
  188. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +19 -7
  189. package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
  190. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  191. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +9 -4
  192. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +32 -11
  193. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  194. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  195. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  196. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  197. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +15 -29
  198. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +21 -9
  199. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +6 -6
  200. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +94 -4
  201. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  202. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  203. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  204. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +12 -19
  205. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +6 -13
  206. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  207. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -5
  208. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  209. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  210. package/lib/esm/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.js +1 -0
  211. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +5 -0
  212. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -3
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +27 -22
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +12 -14
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -39
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +34 -0
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +80 -0
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +83 -0
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +8 -9
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +9 -28
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +5 -14
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +15 -19
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +6 -29
  242. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  243. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
  244. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  245. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  246. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  247. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  248. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  249. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  250. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  251. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  252. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +27 -0
  253. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  254. package/lib/esm/contexts/ChatContextStore.js +2 -1
  255. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  256. package/lib/esm/contexts/common/ConversationState.js +3 -3
  257. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +30 -26
  258. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +14 -9
  259. package/lib/esm/contexts/createReducer.js +169 -105
  260. package/lib/esm/controller/componentController.js +5 -4
  261. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  262. package/lib/esm/hooks/useChatContextStore.js +0 -4
  263. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  264. package/lib/esm/plugins/newMessageEventHandler.js +26 -35
  265. package/lib/types/assets/Icons.d.ts +1 -0
  266. package/lib/types/common/Constants.d.ts +37 -2
  267. package/lib/types/common/interfaces/IContextDataStore.d.ts +2 -2
  268. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  269. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  270. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  271. package/lib/types/common/telemetry/TelemetryConstants.d.ts +45 -7
  272. package/lib/types/common/telemetry/TelemetryHelper.d.ts +2 -0
  273. package/lib/types/common/telemetry/definitions/Contracts.d.ts +4 -4
  274. package/lib/types/common/telemetry/definitions/Payload.d.ts +13 -9
  275. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +7 -3
  276. package/lib/types/common/utils.d.ts +8 -1
  277. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +4 -4
  278. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  279. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +2 -1
  280. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  281. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  282. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  283. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  284. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  285. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  286. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  287. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  288. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  289. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +6 -4
  290. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  291. package/lib/types/components/livechatwidget/common/startChat.d.ts +6 -2
  292. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  293. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +2 -1
  294. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +6 -3
  295. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  296. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
  297. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  298. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  299. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  300. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -2
  301. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  302. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  303. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  304. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -0
  305. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  306. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +4 -0
  307. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -0
  308. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  309. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -0
  310. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.d.ts +1 -0
  311. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  312. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  313. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  314. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +5 -0
  315. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.d.ts +1 -1
  316. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  317. package/lib/types/contexts/common/ConversationState.d.ts +3 -2
  318. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +6 -3
  319. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +30 -25
  320. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  321. package/package.json +9 -9
@@ -4,15 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.AudioNotificationStateful = void 0;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
11
-
12
9
  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); }
13
-
14
10
  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; }
15
-
16
11
  const AudioNotificationStateful = props => {
17
12
  const {
18
13
  audioSrc,
@@ -30,7 +25,6 @@ const AudioNotificationStateful = props => {
30
25
  }, [isAudioMuted]);
31
26
  return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null);
32
27
  };
33
-
34
28
  exports.AudioNotificationStateful = AudioNotificationStateful;
35
29
  var _default = AudioNotificationStateful;
36
30
  exports.default = _default;
@@ -4,37 +4,26 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.downloadTranscript = void 0;
7
-
8
7
  var _Constants = require("../../../common/Constants");
9
-
10
8
  var _NotificationScenarios = require("../../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios");
11
-
12
9
  var _NotificationHandler = require("../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler");
13
-
14
10
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
15
-
16
11
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
17
-
18
12
  const processDisplayName = displayName => {
19
13
  // if displayname matches "teamsvisitor:<some alphanumeric string>", we replace it with "Customer"
20
14
  const displayNameRegex = ".+:.+";
21
15
  const matchedTeamsDisplayName = displayName.match(displayNameRegex);
22
-
23
16
  if (displayName.indexOf("teamsvisitor") >= 0 && matchedTeamsDisplayName && matchedTeamsDisplayName.length > 0) {
24
17
  displayName = "Customer";
25
18
  }
26
-
27
19
  return displayName;
28
20
  };
29
-
30
21
  const constructIconName = displayName => {
31
22
  if (!displayName) {
32
23
  return "";
33
24
  }
34
-
35
25
  let iconName = "C";
36
26
  const displayNameSplit = displayName.split(" ");
37
-
38
27
  if (displayNameSplit.length > 1) {
39
28
  // get the first letter of name and surname
40
29
  iconName = displayNameSplit[0][0] + displayNameSplit[1][0];
@@ -42,55 +31,42 @@ const constructIconName = displayName => {
42
31
  // get the first letter of name
43
32
  iconName = displayNameSplit[0][0];
44
33
  }
45
-
46
34
  return iconName;
47
35
  };
48
-
49
36
  const processCreatedDateTime = (createdDateTime, chatCount) => {
50
- const formattedDate = new Date(createdDateTime); // TODO: Localization:
51
-
52
- const formattedTimeString = formattedDate.toLocaleTimeString("en-us"
53
- /* Bootstrapper.LiveChatConfiguration.chatWidgetLocale */
54
- , {
37
+ const formattedDate = new Date(createdDateTime);
38
+ // TODO: Localization:
39
+ const formattedTimeString = formattedDate.toLocaleTimeString("en-us" /* Bootstrapper.LiveChatConfiguration.chatWidgetLocale */, {
55
40
  hour: "2-digit",
56
41
  minute: "2-digit"
57
42
  });
58
43
  const formattedSplitTimeString = formattedTimeString.split(" ");
59
44
  let finalizedTimeString = "";
60
-
61
45
  if (formattedSplitTimeString && formattedSplitTimeString.length > 1) {
62
46
  finalizedTimeString = formattedSplitTimeString[0] + " " + formattedSplitTimeString[1];
63
47
  }
64
-
65
48
  if (chatCount == 0) {
66
49
  return formattedDate.toLocaleDateString("en-us") + " " + finalizedTimeString;
67
50
  }
68
-
69
51
  return finalizedTimeString;
70
52
  };
71
-
72
53
  const processContent = (transcriptContent, isAgentChat, renderMarkDown) => {
73
54
  if (transcriptContent.toString().toLowerCase().indexOf(_Constants.TranscriptConstants.TranscriptMessageEmojiMessageType) >= 0) {
74
55
  // eslint-disable-next-line no-useless-escape
75
56
  const emojiRegex = "<img src=\"http.*:\/\/.+\/objects\/.+\/views.+\">";
76
57
  const matchedEmojiImgTag = transcriptContent.match(emojiRegex);
77
-
78
58
  if (matchedEmojiImgTag && matchedEmojiImgTag.length > 0 && transcriptContent.toString().toLowerCase().indexOf(matchedEmojiImgTag[0]) >= 0) {
79
59
  transcriptContent = transcriptContent.replace(matchedEmojiImgTag[0], "");
80
60
  }
81
61
  }
82
-
83
62
  if (!isAgentChat && transcriptContent.toString().toLowerCase().indexOf("a href") >= 0 && transcriptContent.toString().toLowerCase().indexOf("target") >= 0) {
84
63
  transcriptContent = transcriptContent.slice(0, transcriptContent.toString().indexOf("target")) + " style='color:white' " + transcriptContent.slice(transcriptContent.toString().indexOf("target"));
85
64
  }
86
-
87
65
  if (renderMarkDown) {
88
66
  transcriptContent = renderMarkDown(transcriptContent);
89
67
  }
90
-
91
68
  return transcriptContent;
92
69
  };
93
-
94
70
  const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMessage) => {
95
71
  const chats = JSON.parse(chatTranscripts).reverse();
96
72
  const docTypeTag = "<!DOCTYPE html>";
@@ -105,8 +81,9 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
105
81
  let tabIndex = 1;
106
82
  const mainTranscriptSection = "<div class='allTranscripts' style='max-width:60%;min-width:30%;margin-left:20%;background-color:#FFFFFF;'>";
107
83
  let previousDisplayName = "";
108
- let chatCount = 0; // eslint-disable-next-line @typescript-eslint/no-explicit-any
84
+ let chatCount = 0;
109
85
 
86
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
110
87
  chats.forEach(value => {
111
88
  let dialogNameMarginTop = "6px";
112
89
  let dialogboxMarginleft = "40px";
@@ -116,8 +93,13 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
116
93
  let fileAttachmentName = _Constants.TranscriptConstants.DefaultFileAttachmentName;
117
94
  let dialogColor = _Constants.TranscriptConstants.CustomerDialogColor;
118
95
  let fontColor = _Constants.TranscriptConstants.CustomerFontColor;
119
-
120
- if (value.tags && value.tags.toLowerCase().indexOf(_Constants.Constants.systemMessageTag) !== -1 || value.isControlMessage && value.isControlMessage === true || value.contentType && value.contentType.toLowerCase() === _Constants.TranscriptConstants.AdaptiveCardType || value.deliveryMode && value.deliveryMode.toLowerCase() === _Constants.TranscriptConstants.InternalMode) {
96
+ const isSystemMessage = value.tags && value.tags.toLowerCase().indexOf(_Constants.Constants.systemMessageTag) !== -1;
97
+ const isControlMessage = value.isControlMessage && value.isControlMessage === true;
98
+ const isAdaptiveCard = value.contentType && value.contentType.toLowerCase() === _Constants.TranscriptConstants.AdaptiveCardType;
99
+ const isInternalMessage = value.deliveryMode && value.deliveryMode.toLowerCase() === _Constants.TranscriptConstants.InternalMode;
100
+ const isHiddenMessage = value.tags && value.tags.toLowerCase().indexOf(_Constants.Constants.hiddenTag.toLowerCase()) !== -1;
101
+ const shouldIgnoreMessage = isSystemMessage || isControlMessage || isAdaptiveCard || isInternalMessage || isHiddenMessage;
102
+ if (shouldIgnoreMessage) {
121
103
  return;
122
104
  } else if (value.from) {
123
105
  if (value.from.application) {
@@ -132,19 +114,15 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
132
114
  displayName = value.from.user.displayName;
133
115
  dialogColor = _Constants.TranscriptConstants.CustomerDialogColor;
134
116
  }
135
-
136
117
  displayName = processDisplayName(displayName);
137
118
  iconName = constructIconName(displayName);
138
-
139
119
  if (value.attachments && value.attachments.length > 0 && value.attachments[0].name) {
140
120
  fileAttachmentName = value.attachments[0].name;
141
- value.content = attachmentMessage ?? "The following attachment was uploaded during the conversation:" + fileAttachmentName;
121
+ value.content = attachmentMessage ? attachmentMessage + " " + fileAttachmentName : "The following attachment was uploaded during the conversation: " + fileAttachmentName;
142
122
  }
143
123
  }
144
-
145
124
  let displayNamePlaceholder = processCreatedDateTime(value.createdDateTime, chatCount);
146
125
  let iconPara = "";
147
-
148
126
  if (displayName !== previousDisplayName) {
149
127
  dialogboxMarginleft = "0px";
150
128
  displayNamePlaceholder = "<b>" + displayName + " </b> " + processCreatedDateTime(value.createdDateTime, chatCount);
@@ -155,17 +133,14 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
155
133
  </div>";
156
134
  tabIndex++;
157
135
  }
158
-
159
136
  if (displayName !== previousDisplayName) {
160
137
  if (previousDisplayName === "") {
161
138
  dialogNameMarginTop = "0px";
162
139
  }
163
-
164
140
  if (previousDisplayName !== "") {
165
141
  dialogNameMarginTop = "20px";
166
142
  }
167
143
  }
168
-
169
144
  const displayNameDiv = "<div style='margin-right:-2px;margin-top:" + dialogNameMarginTop + ";margin-bottom:-2px;margin-left:42px;top:-2px;position:relative;'>\
170
145
  <font tabindex ='" + tabIndex + "' size = '1px' color='#000000' style='font-family:Segoe UI,SegoeUI,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500;'>\
171
146
  " + displayNamePlaceholder + "\
@@ -179,16 +154,14 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
179
154
  });
180
155
  const str = docTypeTag + docStartTag + docMetaTag + bodyStartTag + mainTranscriptSection + beautifiedChats + divEndTag + bodyEndTag + docEndTag;
181
156
  return str;
182
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
183
-
157
+ };
184
158
 
159
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
185
160
  const downloadTranscript = async (chatSDK, renderMarkDown, bannerMessageOnError, attachmentMessage) => {
186
161
  let data = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getLiveChatTranscript());
187
-
188
162
  if (typeof data === _Constants.Constants.String) {
189
163
  data = JSON.parse(data);
190
164
  }
191
-
192
165
  if (data[_Constants.Constants.ChatMessagesJson] !== null && data[_Constants.Constants.ChatMessagesJson] !== undefined) {
193
166
  const chatTranscripts = window.btoa(encodeURIComponent(beautifyChatTranscripts(data[_Constants.Constants.ChatMessagesJson], renderMarkDown, attachmentMessage)));
194
167
  const byteCharacters = decodeURIComponent(window.atob(chatTranscripts));
@@ -208,9 +181,7 @@ const downloadTranscript = async (chatSDK, renderMarkDown, bannerMessageOnError,
208
181
  exception: "Download transcript failed: response null or undefined."
209
182
  }
210
183
  });
211
-
212
184
  _NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.DownloadTranscriptError, bannerMessageOnError ?? _Constants.Constants.defaultDownloadTranscriptError);
213
185
  }
214
186
  };
215
-
216
187
  exports.downloadTranscript = downloadTranscript;
@@ -1,9 +1,7 @@
1
1
  "use strict";
2
2
 
3
3
  var _omnichannelChatSdk = require("@microsoft/omnichannel-chat-sdk");
4
-
5
4
  var _react = require("@testing-library/react");
6
-
7
5
  jest.mock("@microsoft/omnichannel-chat-sdk");
8
6
  describe("DownloadTranscriptStateful unit test", () => {
9
7
  afterEach(() => {
@@ -18,10 +16,10 @@ describe("DownloadTranscriptStateful unit test", () => {
18
16
  };
19
17
  const chatSDK = new _omnichannelChatSdk.OmnichannelChatSDK(omnichannelConfig);
20
18
  jest.spyOn(chatSDK, "getLiveChatTranscript").mockResolvedValue(Promise.resolve());
21
-
22
19
  try {
23
20
  await chatSDK.getLiveChatTranscript();
24
- expect(chatSDK.getLiveChatTranscript).toHaveBeenCalledTimes(1); // eslint-disable-next-line no-empty
21
+ expect(chatSDK.getLiveChatTranscript).toHaveBeenCalledTimes(1);
22
+ // eslint-disable-next-line no-empty
25
23
  } catch (ex) {}
26
24
  });
27
25
  it("Method getLiveChatTranscript throws exception", async () => {
@@ -33,9 +31,9 @@ describe("DownloadTranscriptStateful unit test", () => {
33
31
  };
34
32
  const chatSDK = new _omnichannelChatSdk.OmnichannelChatSDK(omnichannelConfig);
35
33
  jest.spyOn(chatSDK, "getLiveChatTranscript").mockRejectedValue(new Error(errorMessage));
36
-
37
34
  try {
38
- await chatSDK.getLiveChatTranscript(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
35
+ await chatSDK.getLiveChatTranscript();
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
39
37
  } catch (ex) {
40
38
  expect(ex.message).toEqual(errorMessage);
41
39
  }
@@ -48,9 +46,9 @@ describe("DownloadTranscriptStateful unit test", () => {
48
46
  widgetId: ""
49
47
  };
50
48
  const chatSDK = new _omnichannelChatSdk.OmnichannelChatSDK(omnichannelConfig);
51
-
52
49
  try {
53
- await chatSDK.getLiveChatTranscript(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
50
+ await chatSDK.getLiveChatTranscript();
51
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
52
  } catch (ex) {
55
53
  expect(ex.message).toEqual(errorMessage);
56
54
  }
@@ -4,46 +4,33 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.HeaderStateful = void 0;
7
-
8
7
  var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
9
-
10
8
  var _react = _interopRequireWildcard(require("react"));
11
-
12
9
  var _ConversationState = require("../../contexts/common/ConversationState");
13
-
14
10
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
15
-
16
11
  var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
17
-
18
12
  var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
19
-
20
13
  var _defaultOutOfOfficeHeaderStyleProps = require("./common/styleProps/defaultOutOfOfficeHeaderStyleProps");
21
-
22
14
  var _useChatAdapterStore = _interopRequireDefault(require("../../hooks/useChatAdapterStore"));
23
-
24
15
  var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
25
-
26
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
17
  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); }
29
-
30
18
  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; }
31
-
32
19
  const HeaderStateful = props => {
33
20
  var _state$domainStates$l, _state$domainStates$l2, _headerProps$controlP, _headerProps$controlP2, _headerProps$controlP3, _outOfOfficeHeaderPro;
34
-
35
- const [state, dispatch] = (0, _useChatContextStore.default)(); // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
-
21
+ const [state, dispatch] = (0, _useChatContextStore.default)();
22
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
23
  const [adapter] = (0, _useChatAdapterStore.default)();
38
24
  const {
39
25
  headerProps,
40
26
  outOfOfficeHeaderProps,
41
27
  endChat
42
- } = props; //Setting OutOfOperatingHours Flag
43
-
28
+ } = props;
29
+ //Setting OutOfOperatingHours Flag
44
30
  const [outOfOperatingHours, setOutOfOperatingHours] = (0, _react.useState)(((_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.OutOfOperatingHours) === "True");
45
31
  const outOfOfficeStyleProps = Object.assign({}, _defaultOutOfOfficeHeaderStyleProps.defaultOutOfOfficeHeaderStyleProps, outOfOfficeHeaderProps === null || outOfOfficeHeaderProps === void 0 ? void 0 : outOfOfficeHeaderProps.styleProps);
46
32
  const conversationState = (0, _react.useRef)(state.appStates.conversationState);
33
+ const conversationEndedByAgent = (0, _react.useRef)(state.appStates.conversationEndedByAgent);
47
34
  const controlProps = {
48
35
  id: "oc-lcw-header",
49
36
  dir: state.domainStates.globalDir,
@@ -52,44 +39,40 @@ const HeaderStateful = props => {
52
39
  Event: _TelemetryConstants.TelemetryEvent.HeaderMinimizeButtonClicked,
53
40
  Description: "Header Minimize button clicked."
54
41
  });
55
-
56
42
  dispatch({
57
43
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
58
44
  payload: true
59
45
  });
60
46
  },
61
47
  onCloseClick: async () => {
48
+ var _props$headerProps, _props$headerProps$co, _props$headerProps$co2;
62
49
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
63
50
  Event: _TelemetryConstants.TelemetryEvent.HeaderCloseButtonClicked,
64
51
  Description: "Header Close button clicked."
65
52
  });
66
-
67
- if (conversationState.current === _ConversationState.ConversationState.Active) {
53
+ if (conversationState.current === _ConversationState.ConversationState.Active || conversationEndedByAgent.current) {
68
54
  dispatch({
69
55
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SHOW_CONFIRMATION,
70
56
  payload: true
71
57
  });
72
- } else if (conversationState.current === _ConversationState.ConversationState.Postchat) {
73
- dispatch({
74
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SHOULD_SHOW_POST_CHAT,
75
- payload: false
76
- });
77
- await endChat(adapter);
78
- } else if (conversationState.current === _ConversationState.ConversationState.InActive) {
58
+ } else {
79
59
  const skipEndChatSDK = true;
80
60
  const skipCloseChat = false;
81
- await endChat(adapter, skipEndChatSDK, skipCloseChat);
61
+ const postMessageToOtherTabs = true;
62
+ await endChat(adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTabs);
63
+ }
64
+ const closeButtonId = ((_props$headerProps = props.headerProps) === null || _props$headerProps === void 0 ? void 0 : (_props$headerProps$co = _props$headerProps.controlProps) === null || _props$headerProps$co === void 0 ? void 0 : (_props$headerProps$co2 = _props$headerProps$co.closeButtonProps) === null || _props$headerProps$co2 === void 0 ? void 0 : _props$headerProps$co2.id) ?? `${controlProps.id}-close-button`;
65
+ if (closeButtonId) {
66
+ dispatch({
67
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT_ID,
68
+ payload: closeButtonId
69
+ });
82
70
  }
83
-
84
- dispatch({
85
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT,
86
- payload: document.getElementById(`${controlProps.id}-closebutton`)
87
- });
88
71
  },
89
72
  ...(headerProps === null || headerProps === void 0 ? void 0 : headerProps.controlProps),
90
- hideTitle: state.appStates.conversationState === _ConversationState.ConversationState.Loading || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP = headerProps.controlProps) === null || _headerProps$controlP === void 0 ? void 0 : _headerProps$controlP.hideTitle),
91
- hideIcon: state.appStates.conversationState === _ConversationState.ConversationState.Loading || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP2 = headerProps.controlProps) === null || _headerProps$controlP2 === void 0 ? void 0 : _headerProps$controlP2.hideIcon),
92
- hideCloseButton: state.appStates.conversationState === _ConversationState.ConversationState.Loading || state.appStates.conversationState === _ConversationState.ConversationState.Prechat || state.appStates.conversationState === _ConversationState.ConversationState.ReconnectChat || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP3 = headerProps.controlProps) === null || _headerProps$controlP3 === void 0 ? void 0 : _headerProps$controlP3.hideCloseButton)
73
+ hideTitle: state.appStates.conversationState === _ConversationState.ConversationState.Loading && !state.appStates.isStartChatFailing || state.appStates.conversationState === _ConversationState.ConversationState.PostchatLoading || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP = headerProps.controlProps) === null || _headerProps$controlP === void 0 ? void 0 : _headerProps$controlP.hideTitle),
74
+ hideIcon: state.appStates.conversationState === _ConversationState.ConversationState.Loading && !state.appStates.isStartChatFailing || state.appStates.conversationState === _ConversationState.ConversationState.PostchatLoading || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP2 = headerProps.controlProps) === null || _headerProps$controlP2 === void 0 ? void 0 : _headerProps$controlP2.hideIcon),
75
+ hideCloseButton: state.appStates.conversationState === _ConversationState.ConversationState.Loading && !state.appStates.isStartChatFailing || state.appStates.conversationState === _ConversationState.ConversationState.Prechat || state.appStates.conversationState === _ConversationState.ConversationState.ReconnectChat || (headerProps === null || headerProps === void 0 ? void 0 : (_headerProps$controlP3 = headerProps.controlProps) === null || _headerProps$controlP3 === void 0 ? void 0 : _headerProps$controlP3.hideCloseButton)
93
76
  };
94
77
  const outOfOfficeControlProps = {
95
78
  id: "oc-lcw-header",
@@ -110,10 +93,10 @@ const HeaderStateful = props => {
110
93
  if (state.appStates.outsideOperatingHours) {
111
94
  setOutOfOperatingHours(true);
112
95
  }
113
-
114
96
  if (state.appStates.conversationState) {
115
97
  conversationState.current = state.appStates.conversationState;
116
98
  }
99
+ conversationEndedByAgent.current = state.appStates.conversationEndedByAgent;
117
100
  }, [state.appStates]);
118
101
  return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.Header, {
119
102
  componentOverrides: headerProps === null || headerProps === void 0 ? void 0 : headerProps.componentOverrides,
@@ -121,7 +104,6 @@ const HeaderStateful = props => {
121
104
  styleProps: outOfOperatingHours || state.appStates.conversationState === _ConversationState.ConversationState.OutOfOffice ? outOfOfficeStyleProps : headerProps === null || headerProps === void 0 ? void 0 : headerProps.styleProps
122
105
  });
123
106
  };
124
-
125
107
  exports.HeaderStateful = HeaderStateful;
126
108
  var _default = HeaderStateful;
127
109
  exports.default = _default;
@@ -4,31 +4,20 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.default = exports.LiveChatWidget = void 0;
7
-
8
7
  var _react = _interopRequireWildcard(require("react"));
9
-
10
8
  var _ChatAdapterStore = require("../../contexts/ChatAdapterStore");
11
-
12
9
  var _ChatContextStore = require("../../contexts/ChatContextStore");
13
-
14
10
  var _ChatSDKStore = require("../../contexts/ChatSDKStore");
15
-
16
11
  var _LiveChatWidgetStateful = _interopRequireDefault(require("./livechatwidgetstateful/LiveChatWidgetStateful"));
17
-
18
12
  var _createReducer = require("../../contexts/createReducer");
19
-
20
13
  var _LiveChatWidgetContextInitialState = require("../../contexts/common/LiveChatWidgetContextInitialState");
21
-
22
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
23
-
24
15
  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); }
25
-
26
16
  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; }
27
-
28
17
  const LiveChatWidget = props => {
29
18
  const reducer = (0, _createReducer.createReducer)();
30
- const [state, dispatch] = (0, _react.useReducer)(reducer, (0, _LiveChatWidgetContextInitialState.getLiveChatWidgetContextInitialState)(props)); // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
-
19
+ const [state, dispatch] = (0, _react.useReducer)(reducer, (0, _LiveChatWidgetContextInitialState.getLiveChatWidgetContextInitialState)(props));
20
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
21
  const [adapter, setAdapter] = (0, _react.useState)(undefined);
33
22
  return /*#__PURE__*/_react.default.createElement(_ChatSDKStore.ChatSDKStore.Provider, {
34
23
  value: props.chatSDK
@@ -38,7 +27,6 @@ const LiveChatWidget = props => {
38
27
  value: [state, dispatch]
39
28
  }, /*#__PURE__*/_react.default.createElement(_LiveChatWidgetStateful.default, props))));
40
29
  };
41
-
42
30
  exports.LiveChatWidget = LiveChatWidget;
43
31
  var _default = LiveChatWidget;
44
32
  exports.default = _default;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ActivityStreamHandler = void 0;
7
+ var _Deferred = require("./Deferred");
8
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
10
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
11
+ class ActivityStreamHandler {
12
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+
16
+ /**
17
+ * Use of a deferred pattern, to hold the execution of the activity.
18
+ *
19
+ * */
20
+ static cork() {
21
+ ActivityStreamHandler.restoreDeferred = new _Deferred.Deferred();
22
+ ActivityStreamHandler.restorePromise = ActivityStreamHandler.restoreDeferred.promise;
23
+ }
24
+
25
+ /**
26
+ * Resolve the promise, releasing it to continue with the execution of the activity.
27
+ *
28
+ * */
29
+ static uncork() {
30
+ ActivityStreamHandler.restoreDeferred.resolve();
31
+ }
32
+ }
33
+ exports.ActivityStreamHandler = ActivityStreamHandler;
34
+ _defineProperty(ActivityStreamHandler, "restoreDeferred", {
35
+ resolve: () => {
36
+ return "initialState";
37
+ }
38
+ });
39
+ _defineProperty(ActivityStreamHandler, "restorePromise", void 0);
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DefaultActivitySubscriber = void 0;
7
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
9
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
10
+ class DefaultActivitySubscriber {
11
+ constructor() {
12
+ _defineProperty(this, "observer", void 0);
13
+ }
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ async next(activity) {
16
+ this.observer.next(activity);
17
+ return false;
18
+ }
19
+ }
20
+ exports.DefaultActivitySubscriber = DefaultActivitySubscriber;
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PauseActivitySubscriber = void 0;
7
+ var _ActivityStreamHandler = require("../ActivityStreamHandler");
8
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
10
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
11
+ class PauseActivitySubscriber {
12
+ constructor() {
13
+ _defineProperty(this, "observer", void 0);
14
+ }
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+ async apply(activity) {
17
+ await _ActivityStreamHandler.ActivityStreamHandler.restorePromise;
18
+ return activity;
19
+ }
20
+
21
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
22
+ applicable(activity) {
23
+ return true;
24
+ }
25
+
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+ async next(activity) {
28
+ if (this.applicable(activity)) {
29
+ return await this.apply(activity);
30
+ }
31
+ return activity;
32
+ }
33
+ }
34
+ exports.PauseActivitySubscriber = PauseActivitySubscriber;
@@ -0,0 +1,64 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ChatAdapterShim = void 0;
7
+ var _DefaultActivitySubscriber = require("./ActivitySubscriber/DefaultActivitySubscriber");
8
+ var _shareObservable = require("./shareObservable");
9
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
10
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
11
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
12
+ class ChatAdapterShim {
13
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
14
+
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+
19
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
+ constructor(chatAdapter) {
21
+ _defineProperty(this, "chatAdapter", void 0);
22
+ _defineProperty(this, "activityObserver", void 0);
23
+ _defineProperty(this, "subscribers", void 0);
24
+ this.subscribers = [];
25
+ this.chatAdapter = {
26
+ ...chatAdapter,
27
+ activity$: (0, _shareObservable.shareObservable)(
28
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
+ new window.Observable(observer => {
30
+ this.activityObserver = observer;
31
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
+ const abortController = new window.AbortController();
33
+ (async () => {
34
+ try {
35
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
36
+ for await (let activity of chatAdapter.activities({
37
+ signal: abortController.signal
38
+ })) {
39
+ for (const subscriber of [...this.subscribers, new _DefaultActivitySubscriber.DefaultActivitySubscriber()]) {
40
+ subscriber.observer = this.activityObserver;
41
+ activity = await subscriber.next(activity);
42
+ if (!activity) {
43
+ break;
44
+ }
45
+ }
46
+ }
47
+ observer.complete();
48
+ } catch (error) {
49
+ observer.error(error);
50
+ }
51
+ })();
52
+ return () => {
53
+ abortController.abort();
54
+ };
55
+ }))
56
+ };
57
+ }
58
+
59
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
60
+ addSubscriber(subscriber) {
61
+ this.subscribers.push(subscriber);
62
+ }
63
+ }
64
+ exports.ChatAdapterShim = ChatAdapterShim;
@@ -0,0 +1,37 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Deferred = void 0;
7
+ function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
8
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
9
+ function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
10
+ class Deferred {
11
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+
13
+ constructor() {
14
+ _defineProperty(this, "_promise", void 0);
15
+ _defineProperty(this, "_resolve", void 0);
16
+ _defineProperty(this, "_reject", () => {
17
+ return;
18
+ });
19
+ _defineProperty(this, "resolve", value => {
20
+ this._resolve(value);
21
+ });
22
+ _defineProperty(this, "reject", value => {
23
+ this._reject(value);
24
+ });
25
+ this._promise = new Promise((resolve, reject) => {
26
+ this._resolve = resolve;
27
+ this._reject = reject;
28
+ });
29
+ }
30
+
31
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
32
+
33
+ get promise() {
34
+ return this._promise;
35
+ }
36
+ }
37
+ exports.Deferred = Deferred;