@microsoft/omnichannel-chat-widget 1.7.8-main.bd4de53 → 1.7.8-main.cf04c1c

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 (392) hide show
  1. package/lib/cjs/common/Constants.js +67 -20
  2. package/lib/cjs/common/KeyCodes.js +6 -1
  3. package/lib/cjs/common/contextDataStore/DataStoreManager.js +6 -1
  4. package/lib/cjs/common/facades/FacadeChatSDK.js +392 -295
  5. package/lib/cjs/common/storage/default/defaultCacheManager.js +6 -3
  6. package/lib/cjs/common/telemetry/AppInsightsEvents.js +31 -0
  7. package/lib/cjs/common/telemetry/ScenarioMarker.js +66 -0
  8. package/lib/cjs/common/telemetry/TelemetryConstants.js +155 -129
  9. package/lib/cjs/common/telemetry/TelemetryHelper.js +281 -250
  10. package/lib/cjs/common/telemetry/TelemetryManager.js +32 -12
  11. package/lib/cjs/common/telemetry/defaultConfigs/defaultAppInsightsConfig.js +11 -0
  12. package/lib/cjs/common/telemetry/interfaces/IAppInsightsConfig.js +1 -0
  13. package/lib/cjs/common/telemetry/loggers/appInsightsLogger.js +149 -0
  14. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +13 -9
  15. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +3 -2
  16. package/lib/cjs/components/footerstateful/FooterStateful.js +11 -6
  17. package/lib/cjs/components/headerstateful/HeaderStateful.js +18 -6
  18. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +32 -19
  19. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +70 -58
  20. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +17 -8
  21. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber.js +65 -52
  22. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +31 -18
  23. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +14 -6
  24. package/lib/cjs/components/livechatwidget/common/Deferred.js +14 -6
  25. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +0 -5
  26. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +3 -1
  27. package/lib/cjs/components/livechatwidget/common/renderSurveyHelpers.js +6 -3
  28. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +7 -2
  29. package/lib/cjs/components/livechatwidget/common/startChat.js +45 -40
  30. package/lib/cjs/components/livechatwidget/common/startChatErrorHandler.js +5 -4
  31. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +25 -20
  32. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +6 -4
  33. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +9 -4
  34. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +9 -6
  35. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +8 -6
  36. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +7 -1
  37. package/lib/cjs/components/webchatcontainerstateful/common/DemoChatAdapter.js +88 -65
  38. package/lib/cjs/components/webchatcontainerstateful/common/DemoChatSDK.js +26 -7
  39. package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatAdapter.js +49 -26
  40. package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatSDK.js +57 -35
  41. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +62 -52
  42. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +95 -61
  43. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +6 -1
  44. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +6 -1
  45. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/markdownrenderers/HyperlinkTextOverrideRenderer.js +53 -39
  46. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +88 -60
  47. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +5 -6
  48. package/lib/cjs/controller/componentController.js +3 -2
  49. package/lib/cjs/firstresponselatency/FirstMessageTrackerFromBot.js +118 -0
  50. package/lib/cjs/firstresponselatency/FirstResponseLatencyTracker.js +164 -115
  51. package/lib/cjs/firstresponselatency/util.js +15 -2
  52. package/lib/cjs/plugins/createChatTranscript.js +88 -58
  53. package/lib/cjs/plugins/newMessageEventHandler.js +4 -4
  54. package/lib/esm/common/Constants.js +65 -19
  55. package/lib/esm/common/KeyCodes.js +6 -1
  56. package/lib/esm/common/contextDataStore/DataStoreManager.js +6 -1
  57. package/lib/esm/common/facades/FacadeChatSDK.js +392 -295
  58. package/lib/esm/common/storage/default/defaultCacheManager.js +6 -1
  59. package/lib/esm/common/telemetry/AppInsightsEvents.js +24 -0
  60. package/lib/esm/common/telemetry/ScenarioMarker.js +59 -0
  61. package/lib/esm/common/telemetry/TelemetryConstants.js +155 -129
  62. package/lib/esm/common/telemetry/TelemetryHelper.js +281 -250
  63. package/lib/esm/common/telemetry/TelemetryManager.js +32 -12
  64. package/lib/esm/common/telemetry/defaultConfigs/defaultAppInsightsConfig.js +4 -0
  65. package/lib/esm/common/telemetry/interfaces/IAppInsightsConfig.js +1 -0
  66. package/lib/esm/common/telemetry/loggers/appInsightsLogger.js +139 -0
  67. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +13 -9
  68. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +3 -2
  69. package/lib/esm/components/footerstateful/FooterStateful.js +11 -6
  70. package/lib/esm/components/headerstateful/HeaderStateful.js +18 -6
  71. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +32 -19
  72. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +70 -58
  73. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +17 -8
  74. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber.js +65 -52
  75. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +31 -18
  76. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +14 -6
  77. package/lib/esm/components/livechatwidget/common/Deferred.js +14 -6
  78. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +1 -6
  79. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +3 -1
  80. package/lib/esm/components/livechatwidget/common/renderSurveyHelpers.js +6 -3
  81. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +7 -2
  82. package/lib/esm/components/livechatwidget/common/startChat.js +46 -41
  83. package/lib/esm/components/livechatwidget/common/startChatErrorHandler.js +5 -4
  84. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +25 -20
  85. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -4
  86. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +9 -4
  87. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +9 -6
  88. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +8 -6
  89. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +7 -1
  90. package/lib/esm/components/webchatcontainerstateful/common/DemoChatAdapter.js +88 -65
  91. package/lib/esm/components/webchatcontainerstateful/common/DemoChatSDK.js +26 -7
  92. package/lib/esm/components/webchatcontainerstateful/common/DesignerChatAdapter.js +49 -26
  93. package/lib/esm/components/webchatcontainerstateful/common/DesignerChatSDK.js +57 -35
  94. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +63 -52
  95. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +95 -61
  96. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +6 -1
  97. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +6 -1
  98. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/markdownrenderers/HyperlinkTextOverrideRenderer.js +53 -39
  99. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +88 -60
  100. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +5 -6
  101. package/lib/esm/controller/componentController.js +3 -2
  102. package/lib/esm/firstresponselatency/FirstMessageTrackerFromBot.js +112 -0
  103. package/lib/esm/firstresponselatency/FirstResponseLatencyTracker.js +165 -116
  104. package/lib/esm/firstresponselatency/util.js +12 -0
  105. package/lib/esm/plugins/createChatTranscript.js +88 -58
  106. package/lib/esm/plugins/newMessageEventHandler.js +4 -4
  107. package/lib/types/assets/Audios.d.ts +1 -1
  108. package/lib/types/assets/Icons.d.ts +16 -16
  109. package/lib/types/common/Constants.d.ts +283 -277
  110. package/lib/types/common/KeyCodes.d.ts +5 -5
  111. package/lib/types/common/contextDataStore/DataStoreManager.d.ts +4 -4
  112. package/lib/types/common/facades/FacadeChatSDK.d.ts +75 -74
  113. package/lib/types/common/facades/types/IFacadeChatSDKInput.d.ts +13 -13
  114. package/lib/types/common/interfaces/IContextDataStore.d.ts +14 -14
  115. package/lib/types/common/interfaces/ITimer.d.ts +3 -3
  116. package/lib/types/common/storage/default/defaultCacheManager.d.ts +5 -5
  117. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +4 -4
  118. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -6
  119. package/lib/types/common/telemetry/AppInsightsEvents.d.ts +1 -0
  120. package/lib/types/common/telemetry/ScenarioMarker.d.ts +19 -0
  121. package/lib/types/common/telemetry/TelemetryConstants.d.ts +272 -260
  122. package/lib/types/common/telemetry/TelemetryHelper.d.ts +48 -43
  123. package/lib/types/common/telemetry/TelemetryManager.d.ts +12 -12
  124. package/lib/types/common/telemetry/defaultConfigs/defaultAppInsightsConfig.d.ts +2 -0
  125. package/lib/types/common/telemetry/defaultConfigs/defaultAriaConfig.d.ts +2 -2
  126. package/lib/types/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.d.ts +2 -2
  127. package/lib/types/common/telemetry/defaultConfigs/defaultTelemetryInternalData.d.ts +2 -2
  128. package/lib/types/common/telemetry/definitions/Contracts.d.ts +77 -77
  129. package/lib/types/common/telemetry/definitions/Payload.d.ts +105 -105
  130. package/lib/types/common/telemetry/interfaces/IAppInsightsConfig.d.ts +4 -0
  131. package/lib/types/common/telemetry/interfaces/IAriaConfigurations.d.ts +18 -18
  132. package/lib/types/common/telemetry/interfaces/IChatSDKLogger.d.ts +6 -5
  133. package/lib/types/common/telemetry/interfaces/IInternalTelemetryData.d.ts +23 -21
  134. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +48 -48
  135. package/lib/types/common/telemetry/interfaces/ITelemetryEvents.d.ts +7 -7
  136. package/lib/types/common/telemetry/loggers/appInsightsLogger.d.ts +10 -0
  137. package/lib/types/common/telemetry/loggers/ariaTelemetryLogger.d.ts +2 -2
  138. package/lib/types/common/telemetry/loggers/consoleLogger.d.ts +2 -2
  139. package/lib/types/common/utils.d.ts +49 -49
  140. package/lib/types/components/callingcontainerstateful/CallingContainerStateful.d.ts +4 -3
  141. package/lib/types/components/callingcontainerstateful/ICallingContainerStatefulProps.d.ts +4 -4
  142. package/lib/types/components/chatbuttonstateful/ChatButtonStateful.d.ts +4 -3
  143. package/lib/types/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.d.ts +2 -2
  144. package/lib/types/components/chatbuttonstateful/interfaces/IChatButtonStatefulParams.d.ts +17 -17
  145. package/lib/types/components/confirmationpanestateful/ConfirmationPaneStateful.d.ts +4 -3
  146. package/lib/types/components/confirmationpanestateful/common/defaultProps/defaultConfirmationPaneLocalizedTexts.d.ts +2 -2
  147. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneInputs.d.ts +4 -4
  148. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneLocalizedText.d.ts +10 -10
  149. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +13 -13
  150. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulProps.d.ts +8 -8
  151. package/lib/types/components/dimlayer/DimLayer.d.ts +6 -5
  152. package/lib/types/components/draggable/DraggableChatWidget.d.ts +9 -9
  153. package/lib/types/components/draggable/DraggableEventEmitter.d.ts +27 -27
  154. package/lib/types/components/draggable/DraggableEventNames.d.ts +6 -6
  155. package/lib/types/components/draggable/DraggableEventReceiver.d.ts +27 -27
  156. package/lib/types/components/draggable/IDraggableElementPosition.d.ts +5 -5
  157. package/lib/types/components/draggable/IDraggableElementPositionDelta.d.ts +5 -5
  158. package/lib/types/components/draggable/IDraggableEvent.d.ts +12 -12
  159. package/lib/types/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.d.ts +4 -3
  160. package/lib/types/components/emailtranscriptpanestateful/interfaces/IChatTranscriptBody.d.ts +5 -5
  161. package/lib/types/components/emailtranscriptpanestateful/interfaces/IEmailTranscriptPaneProps.d.ts +11 -11
  162. package/lib/types/components/footerstateful/FooterStateful.d.ts +3 -2
  163. package/lib/types/components/footerstateful/audionotificationstateful/AudioNotificationStateful.d.ts +4 -3
  164. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationProps.d.ts +3 -3
  165. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +4 -4
  166. package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.d.ts +4 -4
  167. package/lib/types/components/footerstateful/downloadtranscriptstateful/common/defaultLibraryScripts.d.ts +23 -23
  168. package/lib/types/components/footerstateful/downloadtranscriptstateful/interfaces/IDownloadTranscriptProps.d.ts +19 -19
  169. package/lib/types/components/footerstateful/downloadtranscriptstateful/interfaces/IWebChatTranscriptConfig.d.ts +14 -14
  170. package/lib/types/components/footerstateful/downloadtranscriptstateful/interfaces/TranscriptHtmlScripts.d.ts +33 -33
  171. package/lib/types/components/headerstateful/HeaderStateful.d.ts +4 -3
  172. package/lib/types/components/headerstateful/common/styleProps/defaultOutOfOfficeHeaderStyleProps.d.ts +2 -2
  173. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +33 -33
  174. package/lib/types/components/livechatwidget/LiveChatWidget.d.ts +4 -3
  175. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -14
  176. package/lib/types/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.d.ts +12 -12
  177. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -5
  178. package/lib/types/components/livechatwidget/common/ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber.d.ts +7 -7
  179. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -6
  180. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -7
  181. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -7
  182. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -9
  183. package/lib/types/components/livechatwidget/common/authHelper.d.ts +18 -18
  184. package/lib/types/components/livechatwidget/common/chatDisconnectHelper.d.ts +4 -4
  185. package/lib/types/components/livechatwidget/common/createAdapter.d.ts +3 -3
  186. package/lib/types/components/livechatwidget/common/createDownloadTranscriptProps.d.ts +25 -25
  187. package/lib/types/components/livechatwidget/common/createFooter.d.ts +4 -3
  188. package/lib/types/components/livechatwidget/common/createInternetConnectionChangeHandler.d.ts +2 -2
  189. package/lib/types/components/livechatwidget/common/createMarkdown.d.ts +2 -2
  190. package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -2
  191. package/lib/types/components/livechatwidget/common/defaultStyles/defaultLiveChatWidgetGeneralStyles.d.ts +2 -2
  192. package/lib/types/components/livechatwidget/common/disposeTelemetryLoggers.d.ts +1 -1
  193. package/lib/types/components/livechatwidget/common/endChat.d.ts +13 -13
  194. package/lib/types/components/livechatwidget/common/getGeneralStylesForButton.d.ts +3 -3
  195. package/lib/types/components/livechatwidget/common/getMockChatSDKIfApplicable.d.ts +1 -1
  196. package/lib/types/components/livechatwidget/common/helpers/markdownHelper.d.ts +2 -2
  197. package/lib/types/components/livechatwidget/common/initCallingSdk.d.ts +2 -2
  198. package/lib/types/components/livechatwidget/common/initConfirmationPropsComposer.d.ts +3 -3
  199. package/lib/types/components/livechatwidget/common/initWebChatComposer.d.ts +7 -7
  200. package/lib/types/components/livechatwidget/common/liveChatConfigUtils.d.ts +3 -3
  201. package/lib/types/components/livechatwidget/common/overridePropsOnMockIfApplicable.d.ts +3 -3
  202. package/lib/types/components/livechatwidget/common/persistentChatHelper.d.ts +1 -1
  203. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +12 -12
  204. package/lib/types/components/livechatwidget/common/registerTelemetryLoggers.d.ts +4 -4
  205. package/lib/types/components/livechatwidget/common/renderSurveyHelpers.d.ts +10 -10
  206. package/lib/types/components/livechatwidget/common/setPostChatContextAndLoadSurvey.d.ts +4 -4
  207. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -1
  208. package/lib/types/components/livechatwidget/common/startChat.d.ts +11 -11
  209. package/lib/types/components/livechatwidget/common/startChatErrorHandler.d.ts +6 -6
  210. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +4 -4
  211. package/lib/types/components/livechatwidget/common/updateSessionDataForTelemetry.d.ts +4 -4
  212. package/lib/types/components/livechatwidget/interfaces/IBotAuthActivitySubscriberOptionalParams.d.ts +4 -4
  213. package/lib/types/components/livechatwidget/interfaces/IDraggableChatWidgetProps.d.ts +10 -10
  214. package/lib/types/components/livechatwidget/interfaces/IFeatureConfigProps.d.ts +3 -3
  215. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +17 -17
  216. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +21 -21
  217. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +70 -68
  218. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetStyleProps.d.ts +5 -5
  219. package/lib/types/components/livechatwidget/interfaces/IMockProps.d.ts +8 -8
  220. package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -22
  221. package/lib/types/components/livechatwidget/interfaces/ISendBox.d.ts +12 -12
  222. package/lib/types/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.d.ts +3 -3
  223. package/lib/types/components/loadingpanestateful/LoadingPaneStateful.d.ts +3 -2
  224. package/lib/types/components/loadingpanestateful/common/defaultStyleProps/defaultgeneralLoadingPaneStyleProps.d.ts +2 -2
  225. package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -2
  226. package/lib/types/components/notificationpanestateful/NotificationPaneStateful.d.ts +4 -3
  227. package/lib/types/components/notificationpanestateful/defaultProps/defaultChatDisconnectControlProps.d.ts +2 -2
  228. package/lib/types/components/notificationpanestateful/defaultProps/defaultChatDisconnectStyleProps.d.ts +2 -2
  229. package/lib/types/components/notificationpanestateful/interfaces/INotificationPaneStatefulProps.d.ts +13 -13
  230. package/lib/types/components/ooohpanestateful/OOOHPaneStateful.d.ts +4 -3
  231. package/lib/types/components/ooohpanestateful/common/defaultStyleProps/defaultgeneralOOOHPaneStyleProps.d.ts +2 -2
  232. package/lib/types/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.d.ts +4 -3
  233. package/lib/types/components/postchatloadingpanestateful/common/defaultgeneralPostChatLoadingPaneStyleProps.d.ts +2 -2
  234. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +4 -3
  235. package/lib/types/components/postchatsurveypanestateful/common/defaultStyleProps/defaultgeneralPostChatSurveyPaneStyleProps.d.ts +2 -2
  236. package/lib/types/components/postchatsurveypanestateful/common/isValidSurveyUrl.d.ts +2 -2
  237. package/lib/types/components/postchatsurveypanestateful/enums/CustomerVoiceEvents.d.ts +5 -5
  238. package/lib/types/components/postchatsurveypanestateful/enums/PostChatSurveyMode.d.ts +4 -4
  239. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +5 -5
  240. package/lib/types/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.d.ts +4 -3
  241. package/lib/types/components/prechatsurveypanestateful/common/defaultProps/defaultPreChatSurveyLocalizedTexts.d.ts +2 -2
  242. package/lib/types/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.d.ts +2 -2
  243. package/lib/types/components/prechatsurveypanestateful/interfaces/IPreChatSurveyPaneStatefulParams.d.ts +5 -5
  244. package/lib/types/components/proactivechatpanestateful/ProactiveChatPaneStateful.d.ts +3 -2
  245. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -3
  246. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatPaneStatefulProps.d.ts +4 -4
  247. package/lib/types/components/reconnectchatpanestateful/ReconnectChatPaneStateful.d.ts +4 -3
  248. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatContext.d.ts +4 -4
  249. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatOptionalParams.d.ts +3 -3
  250. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulParams.d.ts +5 -5
  251. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +5 -5
  252. package/lib/types/components/startchaterrorpanestateful/StartChatErrorPaneStateful.d.ts +4 -3
  253. package/lib/types/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneGeneralStyleProps.d.ts +2 -2
  254. package/lib/types/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneIconImageProps.d.ts +2 -2
  255. package/lib/types/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneIconStyleProps.d.ts +2 -2
  256. package/lib/types/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneSubtitleStyleProps.d.ts +2 -2
  257. package/lib/types/components/startchaterrorpanestateful/common/defaultStartChatErrorPaneTitleStyleProps.d.ts +2 -2
  258. package/lib/types/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneClassNames.d.ts +5 -5
  259. package/lib/types/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneComponentOverrides.d.ts +6 -6
  260. package/lib/types/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneControlProps.d.ts +14 -14
  261. package/lib/types/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneProps.d.ts +8 -8
  262. package/lib/types/components/startchaterrorpanestateful/interfaces/IStartChatErrorPaneStyleProps.d.ts +10 -10
  263. package/lib/types/components/webchatcontainerstateful/WebChatContainerStateful.d.ts +4 -3
  264. package/lib/types/components/webchatcontainerstateful/common/DemoChatAdapter.d.ts +10 -10
  265. package/lib/types/components/webchatcontainerstateful/common/DemoChatSDK.d.ts +6 -6
  266. package/lib/types/components/webchatcontainerstateful/common/DesignerChatAdapter.d.ts +8 -8
  267. package/lib/types/components/webchatcontainerstateful/common/DesignerChatSDK.d.ts +31 -31
  268. package/lib/types/components/webchatcontainerstateful/common/MockBotCardCommandType.d.ts +6 -6
  269. package/lib/types/components/webchatcontainerstateful/common/MockBotCommand.d.ts +11 -11
  270. package/lib/types/components/webchatcontainerstateful/common/defaultProps/defaultAttachmentProps.d.ts +2 -2
  271. package/lib/types/components/webchatcontainerstateful/common/defaultProps/defaultMarkdownLocalizedTexts.d.ts +2 -2
  272. package/lib/types/components/webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts.d.ts +2 -2
  273. package/lib/types/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.d.ts +2 -2
  274. package/lib/types/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.d.ts +2 -2
  275. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -2
  276. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultWebChatStatefulContainerStyles.d.ts +2 -2
  277. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultWebChatStyles.d.ts +2 -2
  278. package/lib/types/components/webchatcontainerstateful/common/mockadapter.d.ts +14 -14
  279. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +45 -45
  280. package/lib/types/components/webchatcontainerstateful/common/utils/BrowserInfo.d.ts +5 -5
  281. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +7 -7
  282. package/lib/types/components/webchatcontainerstateful/common/utils/attachmentActivityUtils.d.ts +9 -9
  283. package/lib/types/components/webchatcontainerstateful/common/utils/chatAdapterUtils.d.ts +9 -9
  284. package/lib/types/components/webchatcontainerstateful/common/utils/isMaskingFromCustomer.d.ts +2 -2
  285. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +8 -8
  286. package/lib/types/components/webchatcontainerstateful/interfaces/IAttachmentProps.d.ts +5 -5
  287. package/lib/types/components/webchatcontainerstateful/interfaces/IBotAuthConfig.d.ts +4 -4
  288. package/lib/types/components/webchatcontainerstateful/interfaces/IBotMagicCodeConfig.d.ts +4 -4
  289. package/lib/types/components/webchatcontainerstateful/interfaces/IDataMaskingInfo.d.ts +6 -6
  290. package/lib/types/components/webchatcontainerstateful/interfaces/IDataMaskingRule.d.ts +3 -3
  291. package/lib/types/components/webchatcontainerstateful/interfaces/IDataMaskingSetting.d.ts +4 -4
  292. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +37 -37
  293. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatAction.d.ts +4 -4
  294. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +28 -28
  295. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatProps.d.ts +39 -39
  296. package/lib/types/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.d.ts +3 -3
  297. package/lib/types/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.d.ts +3 -3
  298. package/lib/types/components/webchatcontainerstateful/webchatcontroller/enums/BrowserVendor.d.ts +9 -9
  299. package/lib/types/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineActivityType.d.ts +4 -4
  300. package/lib/types/components/webchatcontainerstateful/webchatcontroller/enums/DirectLineSenderRole.d.ts +5 -5
  301. package/lib/types/components/webchatcontainerstateful/webchatcontroller/enums/MessageType.d.ts +11 -11
  302. package/lib/types/components/webchatcontainerstateful/webchatcontroller/enums/NotificationLevel.d.ts +6 -6
  303. package/lib/types/components/webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios.d.ts +11 -11
  304. package/lib/types/components/webchatcontainerstateful/webchatcontroller/enums/SendStatus.d.ts +5 -5
  305. package/lib/types/components/webchatcontainerstateful/webchatcontroller/enums/WebChatActionType.d.ts +24 -24
  306. package/lib/types/components/webchatcontainerstateful/webchatcontroller/markdownrenderers/HyperlinkTextOverrideRenderer.d.ts +9 -9
  307. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsEgressMiddleware.d.ts +2 -2
  308. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/adaptermiddlewares/formatTagsIngressMiddleware.d.ts +2 -2
  309. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +10 -10
  310. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  311. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.d.ts +6 -6
  312. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/Attachment.d.ts +3 -2
  313. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/AttachmentContent.d.ts +3 -2
  314. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/AttachmentIcon.d.ts +3 -2
  315. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/DownloadBlockedAttachment.d.ts +3 -2
  316. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/FileScanStatus.d.ts +6 -6
  317. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/MaliciousAttachment.d.ts +3 -2
  318. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/ScanInProgressAttachment.d.ts +3 -2
  319. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachments/Spinner.d.ts +3 -2
  320. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware.d.ts +8 -8
  321. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware.d.ts +2 -2
  322. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAttachmentContentStyles.d.ts +1 -2
  323. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAttachmentDividerStyles.d.ts +1 -2
  324. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAttachmentDownloadIconStyles.d.ts +1 -2
  325. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAttachmentFileNameStyles.d.ts +1 -2
  326. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAttachmentSizeStyles.d.ts +1 -2
  327. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAtttachmentAdaptiveCardStyles.d.ts +1 -2
  328. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAtttachmentIconStyles.d.ts +1 -2
  329. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAtttachmentStyles.d.ts +1 -2
  330. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAvatarStyles.d.ts +1 -2
  331. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAvatarTextStyles.d.ts +1 -2
  332. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +1 -2
  333. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSentMessageAnchorStyles.d.ts +1 -2
  334. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.d.ts +3 -3
  335. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageStyles.d.ts +11 -11
  336. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampContentStyles.d.ts +2 -2
  337. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampFailedStyles.d.ts +1 -2
  338. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTimestampRetryStyles.d.ts +1 -2
  339. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTypingIndicatorBubbleStyles.d.ts +1 -2
  340. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTypingIndicatorContainerStyles.d.ts +1 -2
  341. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultTypingIndicatorMessageStyles.d.ts +1 -2
  342. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.d.ts +3 -3
  343. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageStyles.d.ts +3 -3
  344. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/groupActivitiesMiddleware.d.ts +10 -10
  345. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/index.d.ts +10 -10
  346. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageSequenceIdOverrideMiddleware.d.ts +4 -4
  347. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware.d.ts +4 -4
  348. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.d.ts +2 -1
  349. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.d.ts +2 -1
  350. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.d.ts +2 -1
  351. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/toastMiddleware.d.ts +2 -2
  352. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware.d.ts +7 -6
  353. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentProcessingMiddleware.d.ts +10 -10
  354. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware.d.ts +11 -11
  355. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/channelDataMiddleware.d.ts +10 -10
  356. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.d.ts +11 -11
  357. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.d.ts +11 -11
  358. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware.d.ts +10 -10
  359. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware.d.ts +10 -10
  360. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware.d.ts +10 -10
  361. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator.d.ts +11 -11
  362. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware.d.ts +10 -10
  363. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware.d.ts +10 -10
  364. package/lib/types/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.d.ts +12 -12
  365. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -1
  366. package/lib/types/contexts/ChatAdapterStore.d.ts +1 -2
  367. package/lib/types/contexts/ChatContextStore.d.ts +1 -1
  368. package/lib/types/contexts/ChatSDKStore.d.ts +1 -1
  369. package/lib/types/contexts/FacadeChatSDKStore.d.ts +1 -1
  370. package/lib/types/contexts/common/ConversationState.d.ts +13 -13
  371. package/lib/types/contexts/common/ILiveChatWidgetAction.d.ts +5 -5
  372. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +63 -63
  373. package/lib/types/contexts/common/ILiveChatWidgetLocalizedTexts.d.ts +40 -40
  374. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +48 -48
  375. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +3 -3
  376. package/lib/types/contexts/common/StartChatFailureType.d.ts +5 -5
  377. package/lib/types/contexts/createReducer.d.ts +4 -4
  378. package/lib/types/controller/componentController.d.ts +16 -16
  379. package/lib/types/firstresponselatency/Constants.d.ts +30 -30
  380. package/lib/types/firstresponselatency/FirstMessageTrackerFromBot.d.ts +1 -0
  381. package/lib/types/firstresponselatency/FirstResponseLatencyTracker.d.ts +22 -17
  382. package/lib/types/firstresponselatency/util.d.ts +7 -6
  383. package/lib/types/hooks/useChatAdapterStore.d.ts +2 -2
  384. package/lib/types/hooks/useChatContextStore.d.ts +5 -5
  385. package/lib/types/hooks/useChatSDKStore.d.ts +2 -2
  386. package/lib/types/hooks/useDebounce.d.ts +3 -3
  387. package/lib/types/hooks/useFacadeChatSDKStore.d.ts +3 -3
  388. package/lib/types/hooks/useWindowDimensions.d.ts +4 -4
  389. package/lib/types/index.d.ts +11 -11
  390. package/lib/types/plugins/createChatTranscript.d.ts +3 -3
  391. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -2
  392. package/package.json +41 -16
@@ -1,3 +1,8 @@
1
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
3
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
4
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
5
+ 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); }
1
6
  import { HtmlClassNames, HtmlIdNames } from "../../../../common/Constants";
2
7
  import { NotificationLevel } from "../enums/NotificationLevel";
3
8
  import { WebChatActionType } from "../enums/WebChatActionType";
@@ -5,73 +10,96 @@ import { WebChatStoreLoader } from "../WebChatStoreLoader";
5
10
  import { setFocusOnSendBox } from "../../../../common/utils";
6
11
  import { BroadcastService } from "@microsoft/omnichannel-chat-components";
7
12
  import { BroadcastEvent } from "../../../../common/telemetry/TelemetryConstants";
8
- export class NotificationHandler {
9
- static notify(id, level, message) {
10
- if (WebChatStoreLoader.store) {
11
- WebChatStoreLoader.store.dispatch({
12
- type: WebChatActionType.WEB_CHAT_SET_NOTIFICATION,
13
- payload: {
14
- id,
15
- level,
16
- message
17
- }
18
- });
19
- NotificationHandler.setFocusOnNotificationCloseButton();
20
- }
13
+ export let NotificationHandler = /*#__PURE__*/function () {
14
+ function NotificationHandler() {
15
+ _classCallCheck(this, NotificationHandler);
21
16
  }
22
- static dismissNotification(id) {
23
- if (WebChatStoreLoader.store) {
24
- WebChatStoreLoader.store.dispatch({
25
- type: WebChatActionType.WEB_CHAT_DISMISS_NOTIFICATION,
17
+ _createClass(NotificationHandler, null, [{
18
+ key: "notify",
19
+ value: function notify(id, level, message) {
20
+ if (WebChatStoreLoader.store) {
21
+ WebChatStoreLoader.store.dispatch({
22
+ type: WebChatActionType.WEB_CHAT_SET_NOTIFICATION,
23
+ payload: {
24
+ id,
25
+ level,
26
+ message
27
+ }
28
+ });
29
+ NotificationHandler.setFocusOnNotificationCloseButton();
30
+ }
31
+ }
32
+ }, {
33
+ key: "dismissNotification",
34
+ value: function dismissNotification(id) {
35
+ if (WebChatStoreLoader.store) {
36
+ WebChatStoreLoader.store.dispatch({
37
+ type: WebChatActionType.WEB_CHAT_DISMISS_NOTIFICATION,
38
+ payload: {
39
+ id
40
+ }
41
+ });
42
+ }
43
+ }
44
+ }, {
45
+ key: "notifyError",
46
+ value: function notifyError(id, message) {
47
+ BroadcastService.postMessage({
48
+ eventName: BroadcastEvent.OnWidgetError,
26
49
  payload: {
27
- id
50
+ errorMessage: message
28
51
  }
29
52
  });
53
+ this.notify(id, NotificationLevel.Error, message);
30
54
  }
31
- }
32
- static notifyError(id, message) {
33
- BroadcastService.postMessage({
34
- eventName: BroadcastEvent.OnWidgetError,
35
- payload: {
36
- errorMessage: message
55
+ }, {
56
+ key: "notifyWarning",
57
+ value: function notifyWarning(id, message) {
58
+ this.notify(id, NotificationLevel.Warning, message);
59
+ }
60
+ }, {
61
+ key: "notifyInfo",
62
+ value: function notifyInfo(id, message) {
63
+ this.notify(id, NotificationLevel.Info, message);
64
+ }
65
+ }, {
66
+ key: "notifySuccess",
67
+ value: function notifySuccess(id, message) {
68
+ this.notify(id, NotificationLevel.Success, message);
69
+ }
70
+ }, {
71
+ key: "notifyWithLevel",
72
+ value: function notifyWithLevel(id, message, level) {
73
+ if (!level) {
74
+ this.notifyInfo(id, message);
75
+ } else {
76
+ this.notify(id, level, message);
37
77
  }
38
- });
39
- this.notify(id, NotificationLevel.Error, message);
40
- }
41
- static notifyWarning(id, message) {
42
- this.notify(id, NotificationLevel.Warning, message);
43
- }
44
- static notifyInfo(id, message) {
45
- this.notify(id, NotificationLevel.Info, message);
46
- }
47
- static notifySuccess(id, message) {
48
- this.notify(id, NotificationLevel.Success, message);
49
- }
50
- static notifyWithLevel(id, message, level) {
51
- if (!level) {
52
- this.notifyInfo(id, message);
53
- } else {
54
- this.notify(id, level, message);
55
78
  }
56
- }
57
79
 
58
- /* Bypass WebChat behavior and focus on banner close button */
59
- static setFocusOnNotificationCloseButton() {
60
- const expandButton = document.querySelector(`#${HtmlIdNames.MSLiveChatWidget} .${HtmlClassNames.webChatBannerExpandButton}`);
61
- if (expandButton) {
62
- expandButton.focus();
63
- return;
80
+ /* Bypass WebChat behavior and focus on banner close button */
81
+ }, {
82
+ key: "setFocusOnNotificationCloseButton",
83
+ value: function setFocusOnNotificationCloseButton() {
84
+ const expandButton = document.querySelector(`#${HtmlIdNames.MSLiveChatWidget} .${HtmlClassNames.webChatBannerExpandButton}`);
85
+ if (expandButton) {
86
+ expandButton.focus();
87
+ return;
88
+ }
89
+ const closeButton = document.querySelector(`#${HtmlIdNames.MSLiveChatWidget} .${HtmlClassNames.webChatBannerCloseButton}`);
90
+ if (closeButton) {
91
+ closeButton.focus();
92
+ NotificationHandler.registerOnCloseEvent(closeButton);
93
+ return;
94
+ }
64
95
  }
65
- const closeButton = document.querySelector(`#${HtmlIdNames.MSLiveChatWidget} .${HtmlClassNames.webChatBannerCloseButton}`);
66
- if (closeButton) {
67
- closeButton.focus();
68
- NotificationHandler.registerOnCloseEvent(closeButton);
69
- return;
96
+ }, {
97
+ key: "registerOnCloseEvent",
98
+ value: function registerOnCloseEvent(button) {
99
+ button.onclick = () => {
100
+ setFocusOnSendBox();
101
+ };
70
102
  }
71
- }
72
- static registerOnCloseEvent(button) {
73
- button.onclick = () => {
74
- setFocusOnSendBox();
75
- };
76
- }
77
- }
103
+ }]);
104
+ return NotificationHandler;
105
+ }();
@@ -16,6 +16,7 @@ export const getLiveChatWidgetContextInitialState = props => {
16
16
  const initialState = defaultClientDataStoreProvider(cacheTtlInMins, storageType).getData(widgetCacheId);
17
17
  if (!isNullOrUndefined(initialState)) {
18
18
  const initialStateFromCache = JSON.parse(initialState);
19
+ const outsideOperatingHours = isOutsideOperatingHours();
19
20
 
20
21
  /*
21
22
  * this step is needed to avoid the pre-chat pane to be injected in the DOM when the widget is reloaded, because wont be visible
@@ -23,17 +24,15 @@ export const getLiveChatWidgetContextInitialState = props => {
23
24
  * as part of the flow, the pre-chat will be detected and then it will be displayed properly
24
25
  * this case is only and only for pre-chat pane.
25
26
  * **/
26
- if (initialStateFromCache.appStates.conversationState === ConversationState.Prechat) {
27
+ if (initialStateFromCache.appStates.conversationState === ConversationState.Prechat || initialStateFromCache.appStates.conversationState === ConversationState.OutOfOffice || outsideOperatingHours) {
27
28
  initialStateFromCache.appStates.conversationState = ConversationState.Closed;
29
+ // if we are resetting the conversation state, there is no point to obtain minimized state from cache
30
+ initialStateFromCache.appStates.isMinimized = undefined;
28
31
  }
29
-
30
32
  // we are always setting the chatConfig from the props to avoid any issues with the cache
31
33
  initialStateFromCache.domainStates.liveChatConfig = props.chatConfig;
32
-
33
34
  // Cache the result of isOutsideOperatingHours() to ensure consistency
34
- const outsideOperatingHours = isOutsideOperatingHours();
35
35
  initialStateFromCache.appStates.outsideOperatingHours = outsideOperatingHours;
36
- initialStateFromCache.appStates.conversationState = outsideOperatingHours ? ConversationState.OutOfOffice : initialStateFromCache.appStates.conversationState;
37
36
  return initialStateFromCache;
38
37
  }
39
38
  const LiveChatWidgetContextInitialState = {
@@ -58,7 +57,7 @@ export const getLiveChatWidgetContextInitialState = props => {
58
57
  startChatFailureType: StartChatFailureType.Generic
59
58
  },
60
59
  appStates: {
61
- conversationState: isOutsideOperatingHours() ? ConversationState.OutOfOffice : ConversationState.Closed,
60
+ conversationState: ConversationState.Closed,
62
61
  isMinimized: undefined,
63
62
  previousElementIdOnFocusBeforeModalOpen: null,
64
63
  startChatFailed: false,
@@ -17,7 +17,7 @@ export const shouldShowEmailTranscriptPane = state => {
17
17
  return state.uiStates.showEmailTranscriptPane;
18
18
  };
19
19
  export const shouldShowWebChatContainer = state => {
20
- return state.appStates.conversationState === ConversationState.Active || state.appStates.conversationState === ConversationState.InActive;
20
+ return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.Active || state.appStates.conversationState === ConversationState.InActive;
21
21
  };
22
22
  export const shouldShowLoadingPane = state => {
23
23
  return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.Loading;
@@ -32,7 +32,8 @@ export const shouldShowPostChatLoadingPane = state => {
32
32
  return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.PostchatLoading;
33
33
  };
34
34
  export const shouldShowOutOfOfficeHoursPane = state => {
35
- return !state.appStates.isMinimized && state.appStates.conversationState === ConversationState.OutOfOffice;
35
+ // Show OOOH pane only when the conversation state is Closed and outside operating hours is true
36
+ return !state.appStates.isMinimized && state.appStates.outsideOperatingHours === true && state.appStates.conversationState === ConversationState.OutOfOffice;
36
37
  };
37
38
  export const shouldShowPreChatSurveyPane = state => {
38
39
  return state.appStates.conversationState === ConversationState.Prechat;
@@ -0,0 +1,112 @@
1
+ import { BroadcastEvent, LogLevel, TelemetryEvent } from "../common/telemetry/TelemetryConstants";
2
+ import { BroadcastService } from "@microsoft/omnichannel-chat-components";
3
+ import { TelemetryHelper } from "../common/telemetry/TelemetryHelper";
4
+ import { createTrackingMessage } from "./util";
5
+
6
+ // This tracker is event based, this is since we are tracking events coming from different sources
7
+ // with different timeline, therefore this is a functional approach to track the events, instead of a class based approach
8
+ export const createTrackingForFirstMessage = () => {
9
+ // Reset the tracking variables
10
+ let startTracking = false;
11
+ let stopTracking = false;
12
+ let startTime = 0;
13
+ let stopTime = 0;
14
+ let stopTrackingMessage;
15
+ let flag = false;
16
+ const isMessageFromValidSender = payload => {
17
+ var _payload$tags;
18
+ // agent scenario
19
+ if (payload !== null && payload !== void 0 && (_payload$tags = payload.tags) !== null && _payload$tags !== void 0 && _payload$tags.includes("public")) {
20
+ return false;
21
+ }
22
+ return true;
23
+ };
24
+ const widgetLoadListener = BroadcastService.getMessageByEventName(TelemetryEvent.WidgetLoadComplete).subscribe(() => {
25
+ if (startTracking) return;
26
+ startTracking = true;
27
+ startTime = new Date().getTime();
28
+ });
29
+ const newMessageListener = BroadcastService.getMessageByEventName(BroadcastEvent.NewMessageReceived).subscribe(message => {
30
+ const payload = message.payload;
31
+
32
+ // we only care for bot, so we need to check if the message is from the bot
33
+ // pending to add typing message indicator signal detection
34
+
35
+ if (isMessageFromValidSender(payload)) {
36
+ if (startTracking && !stopTracking) {
37
+ stopTime = new Date().getTime();
38
+ const elapsedTime = stopTime - startTime;
39
+ stopTracking = true;
40
+ stopTrackingMessage = createTrackingMessage(payload, "botMessage");
41
+ notifyFMLTrackingCompleted();
42
+ TelemetryHelper.logActionEvent(LogLevel.INFO, {
43
+ Event: TelemetryEvent.BotFirstMessageLapTrack,
44
+ Description: "First Message from Bot latency tracking",
45
+ CustomProperties: {
46
+ elapsedTime,
47
+ widgetLoadedAt: startTime,
48
+ botMessage: stopTrackingMessage
49
+ }
50
+ });
51
+ }
52
+ }
53
+
54
+ // this track only first message, if coming from the bot or not
55
+ // the only difference is that it logs only those from bot
56
+ disconnectListener();
57
+ });
58
+ const notifyFMLTrackingCompleted = () => {
59
+ ackListener();
60
+ // Retry sending until flag is true, but do not block the main thread
61
+ const interval = setInterval(() => {
62
+ if (flag) {
63
+ clearInterval(interval);
64
+ } else {
65
+ BroadcastService.postMessage({
66
+ eventName: BroadcastEvent.FMLTrackingCompleted,
67
+ payload: null
68
+ });
69
+ }
70
+ }, 100);
71
+ };
72
+ const ackListener = () => {
73
+ const listen = BroadcastService.getMessageByEventName(BroadcastEvent.FMLTrackingCompletedAck).subscribe(() => {
74
+ flag = true;
75
+ listen.unsubscribe();
76
+ });
77
+ };
78
+
79
+ // Rehydrate message is received when the widget is reloaded, this is to ensure that we are not tracking messages that are not part of the current conversation
80
+ // No need to keep listerning for tracking, enforcing disconnection for the listners
81
+ const rehydrateListener = BroadcastService.getMessageByEventName(TelemetryEvent.RehydrateMessageReceived).subscribe(() => {
82
+ startTracking = false;
83
+ stopTracking = false;
84
+ disconnectListener();
85
+ });
86
+
87
+ // Rehydrate message is received when the widget is reloaded, this is to ensure that we are not tracking messages that are not part of the current conversation
88
+ // No need to keep listerning for tracking, enforcing disconnection for the listners
89
+ const historyListener = BroadcastService.getMessageByEventName(BroadcastEvent.HistoryMessageReceived).subscribe(() => {
90
+ startTracking = false;
91
+ stopTracking = false;
92
+ disconnectListener();
93
+ });
94
+ const offlineNetworkListener = BroadcastService.getMessageByEventName(TelemetryEvent.NetworkDisconnected).subscribe(() => {
95
+ startTracking = false;
96
+ stopTracking = false;
97
+ disconnectListener();
98
+ TelemetryHelper.logActionEvent(LogLevel.INFO, {
99
+ Event: TelemetryEvent.BotFirstMessageLapTrackError,
100
+ Description: "Tracker Stopped due to network disconnection"
101
+ });
102
+ });
103
+
104
+ // this is to ensure that we are not tracking messages that are not part of the current conversation
105
+ const disconnectListener = () => {
106
+ historyListener.unsubscribe();
107
+ rehydrateListener.unsubscribe();
108
+ newMessageListener.unsubscribe();
109
+ widgetLoadListener.unsubscribe();
110
+ offlineNetworkListener.unsubscribe();
111
+ };
112
+ };
@@ -1,145 +1,194 @@
1
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
3
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
1
4
  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; }
2
5
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
6
  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); }
4
- import { LogLevel, TelemetryEvent } from "../common/telemetry/TelemetryConstants";
7
+ import { BroadcastEvent, LogLevel, TelemetryEvent } from "../common/telemetry/TelemetryConstants";
8
+ import { BroadcastService } from "@microsoft/omnichannel-chat-components";
5
9
  import { TelemetryHelper } from "../common/telemetry/TelemetryHelper";
6
- export class FirstResponseLatencyTracker {
7
- constructor() {
10
+ export let FirstResponseLatencyTracker = /*#__PURE__*/function () {
11
+ function FirstResponseLatencyTracker() {
12
+ _classCallCheck(this, FirstResponseLatencyTracker);
8
13
  _defineProperty(this, "isABotConversation", false);
9
14
  _defineProperty(this, "isStarted", false);
10
15
  _defineProperty(this, "isEnded", false);
11
16
  _defineProperty(this, "startTrackingMessage", void 0);
12
17
  _defineProperty(this, "stopTrackingMessage", void 0);
18
+ _defineProperty(this, "isReady", false);
19
+ _defineProperty(this, "offlineNetworkListener", BroadcastService.getMessageByEventName(TelemetryEvent.NetworkDisconnected).subscribe(() => {
20
+ this.isStarted = false;
21
+ this.isEnded = false;
22
+ TelemetryHelper.logActionEvent(LogLevel.INFO, {
23
+ Event: TelemetryEvent.MessageStopLapTrackError,
24
+ Description: "Tracker Stopped due to network disconnection"
25
+ });
26
+ }));
27
+ _defineProperty(this, "fmltrackingListener", BroadcastService.getMessageByEventName(BroadcastEvent.FMLTrackingCompleted).subscribe(() => {
28
+ this.isReady = true;
29
+ BroadcastService.postMessage({
30
+ eventName: BroadcastEvent.FMLTrackingCompletedAck,
31
+ payload: null
32
+ });
33
+ }));
34
+ // Rehydrate message is received when the widget is reloaded, this is to ensure that we are not tracking messages that are not part of the current conversation
35
+ // No need to keep listerning for tracking, enforcing disconnection for the listners
36
+ _defineProperty(this, "rehydrateListener", BroadcastService.getMessageByEventName(TelemetryEvent.RehydrateMessageReceived).subscribe(() => {
37
+ this.isReady = true;
38
+ }));
39
+ // Rehydrate message is received when the widget is reloaded, this is to ensure that we are not tracking messages that are not part of the current conversation
40
+ // No need to keep listerning for tracking, enforcing disconnection for the listners
41
+ _defineProperty(this, "historyListener", BroadcastService.getMessageByEventName(BroadcastEvent.HistoryMessageReceived).subscribe(() => {
42
+ this.isReady = true;
43
+ }));
13
44
  // this is a workaround to ensure in reload we track effectively the messages
14
45
  // we do have a mechanism in place to prevent log agent messages.
15
46
  this.isABotConversation = true;
16
47
  }
17
- createTrackingMessage(payload, type) {
18
- return {
19
- Id: payload.Id,
20
- role: payload.role,
21
- timestamp: payload === null || payload === void 0 ? void 0 : payload.timestamp,
22
- tags: payload.tags,
23
- messageType: payload.messageType,
24
- text: payload.text,
25
- type: type,
26
- checkTime: new Date().getTime()
27
- };
28
- }
29
-
30
- // Tracking Functions
31
- startTracking(payload) {
32
- // this prevents to initiate tracking for multiple incoming messages
33
- if (this.isStarted) {
34
- return;
35
- }
36
- // this is to ensure we track only messages where bot is engaged
37
- if (!this.isABotConversation) {
38
- return;
48
+ _createClass(FirstResponseLatencyTracker, [{
49
+ key: "createTrackingMessage",
50
+ value: function createTrackingMessage(payload, type) {
51
+ return {
52
+ Id: payload.Id,
53
+ role: payload.role,
54
+ timestamp: payload === null || payload === void 0 ? void 0 : payload.timestamp,
55
+ tags: payload.tags,
56
+ messageType: payload.messageType,
57
+ text: payload.text,
58
+ type: type,
59
+ checkTime: new Date().getTime()
60
+ };
39
61
  }
40
62
 
41
- // control of states to prevent clashing of messages
42
- this.isStarted = true;
43
- this.isEnded = false;
44
-
45
- // The idea of using types is to enrich telemetry data
46
- this.startTrackingMessage = this.createTrackingMessage(payload, "userMessage");
47
- }
48
- handleAgentMessage(payload) {
49
- var _payload$tags;
50
- // this tag so far is only present in agent messages
51
- if (payload !== null && payload !== void 0 && (_payload$tags = payload.tags) !== null && _payload$tags !== void 0 && _payload$tags.includes("public")) {
52
- this.deregister();
53
- }
54
- }
55
- stopTracking(payload) {
56
- var _this$stopTrackingMes, _this$startTrackingMe;
57
- // this prevents execution for multiple incoming messages from the bot.
58
- if (this.isEnded && !this.isStarted) {
59
- return;
63
+ // Tracking Functions
64
+ }, {
65
+ key: "startTracking",
66
+ value: function startTracking(payload) {
67
+ if (!this.isReady) return;
68
+ // this prevents to initiate tracking for multiple incoming messages
69
+ if (this.isStarted) {
70
+ return;
71
+ }
72
+ // this is to ensure we track only messages where bot is engaged
73
+ if (!this.isABotConversation) {
74
+ return;
75
+ }
76
+ // control of states to prevent clashing of messages
77
+ this.isStarted = true;
78
+ this.isEnded = false;
79
+ // The idea of using types is to enrich telemetry data
80
+ this.startTrackingMessage = this.createTrackingMessage(payload, "userMessage");
60
81
  }
61
-
62
- // control of states to prevent clashing of messages
63
- this.isEnded = true;
64
- this.isStarted = false;
65
-
66
- // The idea of using types is to enrich telemetry data
67
- this.stopTrackingMessage = this.createTrackingMessage(payload, "botMessage");
68
- // calculating elapsed time
69
- const elapsedTime = (((_this$stopTrackingMes = this.stopTrackingMessage) === null || _this$stopTrackingMes === void 0 ? void 0 : _this$stopTrackingMes.checkTime) ?? 0) - (((_this$startTrackingMe = this.startTrackingMessage) === null || _this$startTrackingMe === void 0 ? void 0 : _this$startTrackingMe.checkTime) ?? 0);
70
- TelemetryHelper.logActionEvent(LogLevel.INFO, {
71
- Event: TelemetryEvent.MessageLapTrack,
72
- Description: "First response latency tracking",
73
- CustomProperties: {
74
- elapsedTime,
75
- userMessage: this.startTrackingMessage,
76
- botMessage: this.stopTrackingMessage
82
+ }, {
83
+ key: "handleAgentMessage",
84
+ value: function handleAgentMessage(payload) {
85
+ var _payload$tags;
86
+ // this tag so far is only present in agent messages
87
+ if (payload !== null && payload !== void 0 && (_payload$tags = payload.tags) !== null && _payload$tags !== void 0 && _payload$tags.includes("public")) {
88
+ this.deregister();
77
89
  }
78
- });
79
- }
80
-
81
- // mechanism to ensure we track only allowed conversations
82
- isMessageFromValidSender(payload) {
83
- var _payload$tags2;
84
- // agent scenario
85
- if (payload !== null && payload !== void 0 && (_payload$tags2 = payload.tags) !== null && _payload$tags2 !== void 0 && _payload$tags2.includes("public")) {
86
- this.handleAgentMessage(payload);
87
- return false;
88
90
  }
89
- return true;
90
- }
91
- startClock(payload) {
92
- try {
93
- if (!payload || !payload.Id) {
94
- throw new Error("Invalid payload");
91
+ }, {
92
+ key: "stopTracking",
93
+ value: function stopTracking(payload) {
94
+ var _this$stopTrackingMes, _this$startTrackingMe;
95
+ // this prevents execution for multiple incoming messages from the bot.
96
+ if (this.isEnded && !this.isStarted) {
97
+ return;
95
98
  }
96
- // in the case of a reload, tracker will be paused, until last history message is received
97
- // this is because we dont have a way to identidy send messages as part of the history
98
- //if (this.inPause) return;
99
- this.startTracking(payload);
100
- } catch (e) {
101
- TelemetryHelper.logActionEvent(LogLevel.ERROR, {
102
- Event: TelemetryEvent.MessageStartLapTrackError,
103
- Description: "Error while starting the clock",
104
- ExceptionDetails: e,
99
+
100
+ // control of states to prevent clashing of messages
101
+ this.isEnded = true;
102
+ this.isStarted = false;
103
+
104
+ // The idea of using types is to enrich telemetry data
105
+ this.stopTrackingMessage = this.createTrackingMessage(payload, "botMessage");
106
+ // calculating elapsed time
107
+ const elapsedTime = (((_this$stopTrackingMes = this.stopTrackingMessage) === null || _this$stopTrackingMes === void 0 ? void 0 : _this$stopTrackingMes.checkTime) ?? 0) - (((_this$startTrackingMe = this.startTrackingMessage) === null || _this$startTrackingMe === void 0 ? void 0 : _this$startTrackingMe.checkTime) ?? 0);
108
+ TelemetryHelper.logActionEvent(LogLevel.INFO, {
109
+ Event: TelemetryEvent.MessageLapTrack,
110
+ Description: "First response latency tracking",
105
111
  CustomProperties: {
106
- payload: payload
112
+ elapsedTime,
113
+ userMessage: this.startTrackingMessage,
114
+ botMessage: this.stopTrackingMessage
107
115
  }
108
116
  });
109
117
  }
110
- }
111
- stopClock(payload) {
112
- try {
113
- if (!payload || !payload.Id) {
114
- throw new Error("Invalid payload");
118
+
119
+ // mechanism to ensure we track only allowed conversations
120
+ }, {
121
+ key: "isMessageFromValidSender",
122
+ value: function isMessageFromValidSender(payload) {
123
+ var _payload$tags2;
124
+ // agent scenario
125
+ if (payload !== null && payload !== void 0 && (_payload$tags2 = payload.tags) !== null && _payload$tags2 !== void 0 && _payload$tags2.includes("public")) {
126
+ this.handleAgentMessage(payload);
127
+ return false;
115
128
  }
116
- if (!this.isMessageFromValidSender(payload)) return;
117
- if (this.isABotConversation && this.isStarted) {
118
- this.stopTracking(payload);
129
+ return true;
130
+ }
131
+ }, {
132
+ key: "startClock",
133
+ value: function startClock(payload) {
134
+ try {
135
+ if (!payload || !payload.Id) {
136
+ throw new Error("Invalid payload");
137
+ }
138
+ this.startTracking(payload);
139
+ } catch (e) {
140
+ TelemetryHelper.logActionEvent(LogLevel.ERROR, {
141
+ Event: TelemetryEvent.MessageStartLapTrackError,
142
+ Description: "Error while starting the clock",
143
+ ExceptionDetails: e,
144
+ CustomProperties: {
145
+ payload: payload
146
+ }
147
+ });
119
148
  }
120
- } catch (e) {
121
- console.error("FRL : error while trying to stop the tracker", e);
122
- TelemetryHelper.logActionEvent(LogLevel.ERROR, {
123
- Event: TelemetryEvent.MessageStopLapTrackError,
124
- Description: "Error while stopping the clock",
125
- ExceptionDetails: e,
126
- CustomProperties: {
127
- payload: payload
149
+ }
150
+ }, {
151
+ key: "stopClock",
152
+ value: function stopClock(payload) {
153
+ try {
154
+ if (!payload || !payload.Id) {
155
+ throw new Error("Invalid payload");
128
156
  }
129
- });
130
- //reset state
131
- this.startTrackingMessage = undefined;
132
- this.stopTrackingMessage = undefined;
157
+ if (!this.isMessageFromValidSender(payload)) return;
158
+ if (this.isABotConversation && this.isStarted) {
159
+ this.stopTracking(payload);
160
+ }
161
+ } catch (e) {
162
+ console.error("FRL : error while trying to stop the tracker", e);
163
+ TelemetryHelper.logActionEvent(LogLevel.ERROR, {
164
+ Event: TelemetryEvent.MessageStopLapTrackError,
165
+ Description: "Error while stopping the clock",
166
+ ExceptionDetails: e,
167
+ CustomProperties: {
168
+ payload: payload
169
+ }
170
+ });
171
+ //reset state
172
+ this.startTrackingMessage = undefined;
173
+ this.stopTrackingMessage = undefined;
174
+ this.isStarted = false;
175
+ this.isEnded = false;
176
+ }
177
+ }
178
+ }, {
179
+ key: "deregister",
180
+ value: function deregister() {
181
+ // Reset State
182
+ this.isABotConversation = false;
133
183
  this.isStarted = false;
134
184
  this.isEnded = false;
185
+ this.startTrackingMessage = undefined;
186
+ this.stopTrackingMessage = undefined;
187
+ this.offlineNetworkListener.unsubscribe();
188
+ this.fmltrackingListener.unsubscribe();
189
+ this.rehydrateListener.unsubscribe();
190
+ this.historyListener.unsubscribe();
135
191
  }
136
- }
137
- deregister() {
138
- // Reset State
139
- this.isABotConversation = false;
140
- this.isStarted = false;
141
- this.isEnded = false;
142
- this.startTrackingMessage = undefined;
143
- this.stopTrackingMessage = undefined;
144
- }
145
- }
192
+ }]);
193
+ return FirstResponseLatencyTracker;
194
+ }();