@microsoft/omnichannel-chat-widget 0.1.0-main.fdf1fdf → 1.0.1-main.068a14e

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. package/README.md +7 -34
  2. package/lib/cjs/assets/Icons.js +4 -2
  3. package/lib/cjs/common/Constants.js +31 -171
  4. package/lib/cjs/common/KeyCodes.js +3 -4
  5. package/lib/cjs/common/contextDataStore/DataStoreManager.js +3 -5
  6. package/lib/cjs/common/storage/default/defaultCacheManager.js +26 -0
  7. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +111 -0
  8. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +78 -0
  9. package/lib/cjs/common/telemetry/TelemetryConstants.js +63 -27
  10. package/lib/cjs/common/telemetry/TelemetryHelper.js +21 -59
  11. package/lib/cjs/common/telemetry/TelemetryManager.js +3 -32
  12. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +0 -2
  13. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +30 -36
  14. package/lib/cjs/common/telemetry/loggers/consoleLogger.js +0 -9
  15. package/lib/cjs/common/utils.js +40 -106
  16. package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +8 -46
  17. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +2 -24
  18. package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  19. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +18 -49
  20. package/lib/cjs/components/dimlayer/DimLayer.js +0 -4
  21. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -37
  22. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -8
  23. package/lib/cjs/components/footerstateful/FooterStateful.js +11 -42
  24. package/lib/cjs/components/footerstateful/audionotificationstateful/AudioNotificationStateful.js +0 -6
  25. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -45
  26. package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -8
  27. package/lib/cjs/components/headerstateful/HeaderStateful.js +19 -31
  28. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +2 -14
  29. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +5 -10
  30. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +139 -0
  31. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +3 -6
  32. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +7 -12
  33. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +14 -20
  34. package/lib/cjs/components/livechatwidget/common/Deferred.js +6 -11
  35. package/lib/cjs/components/livechatwidget/common/agentEndConversationHelper.js +36 -0
  36. package/lib/cjs/components/livechatwidget/common/authHelper.js +13 -15
  37. package/lib/cjs/components/livechatwidget/common/createAdapter.js +4 -13
  38. package/lib/cjs/components/livechatwidget/common/createFooter.js +4 -23
  39. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -10
  40. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +16 -24
  41. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
  42. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +127 -49
  43. package/lib/cjs/components/livechatwidget/common/disposeTelemetryLoggers.js +0 -3
  44. package/lib/cjs/components/livechatwidget/common/endChat.js +65 -70
  45. package/lib/cjs/components/livechatwidget/common/getGeneralStylesForButton.js +0 -6
  46. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +7 -16
  47. package/lib/cjs/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -8
  48. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +25 -101
  49. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +82 -151
  50. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +4 -17
  51. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +256 -12
  52. package/lib/cjs/components/livechatwidget/common/shareObservable.js +4 -8
  53. package/lib/cjs/components/livechatwidget/common/startChat.js +185 -128
  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 +284 -253
  58. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +37 -25
  59. package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -0
  60. package/lib/cjs/components/loadingpanestateful/interfaces/IStartChatErrorPaneControlProps.js +1 -0
  61. package/lib/cjs/components/loadingpanestateful/interfaces/IStartChatErrorPaneProps.js +1 -0
  62. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +4 -17
  63. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -17
  64. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +35 -24
  65. package/lib/cjs/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  66. package/lib/cjs/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +13 -0
  67. package/lib/cjs/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  68. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  69. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +10 -38
  70. package/lib/cjs/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  71. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +2 -32
  72. package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +8 -24
  73. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +21 -37
  74. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +0 -7
  75. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -6
  76. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +12 -27
  77. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +5 -18
  78. package/lib/cjs/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -24
  79. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -15
  80. package/lib/cjs/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -8
  81. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -5
  82. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -5
  83. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  84. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  85. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  86. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  87. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  88. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  89. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  90. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  91. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +0 -7
  92. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -5
  93. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -41
  94. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +10 -22
  95. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -61
  96. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +7 -15
  97. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -13
  98. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -16
  99. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  100. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +10 -0
  101. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -3
  102. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -3
  103. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +10 -0
  104. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -9
  105. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +2 -30
  106. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +7 -18
  107. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +8 -42
  108. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +4 -22
  109. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +20 -33
  110. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +3 -9
  111. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +81 -45
  112. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +1 -10
  113. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +1 -12
  114. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -19
  115. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +1 -9
  116. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -9
  117. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +13 -34
  118. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +1 -10
  119. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +7 -11
  120. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +5 -14
  121. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -21
  122. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -12
  123. package/lib/cjs/contexts/ChatAdapterStore.js +0 -2
  124. package/lib/cjs/contexts/ChatContextStore.js +0 -2
  125. package/lib/cjs/contexts/ChatSDKStore.js +0 -2
  126. package/lib/cjs/contexts/common/ConversationEndEntity.js +12 -0
  127. package/lib/cjs/contexts/common/ConversationState.js +0 -1
  128. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +34 -29
  129. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +18 -13
  130. package/lib/cjs/contexts/createReducer.js +190 -110
  131. package/lib/cjs/controller/componentController.js +2 -31
  132. package/lib/cjs/hooks/useChatAdapterStore.js +0 -6
  133. package/lib/cjs/hooks/useChatContextStore.js +0 -6
  134. package/lib/cjs/hooks/useChatSDKStore.js +0 -6
  135. package/lib/cjs/hooks/useDebounce.js +28 -0
  136. package/lib/cjs/hooks/useWindowDimensions.js +30 -0
  137. package/lib/cjs/index.js +0 -5
  138. package/lib/cjs/plugins/newMessageEventHandler.js +29 -36
  139. package/lib/esm/assets/Icons.js +2 -1
  140. package/lib/esm/common/Constants.js +27 -158
  141. package/lib/esm/common/KeyCodes.js +3 -3
  142. package/lib/esm/common/contextDataStore/DataStoreManager.js +3 -3
  143. package/lib/esm/common/storage/default/defaultCacheManager.js +18 -0
  144. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +104 -0
  145. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +70 -0
  146. package/lib/esm/common/telemetry/TelemetryConstants.js +67 -24
  147. package/lib/esm/common/telemetry/TelemetryHelper.js +21 -47
  148. package/lib/esm/common/telemetry/TelemetryManager.js +3 -19
  149. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +28 -24
  150. package/lib/esm/common/telemetry/loggers/consoleLogger.js +0 -5
  151. package/lib/esm/common/utils.js +38 -53
  152. package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +8 -17
  153. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +2 -7
  154. package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
  155. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +20 -30
  156. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +9 -16
  157. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.spec.js +6 -6
  158. package/lib/esm/components/footerstateful/FooterStateful.js +13 -23
  159. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +7 -35
  160. package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.spec.js +6 -6
  161. package/lib/esm/components/headerstateful/HeaderStateful.js +19 -16
  162. package/lib/esm/components/livechatwidget/LiveChatWidget.js +2 -2
  163. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +5 -7
  164. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +134 -0
  165. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +3 -4
  166. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +7 -9
  167. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +14 -16
  168. package/lib/esm/components/livechatwidget/common/Deferred.js +6 -9
  169. package/lib/esm/components/livechatwidget/common/agentEndConversationHelper.js +30 -0
  170. package/lib/esm/components/livechatwidget/common/authHelper.js +13 -10
  171. package/lib/esm/components/livechatwidget/common/createAdapter.js +6 -6
  172. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -16
  173. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +10 -5
  174. package/lib/esm/components/livechatwidget/common/createMarkdown.js +18 -18
  175. package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
  176. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +128 -35
  177. package/lib/esm/components/livechatwidget/common/endChat.js +69 -57
  178. package/lib/esm/components/livechatwidget/common/getGeneralStylesForButton.js +0 -2
  179. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +9 -11
  180. package/lib/esm/components/livechatwidget/common/initConfirmationPropsComposer.js +4 -5
  181. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +28 -67
  182. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +80 -129
  183. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +4 -9
  184. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +259 -6
  185. package/lib/esm/components/livechatwidget/common/shareObservable.js +4 -7
  186. package/lib/esm/components/livechatwidget/common/startChat.js +184 -99
  187. package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +4 -2
  188. package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
  189. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +287 -188
  190. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +38 -13
  191. package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
  192. package/lib/esm/components/loadingpanestateful/interfaces/IStartChatErrorPaneControlProps.js +1 -0
  193. package/lib/esm/components/loadingpanestateful/interfaces/IStartChatErrorPaneProps.js +1 -0
  194. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +4 -5
  195. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +4 -5
  196. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +35 -12
  197. package/lib/esm/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.js +1 -1
  198. package/lib/esm/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.js +6 -0
  199. package/lib/esm/components/postchatsurveypanestateful/enums/PostChatSurveyMode.js +0 -1
  200. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  201. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +12 -22
  202. package/lib/esm/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
  203. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +4 -8
  204. package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +8 -6
  205. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +19 -11
  206. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  207. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +12 -19
  208. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +5 -14
  209. package/lib/esm/components/webchatcontainerstateful/common/utils/BrowserInfo.js +2 -16
  210. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +5 -5
  211. package/lib/esm/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.js +5 -6
  212. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -3
  213. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -3
  214. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.js +0 -1
  215. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.js +0 -1
  216. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.js +0 -1
  217. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.js +0 -1
  218. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.js +0 -1
  219. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.js +0 -1
  220. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.js +0 -1
  221. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.js +0 -1
  222. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.js +2 -5
  223. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.js +0 -4
  224. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +17 -26
  225. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +12 -14
  226. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +25 -39
  227. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.js +9 -8
  228. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.js +2 -9
  229. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.spec.js +0 -14
  230. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  231. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +3 -0
  232. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.js +2 -1
  233. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.js +2 -1
  234. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +3 -0
  235. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.js +3 -7
  236. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.js +4 -28
  237. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +8 -9
  238. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +9 -28
  239. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +5 -14
  240. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.js +20 -22
  241. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.js +5 -8
  242. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.js +81 -40
  243. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.js +3 -7
  244. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +3 -8
  245. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +17 -14
  246. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.js +3 -7
  247. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.js +3 -7
  248. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.js +15 -27
  249. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.js +3 -5
  250. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.js +9 -9
  251. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.js +7 -9
  252. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +1 -13
  253. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +0 -5
  254. package/lib/esm/contexts/ChatAdapterStore.js +2 -1
  255. package/lib/esm/contexts/ChatContextStore.js +2 -1
  256. package/lib/esm/contexts/ChatSDKStore.js +2 -1
  257. package/lib/esm/contexts/common/ConversationEndEntity.js +5 -0
  258. package/lib/esm/contexts/common/ConversationState.js +0 -1
  259. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +34 -29
  260. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +18 -9
  261. package/lib/esm/contexts/createReducer.js +190 -107
  262. package/lib/esm/controller/componentController.js +3 -2
  263. package/lib/esm/hooks/useChatAdapterStore.js +0 -4
  264. package/lib/esm/hooks/useChatContextStore.js +0 -4
  265. package/lib/esm/hooks/useChatSDKStore.js +0 -4
  266. package/lib/esm/hooks/useDebounce.js +22 -0
  267. package/lib/esm/hooks/useWindowDimensions.js +23 -0
  268. package/lib/esm/plugins/newMessageEventHandler.js +29 -26
  269. package/lib/types/assets/Icons.d.ts +1 -0
  270. package/lib/types/common/Constants.d.ts +21 -0
  271. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  272. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  273. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  274. package/lib/types/common/telemetry/TelemetryConstants.d.ts +45 -9
  275. package/lib/types/common/telemetry/definitions/Contracts.d.ts +4 -4
  276. package/lib/types/common/telemetry/definitions/Payload.d.ts +1 -0
  277. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +4 -0
  278. package/lib/types/common/utils.d.ts +1 -0
  279. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +0 -7
  280. package/lib/types/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.d.ts +9 -0
  281. package/lib/types/components/livechatwidget/common/agentEndConversationHelper.d.ts +6 -0
  282. package/lib/types/components/livechatwidget/common/authHelper.d.ts +3 -2
  283. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
  284. package/lib/types/components/livechatwidget/common/initWebChatComposer.d.ts +1 -1
  285. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -7
  286. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +6 -1
  287. package/lib/types/components/livechatwidget/common/startChat.d.ts +5 -4
  288. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +3 -1
  289. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +6 -2
  290. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
  291. package/lib/types/components/loadingpanestateful/LoadingPaneStateful.d.ts +1 -2
  292. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
  293. package/lib/types/components/loadingpanestateful/interfaces/IStartChatErrorPaneControlProps.d.ts +4 -0
  294. package/lib/types/components/loadingpanestateful/interfaces/IStartChatErrorPaneProps.d.ts +4 -0
  295. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  296. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -0
  297. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  298. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
  299. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +4 -1
  300. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  301. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  302. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -0
  303. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -0
  304. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.d.ts +1 -1
  305. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.d.ts +1 -1
  306. package/lib/types/contexts/common/ConversationEndEntity.d.ts +4 -0
  307. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +9 -3
  308. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +34 -28
  309. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  310. package/lib/types/hooks/useDebounce.d.ts +3 -0
  311. package/lib/types/hooks/useWindowDimensions.d.ts +4 -0
  312. package/package.json +3 -3
@@ -4,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";
@@ -118,14 +95,10 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
118
95
  let fontColor = _Constants.TranscriptConstants.CustomerFontColor;
119
96
  const isSystemMessage = value.tags && value.tags.toLowerCase().indexOf(_Constants.Constants.systemMessageTag) !== -1;
120
97
  const isControlMessage = value.isControlMessage && value.isControlMessage === true;
121
-
122
98
  const isAdaptiveCard = value.contentType && value.contentType.toLowerCase() === _Constants.TranscriptConstants.AdaptiveCardType;
123
-
124
99
  const isInternalMessage = value.deliveryMode && value.deliveryMode.toLowerCase() === _Constants.TranscriptConstants.InternalMode;
125
-
126
100
  const isHiddenMessage = value.tags && value.tags.toLowerCase().indexOf(_Constants.Constants.hiddenTag.toLowerCase()) !== -1;
127
101
  const shouldIgnoreMessage = isSystemMessage || isControlMessage || isAdaptiveCard || isInternalMessage || isHiddenMessage;
128
-
129
102
  if (shouldIgnoreMessage) {
130
103
  return;
131
104
  } else if (value.from) {
@@ -141,19 +114,15 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
141
114
  displayName = value.from.user.displayName;
142
115
  dialogColor = _Constants.TranscriptConstants.CustomerDialogColor;
143
116
  }
144
-
145
117
  displayName = processDisplayName(displayName);
146
118
  iconName = constructIconName(displayName);
147
-
148
119
  if (value.attachments && value.attachments.length > 0 && value.attachments[0].name) {
149
120
  fileAttachmentName = value.attachments[0].name;
150
121
  value.content = attachmentMessage ? attachmentMessage + " " + fileAttachmentName : "The following attachment was uploaded during the conversation: " + fileAttachmentName;
151
122
  }
152
123
  }
153
-
154
124
  let displayNamePlaceholder = processCreatedDateTime(value.createdDateTime, chatCount);
155
125
  let iconPara = "";
156
-
157
126
  if (displayName !== previousDisplayName) {
158
127
  dialogboxMarginleft = "0px";
159
128
  displayNamePlaceholder = "<b>" + displayName + " </b> " + processCreatedDateTime(value.createdDateTime, chatCount);
@@ -164,17 +133,14 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
164
133
  </div>";
165
134
  tabIndex++;
166
135
  }
167
-
168
136
  if (displayName !== previousDisplayName) {
169
137
  if (previousDisplayName === "") {
170
138
  dialogNameMarginTop = "0px";
171
139
  }
172
-
173
140
  if (previousDisplayName !== "") {
174
141
  dialogNameMarginTop = "20px";
175
142
  }
176
143
  }
177
-
178
144
  const displayNameDiv = "<div style='margin-right:-2px;margin-top:" + dialogNameMarginTop + ";margin-bottom:-2px;margin-left:42px;top:-2px;position:relative;'>\
179
145
  <font tabindex ='" + tabIndex + "' size = '1px' color='#000000' style='font-family:Segoe UI,SegoeUI,Helvetica Neue,Helvetica,Arial,sans-serif;font-weight:500;'>\
180
146
  " + displayNamePlaceholder + "\
@@ -188,16 +154,14 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
188
154
  });
189
155
  const str = docTypeTag + docStartTag + docMetaTag + bodyStartTag + mainTranscriptSection + beautifiedChats + divEndTag + bodyEndTag + docEndTag;
190
156
  return str;
191
- }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
192
-
157
+ };
193
158
 
159
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
194
160
  const downloadTranscript = async (chatSDK, renderMarkDown, bannerMessageOnError, attachmentMessage) => {
195
161
  let data = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getLiveChatTranscript());
196
-
197
162
  if (typeof data === _Constants.Constants.String) {
198
163
  data = JSON.parse(data);
199
164
  }
200
-
201
165
  if (data[_Constants.Constants.ChatMessagesJson] !== null && data[_Constants.Constants.ChatMessagesJson] !== undefined) {
202
166
  const chatTranscripts = window.btoa(encodeURIComponent(beautifyChatTranscripts(data[_Constants.Constants.ChatMessagesJson], renderMarkDown, attachmentMessage)));
203
167
  const byteCharacters = decodeURIComponent(window.atob(chatTranscripts));
@@ -217,9 +181,7 @@ const downloadTranscript = async (chatSDK, renderMarkDown, bannerMessageOnError,
217
181
  exception: "Download transcript failed: response null or undefined."
218
182
  }
219
183
  });
220
-
221
184
  _NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.DownloadTranscriptError, bannerMessageOnError ?? _Constants.Constants.defaultDownloadTranscriptError);
222
185
  }
223
186
  };
224
-
225
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,34 @@ 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
-
16
+ var _ConversationEndEntity = require("../../contexts/common/ConversationEndEntity");
26
17
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
-
28
18
  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
19
  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
20
  const HeaderStateful = props => {
33
21
  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
-
22
+ const [state, dispatch] = (0, _useChatContextStore.default)();
23
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
24
  const [adapter] = (0, _useChatAdapterStore.default)();
38
25
  const {
39
26
  headerProps,
40
27
  outOfOfficeHeaderProps,
41
28
  endChat
42
- } = props; //Setting OutOfOperatingHours Flag
43
-
29
+ } = props;
30
+ //Setting OutOfOperatingHours Flag
44
31
  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
32
  const outOfOfficeStyleProps = Object.assign({}, _defaultOutOfOfficeHeaderStyleProps.defaultOutOfOfficeHeaderStyleProps, outOfOfficeHeaderProps === null || outOfOfficeHeaderProps === void 0 ? void 0 : outOfOfficeHeaderProps.styleProps);
46
33
  const conversationState = (0, _react.useRef)(state.appStates.conversationState);
34
+ const conversationEndedBy = (0, _react.useRef)(state.appStates.conversationEndedBy);
47
35
  const controlProps = {
48
36
  id: "oc-lcw-header",
49
37
  dir: state.domainStates.globalDir,
@@ -52,19 +40,18 @@ const HeaderStateful = props => {
52
40
  Event: _TelemetryConstants.TelemetryEvent.HeaderMinimizeButtonClicked,
53
41
  Description: "Header Minimize button clicked."
54
42
  });
55
-
56
43
  dispatch({
57
44
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
58
45
  payload: true
59
46
  });
60
47
  },
61
48
  onCloseClick: async () => {
49
+ var _props$headerProps, _props$headerProps$co, _props$headerProps$co2;
62
50
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
63
51
  Event: _TelemetryConstants.TelemetryEvent.HeaderCloseButtonClicked,
64
52
  Description: "Header Close button clicked."
65
53
  });
66
-
67
- if (conversationState.current === _ConversationState.ConversationState.Active) {
54
+ if (conversationState.current === _ConversationState.ConversationState.Active || conversationEndedBy.current === _ConversationEndEntity.ConversationEndEntity.Agent) {
68
55
  dispatch({
69
56
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SHOW_CONFIRMATION,
70
57
  payload: true
@@ -75,16 +62,18 @@ const HeaderStateful = props => {
75
62
  const postMessageToOtherTabs = true;
76
63
  await endChat(adapter, skipEndChatSDK, skipCloseChat, postMessageToOtherTabs);
77
64
  }
78
-
79
- dispatch({
80
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT,
81
- payload: document.getElementById(`${controlProps.id}-closebutton`)
82
- });
65
+ 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`;
66
+ if (closeButtonId) {
67
+ dispatch({
68
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT_ID,
69
+ payload: closeButtonId
70
+ });
71
+ }
83
72
  },
84
73
  ...(headerProps === null || headerProps === void 0 ? void 0 : headerProps.controlProps),
85
- hideTitle: state.appStates.conversationState === _ConversationState.ConversationState.Loading || 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),
86
- hideIcon: state.appStates.conversationState === _ConversationState.ConversationState.Loading || 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),
87
- 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)
74
+ 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),
75
+ 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),
76
+ hideCloseButton: state.appStates.conversationState === _ConversationState.ConversationState.Loading && !state.appStates.isStartChatFailing || state.appStates.conversationState === _ConversationState.ConversationState.PostchatLoading || 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)
88
77
  };
89
78
  const outOfOfficeControlProps = {
90
79
  id: "oc-lcw-header",
@@ -105,10 +94,10 @@ const HeaderStateful = props => {
105
94
  if (state.appStates.outsideOperatingHours) {
106
95
  setOutOfOperatingHours(true);
107
96
  }
108
-
109
97
  if (state.appStates.conversationState) {
110
98
  conversationState.current = state.appStates.conversationState;
111
99
  }
100
+ conversationEndedBy.current = state.appStates.conversationEndedBy;
112
101
  }, [state.appStates]);
113
102
  return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.Header, {
114
103
  componentOverrides: headerProps === null || headerProps === void 0 ? void 0 : headerProps.componentOverrides,
@@ -116,7 +105,6 @@ const HeaderStateful = props => {
116
105
  styleProps: outOfOperatingHours || state.appStates.conversationState === _ConversationState.ConversationState.OutOfOffice ? outOfOfficeStyleProps : headerProps === null || headerProps === void 0 ? void 0 : headerProps.styleProps
117
106
  });
118
107
  };
119
-
120
108
  exports.HeaderStateful = HeaderStateful;
121
109
  var _default = HeaderStateful;
122
110
  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;
@@ -4,13 +4,13 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.ActivityStreamHandler = void 0;
7
-
8
7
  var _Deferred = require("./Deferred");
9
-
10
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
-
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); }
12
11
  class ActivityStreamHandler {
13
12
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
13
+
14
14
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
15
 
16
16
  /**
@@ -21,24 +21,19 @@ class ActivityStreamHandler {
21
21
  ActivityStreamHandler.restoreDeferred = new _Deferred.Deferred();
22
22
  ActivityStreamHandler.restorePromise = ActivityStreamHandler.restoreDeferred.promise;
23
23
  }
24
+
24
25
  /**
25
26
  * Resolve the promise, releasing it to continue with the execution of the activity.
26
27
  *
27
28
  * */
28
-
29
-
30
29
  static uncork() {
31
30
  ActivityStreamHandler.restoreDeferred.resolve();
32
31
  }
33
-
34
32
  }
35
-
36
33
  exports.ActivityStreamHandler = ActivityStreamHandler;
37
-
38
34
  _defineProperty(ActivityStreamHandler, "restoreDeferred", {
39
35
  resolve: () => {
40
36
  return "initialState";
41
37
  }
42
38
  });
43
-
44
39
  _defineProperty(ActivityStreamHandler, "restorePromise", void 0);
@@ -0,0 +1,139 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.BotAuthActivitySubscriber = void 0;
7
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
8
+ var _TelemetryConstants = require("../../../../common/telemetry/TelemetryConstants");
9
+ var _TelemetryHelper = require("../../../../common/telemetry/TelemetryHelper");
10
+ 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; }
11
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
12
+ 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); }
13
+ const supportedSignInCardContentTypes = ["application/vnd.microsoft.card.signin", "application/vnd.microsoft.card.oauth"];
14
+ const botOauthUrlRegex = /[\S]+.botframework.com\/api\/oauth\/signin\?signin=([\S]+)/;
15
+ const delay = t => new Promise(resolve => setTimeout(resolve, t));
16
+ const fetchBotAuthConfigRetries = 3;
17
+ const fetchBotAuthConfigRetryInterval = 1000;
18
+ let response;
19
+ const extractSignInId = signInUrl => {
20
+ const result = botOauthUrlRegex.exec(signInUrl);
21
+ if (result && result[1]) {
22
+ return result[1];
23
+ }
24
+ return "";
25
+ };
26
+ const extractSasUrl = async attachment => {
27
+ let sasUrl = undefined;
28
+ if (attachment && attachment.content && attachment.content.tokenPostResource && attachment.content.tokenPostResource.sasUrl) {
29
+ sasUrl = attachment.content.tokenPostResource.sasUrl;
30
+ }
31
+ if (!sasUrl) {
32
+ const signInId = extractSignInId(attachment.content.buttons[0].value);
33
+ const getTestUrlEndpoint = `https://token.botframework.com/api/sas/gettesturl?signInId=${signInId}`;
34
+ try {
35
+ const response = await window.fetch(getTestUrlEndpoint);
36
+ if (response.status === 200) {
37
+ const responseJson = await response.json();
38
+ sasUrl = responseJson.sasUrl;
39
+ }
40
+ } catch {
41
+ sasUrl = undefined;
42
+ }
43
+ }
44
+ return sasUrl;
45
+ };
46
+ const fetchBotAuthConfig = async retries => {
47
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
48
+ Event: _TelemetryConstants.TelemetryEvent.SetBotAuthProviderFetchConfig
49
+ });
50
+ const botAuthConfigRequestEvent = {
51
+ eventName: _TelemetryConstants.BroadcastEvent.BotAuthConfigRequest
52
+ };
53
+ _omnichannelChatComponents.BroadcastService.postMessage(botAuthConfigRequestEvent);
54
+ const listener = _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.BotAuthConfigResponse).subscribe(data => {
55
+ var _data$payload, _data$payload2;
56
+ response = ((_data$payload = data.payload) === null || _data$payload === void 0 ? void 0 : _data$payload.response) !== undefined ? (_data$payload2 = data.payload) === null || _data$payload2 === void 0 ? void 0 : _data$payload2.response : response;
57
+ listener.unsubscribe();
58
+ });
59
+ if (response !== undefined) {
60
+ //return response;
61
+ return response;
62
+ }
63
+ if (retries === 1) {
64
+ // Base Case
65
+ throw new Error();
66
+ }
67
+ await delay(fetchBotAuthConfigRetryInterval);
68
+ return await fetchBotAuthConfig(--retries);
69
+ };
70
+ class BotAuthActivitySubscriber {
71
+ constructor() {
72
+ _defineProperty(this, "observer", void 0);
73
+ _defineProperty(this, "signInCardSeen", void 0);
74
+ this.signInCardSeen = new Set();
75
+ }
76
+ applicable(activity) {
77
+ var _activity$attachments;
78
+ return (activity === null || activity === void 0 ? void 0 : (_activity$attachments = activity.attachments) === null || _activity$attachments === void 0 ? void 0 : _activity$attachments.length) > 0 && activity.attachments[0] && supportedSignInCardContentTypes.indexOf(activity.attachments[0].contentType) >= 0;
79
+ }
80
+ async apply(activity) {
81
+ this.observer.next(false); // Hides card
82
+ const attachment = activity.attachments[0];
83
+ const signInUrl = attachment.content.buttons[0].value;
84
+ const signInId = extractSignInId(signInUrl);
85
+ if (!signInId) {
86
+ return;
87
+ }
88
+ if (this.signInCardSeen.has(signInId)) {
89
+ // Prevents duplicate auth
90
+ return;
91
+ }
92
+ this.signInCardSeen.add(signInId);
93
+ const sasUrl = await extractSasUrl(attachment);
94
+ const event = {
95
+ eventName: _TelemetryConstants.BroadcastEvent.SigninCardReceived,
96
+ payload: {
97
+ sasUrl
98
+ }
99
+ };
100
+ if (!sasUrl) {
101
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
102
+ Event: _TelemetryConstants.TelemetryEvent.BotAuthActivityEmptySasUrl,
103
+ Description: "SaS Url is empty"
104
+ });
105
+ return activity;
106
+ } else {
107
+ _omnichannelChatComponents.BroadcastService.postMessage(event);
108
+ }
109
+ try {
110
+ const response = await fetchBotAuthConfig(fetchBotAuthConfigRetries);
111
+ if (response === false) {
112
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
113
+ Event: _TelemetryConstants.TelemetryEvent.SetBotAuthProviderHideCard
114
+ });
115
+ } else {
116
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
117
+ Event: _TelemetryConstants.TelemetryEvent.SetBotAuthProviderDisplayCard
118
+ });
119
+ return activity;
120
+ }
121
+ } catch {
122
+ _TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
123
+ Event: _TelemetryConstants.TelemetryEvent.SetBotAuthProviderNotFound
124
+ });
125
+ //this is to ensure listener continues waiting for response
126
+ if (this.signInCardSeen.has(signInId)) {
127
+ this.signInCardSeen.delete(signInId);
128
+ }
129
+ return activity;
130
+ }
131
+ }
132
+ async next(activity) {
133
+ if (this.applicable(activity)) {
134
+ return await this.apply(activity);
135
+ }
136
+ return activity;
137
+ }
138
+ }
139
+ exports.BotAuthActivitySubscriber = BotAuthActivitySubscriber;
@@ -4,20 +4,17 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.DefaultActivitySubscriber = void 0;
7
-
8
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
-
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
10
  class DefaultActivitySubscriber {
11
11
  constructor() {
12
12
  _defineProperty(this, "observer", void 0);
13
13
  }
14
-
15
14
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
15
  async next(activity) {
17
16
  this.observer.next(activity);
18
17
  return false;
19
18
  }
20
-
21
19
  }
22
-
23
20
  exports.DefaultActivitySubscriber = DefaultActivitySubscriber;
@@ -4,36 +4,31 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.PauseActivitySubscriber = void 0;
7
-
8
7
  var _ActivityStreamHandler = require("../ActivityStreamHandler");
9
-
10
- function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
-
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); }
12
11
  class PauseActivitySubscriber {
13
12
  constructor() {
14
13
  _defineProperty(this, "observer", void 0);
15
14
  }
16
-
17
15
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
16
  async apply(activity) {
19
17
  await _ActivityStreamHandler.ActivityStreamHandler.restorePromise;
20
18
  return activity;
21
- } // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
22
-
19
+ }
23
20
 
21
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
24
22
  applicable(activity) {
25
23
  return true;
26
- } // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
-
24
+ }
28
25
 
26
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
27
  async next(activity) {
30
28
  if (this.applicable(activity)) {
31
29
  return await this.apply(activity);
32
30
  }
33
-
34
31
  return activity;
35
32
  }
36
-
37
33
  }
38
-
39
34
  exports.PauseActivitySubscriber = PauseActivitySubscriber;