@microsoft/omnichannel-chat-widget 1.8.3-main.ec1328d → 1.8.4-main.4478bbf

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 (185) hide show
  1. package/lib/cjs/common/Constants.js +7 -0
  2. package/lib/cjs/common/facades/FacadeChatSDK.js +6 -0
  3. package/lib/cjs/common/telemetry/AppInsightsEvents.js +4 -5
  4. package/lib/cjs/common/telemetry/TelemetryConstants.js +46 -2
  5. package/lib/cjs/common/telemetry/loggers/appInsightsLogger.js +26 -10
  6. package/lib/cjs/common/utils/SecureEventBus.js +307 -0
  7. package/lib/cjs/common/utils/dispatchCustomEvent.js +25 -0
  8. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +16 -4
  9. package/lib/cjs/components/citationpanestateful/CitationDim.js +29 -0
  10. package/lib/cjs/components/citationpanestateful/CitationPaneStateful.js +199 -0
  11. package/lib/cjs/components/citationpanestateful/common/defaultProps/defaultCitationPaneProps.js +70 -0
  12. package/lib/cjs/components/confirmationpanestateful/interfaces/IConfirmationPaneLocalizedTexts.js +1 -0
  13. package/lib/cjs/components/headerstateful/HeaderStateful.js +8 -2
  14. package/lib/cjs/components/livechatwidget/LiveChatWidget.js +4 -4
  15. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/AddActivitySubscriber.js +127 -0
  16. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +4 -5
  17. package/lib/cjs/components/livechatwidget/common/ChatWidgetEvents.js +15 -0
  18. package/lib/cjs/components/livechatwidget/common/PersistentConversationHandler.js +284 -0
  19. package/lib/cjs/components/livechatwidget/common/createAdapter.js +2 -0
  20. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultPersistentChatHistoryProps.js +18 -0
  21. package/lib/cjs/components/livechatwidget/common/endChat.js +28 -3
  22. package/lib/cjs/components/livechatwidget/common/getMockChatSDKIfApplicable.js +4 -3
  23. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +8 -6
  24. package/lib/cjs/components/livechatwidget/common/overridePropsOnMockIfApplicable.js +2 -1
  25. package/lib/cjs/components/livechatwidget/common/renderSurveyHelpers.js +2 -2
  26. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +3 -3
  27. package/lib/cjs/components/livechatwidget/common/startChat.js +10 -5
  28. package/lib/cjs/components/livechatwidget/common/startChatErrorHandler.js +24 -4
  29. package/lib/cjs/components/livechatwidget/interfaces/IMockProps.js +8 -2
  30. package/lib/cjs/components/livechatwidget/interfaces/IPersistentChatHistoryProps.js +1 -0
  31. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +41 -8
  32. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +29 -2
  33. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +12 -3
  34. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +122 -11
  35. package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatAdapter.js +43 -14
  36. package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatSDK.js +6 -1
  37. package/lib/cjs/components/webchatcontainerstateful/common/activities/botActivity.js +14 -0
  38. package/lib/cjs/components/webchatcontainerstateful/common/activities/conversationDividerActivity.js +17 -0
  39. package/lib/cjs/components/webchatcontainerstateful/common/activityConverters/convertPersistentChatHistoryMessageToActivity.js +97 -0
  40. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts.js +2 -1
  41. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +1 -1
  42. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultWebChatStyles.js +1 -1
  43. package/lib/cjs/components/webchatcontainerstateful/common/utils/chatAdapterUtils.js +36 -2
  44. package/lib/cjs/components/webchatcontainerstateful/common/utils/fontUtils.js +28 -0
  45. package/lib/cjs/components/webchatcontainerstateful/hooks/usePersistentChatHistory.js +59 -0
  46. package/lib/cjs/components/webchatcontainerstateful/interfaces/ICitation.js +1 -0
  47. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatEventSubscribers.js +122 -0
  48. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/Constants.js +10 -0
  49. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/ConversationDividerActivity.js +18 -0
  50. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LazyLoadActivity.js +1038 -0
  51. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LoadInlineBannerActivity.js +34 -0
  52. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +44 -0
  53. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +16 -2
  54. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAvatarTextStyles.js +1 -1
  55. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultInLineBannerStyle.js +20 -0
  56. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageStyles.js +1 -1
  57. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +2 -2
  58. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/HistoryMessageTimestamp.js +59 -0
  59. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +5 -3
  60. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +2 -2
  61. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/citationsMiddleware.js +97 -30
  62. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.js +2 -2
  63. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +46 -45
  64. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +2 -0
  65. package/lib/cjs/contexts/createReducer.js +15 -0
  66. package/lib/cjs/firstresponselatency/FirstMessageTrackerFromBot.js +3 -2
  67. package/lib/cjs/firstresponselatency/FirstResponseLatencyTracker.js +6 -2
  68. package/lib/cjs/index.js +9 -1
  69. package/lib/cjs/plugins/newMessageEventHandler.js +4 -1
  70. package/lib/esm/common/Constants.js +7 -0
  71. package/lib/esm/common/facades/FacadeChatSDK.js +6 -0
  72. package/lib/esm/common/telemetry/AppInsightsEvents.js +4 -5
  73. package/lib/esm/common/telemetry/TelemetryConstants.js +44 -1
  74. package/lib/esm/common/telemetry/loggers/appInsightsLogger.js +27 -11
  75. package/lib/esm/common/utils/SecureEventBus.js +328 -0
  76. package/lib/esm/common/utils/dispatchCustomEvent.js +18 -0
  77. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +17 -5
  78. package/lib/esm/components/citationpanestateful/CitationDim.js +20 -0
  79. package/lib/esm/components/citationpanestateful/CitationPaneStateful.js +188 -0
  80. package/lib/esm/components/citationpanestateful/common/defaultProps/defaultCitationPaneProps.js +61 -0
  81. package/lib/esm/components/confirmationpanestateful/interfaces/IConfirmationPaneLocalizedTexts.js +1 -0
  82. package/lib/esm/components/headerstateful/HeaderStateful.js +9 -3
  83. package/lib/esm/components/livechatwidget/LiveChatWidget.js +4 -4
  84. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/AddActivitySubscriber.js +120 -0
  85. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +4 -5
  86. package/lib/esm/components/livechatwidget/common/ChatWidgetEvents.js +8 -0
  87. package/lib/esm/components/livechatwidget/common/PersistentConversationHandler.js +277 -0
  88. package/lib/esm/components/livechatwidget/common/createAdapter.js +2 -0
  89. package/lib/esm/components/livechatwidget/common/defaultProps/defaultPersistentChatHistoryProps.js +11 -0
  90. package/lib/esm/components/livechatwidget/common/endChat.js +29 -4
  91. package/lib/esm/components/livechatwidget/common/getMockChatSDKIfApplicable.js +4 -3
  92. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +8 -6
  93. package/lib/esm/components/livechatwidget/common/overridePropsOnMockIfApplicable.js +2 -1
  94. package/lib/esm/components/livechatwidget/common/renderSurveyHelpers.js +2 -2
  95. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +3 -3
  96. package/lib/esm/components/livechatwidget/common/startChat.js +12 -7
  97. package/lib/esm/components/livechatwidget/common/startChatErrorHandler.js +23 -4
  98. package/lib/esm/components/livechatwidget/interfaces/IMockProps.js +3 -3
  99. package/lib/esm/components/livechatwidget/interfaces/IPersistentChatHistoryProps.js +1 -0
  100. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +42 -9
  101. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +31 -4
  102. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +13 -4
  103. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +125 -12
  104. package/lib/esm/components/webchatcontainerstateful/common/DesignerChatAdapter.js +43 -14
  105. package/lib/esm/components/webchatcontainerstateful/common/DesignerChatSDK.js +6 -1
  106. package/lib/esm/components/webchatcontainerstateful/common/activities/botActivity.js +7 -0
  107. package/lib/esm/components/webchatcontainerstateful/common/activities/conversationDividerActivity.js +9 -0
  108. package/lib/esm/components/webchatcontainerstateful/common/activityConverters/convertPersistentChatHistoryMessageToActivity.js +90 -0
  109. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts.js +2 -1
  110. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  111. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultWebChatStyles.js +1 -1
  112. package/lib/esm/components/webchatcontainerstateful/common/utils/chatAdapterUtils.js +32 -0
  113. package/lib/esm/components/webchatcontainerstateful/common/utils/fontUtils.js +21 -0
  114. package/lib/esm/components/webchatcontainerstateful/hooks/usePersistentChatHistory.js +51 -0
  115. package/lib/esm/components/webchatcontainerstateful/interfaces/ICitation.js +1 -0
  116. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatEventSubscribers.js +115 -0
  117. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/Constants.js +3 -0
  118. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/ConversationDividerActivity.js +10 -0
  119. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LazyLoadActivity.js +1060 -0
  120. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LoadInlineBannerActivity.js +25 -0
  121. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +42 -0
  122. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +13 -0
  123. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAvatarTextStyles.js +1 -1
  124. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultInLineBannerStyle.js +13 -0
  125. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageStyles.js +1 -1
  126. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +1 -1
  127. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/HistoryMessageTimestamp.js +52 -0
  128. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +3 -2
  129. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +1 -1
  130. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/citationsMiddleware.js +98 -30
  131. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.js +2 -2
  132. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +46 -45
  133. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +2 -0
  134. package/lib/esm/contexts/createReducer.js +15 -0
  135. package/lib/esm/firstresponselatency/FirstMessageTrackerFromBot.js +3 -2
  136. package/lib/esm/firstresponselatency/FirstResponseLatencyTracker.js +6 -2
  137. package/lib/esm/index.js +1 -0
  138. package/lib/esm/plugins/newMessageEventHandler.js +4 -1
  139. package/lib/types/common/Constants.d.ts +6 -0
  140. package/lib/types/common/facades/FacadeChatSDK.d.ts +3 -1
  141. package/lib/types/common/telemetry/TelemetryConstants.d.ts +41 -2
  142. package/lib/types/common/utils/SecureEventBus.d.ts +159 -0
  143. package/lib/types/common/utils/dispatchCustomEvent.d.ts +2 -0
  144. package/lib/types/components/citationpanestateful/CitationDim.d.ts +5 -0
  145. package/lib/types/components/citationpanestateful/CitationPaneStateful.d.ts +4 -0
  146. package/lib/types/components/citationpanestateful/common/defaultProps/defaultCitationPaneProps.d.ts +11 -0
  147. package/lib/types/components/citationpanestateful/interfaces/ICitationPaneStatefulProps.d.ts +19 -0
  148. package/lib/types/components/confirmationpanestateful/common/defaultProps/defaultConfirmationPaneLocalizedTexts.d.ts +1 -1
  149. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulProps.d.ts +1 -1
  150. package/lib/types/components/livechatwidget/common/ActivitySubscriber/AddActivitySubscriber.d.ts +45 -0
  151. package/lib/types/components/livechatwidget/common/ChatWidgetEvents.d.ts +7 -0
  152. package/lib/types/components/livechatwidget/common/PersistentConversationHandler.d.ts +28 -0
  153. package/lib/types/components/livechatwidget/common/defaultProps/defaultPersistentChatHistoryProps.d.ts +2 -0
  154. package/lib/types/components/livechatwidget/common/getMockChatSDKIfApplicable.d.ts +2 -1
  155. package/lib/types/components/livechatwidget/common/startChatErrorHandler.d.ts +1 -0
  156. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +5 -1
  157. package/lib/types/components/livechatwidget/interfaces/IMockProps.d.ts +5 -3
  158. package/lib/types/components/livechatwidget/interfaces/IPersistentChatHistoryProps.d.ts +7 -0
  159. package/lib/types/components/webchatcontainerstateful/common/DesignerChatAdapter.d.ts +4 -2
  160. package/lib/types/components/webchatcontainerstateful/common/DesignerChatSDK.d.ts +5 -0
  161. package/lib/types/components/webchatcontainerstateful/common/activities/botActivity.d.ts +7 -0
  162. package/lib/types/components/webchatcontainerstateful/common/activities/conversationDividerActivity.d.ts +10 -0
  163. package/lib/types/components/webchatcontainerstateful/common/activityConverters/convertPersistentChatHistoryMessageToActivity.d.ts +2 -0
  164. package/lib/types/components/webchatcontainerstateful/common/utils/chatAdapterUtils.d.ts +6 -1
  165. package/lib/types/components/webchatcontainerstateful/common/utils/fontUtils.d.ts +10 -0
  166. package/lib/types/components/webchatcontainerstateful/hooks/usePersistentChatHistory.d.ts +4 -0
  167. package/lib/types/components/webchatcontainerstateful/interfaces/ICitation.d.ts +12 -0
  168. package/lib/types/components/webchatcontainerstateful/webchatcontroller/WebChatEventSubscribers.d.ts +7 -0
  169. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/Constants.d.ts +3 -0
  170. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/ConversationDividerActivity.d.ts +4 -0
  171. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LazyLoadActivity.d.ts +326 -0
  172. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LoadInlineBannerActivity.d.ts +8 -0
  173. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -0
  174. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultInLineBannerStyle.d.ts +2 -0
  175. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/HistoryMessageTimestamp.d.ts +2 -0
  176. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/citationsMiddleware.d.ts +3 -4
  177. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.d.ts +2 -2
  178. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +1 -0
  179. package/lib/types/contexts/common/ILiveChatWidgetLocalizedTexts.d.ts +1 -0
  180. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +46 -45
  181. package/lib/types/index.d.ts +1 -0
  182. package/package.json +3 -3
  183. /package/lib/cjs/components/{confirmationpanestateful/interfaces/IConfirmationPaneLocalizedText.js → citationpanestateful/interfaces/ICitationPaneStatefulProps.js} +0 -0
  184. /package/lib/esm/components/{confirmationpanestateful/interfaces/IConfirmationPaneLocalizedText.js → citationpanestateful/interfaces/ICitationPaneStatefulProps.js} +0 -0
  185. /package/lib/types/components/confirmationpanestateful/interfaces/{IConfirmationPaneLocalizedText.d.ts → IConfirmationPaneLocalizedTexts.d.ts} +0 -0
@@ -45,6 +45,8 @@ const getLiveChatWidgetContextInitialState = props => {
45
45
  domainStates: {
46
46
  liveChatConfig: props.chatConfig,
47
47
  widgetElementId: "",
48
+ // Map of citation id => content injected by citations middleware
49
+ citations: {},
48
50
  renderingMiddlewareProps: (_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.renderingMiddlewareProps,
49
51
  middlewareLocalizedTexts: _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts,
50
52
  preChatSurveyResponse: "{}",
@@ -70,6 +70,21 @@ const reducer = (state, action) => {
70
70
  middlewareLocalizedTexts: action.payload
71
71
  }
72
72
  };
73
+ case _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CITATIONS:
74
+ inMemory = {
75
+ ...inMemory,
76
+ domainStates: {
77
+ ...inMemory.domainStates,
78
+ citations: action.payload
79
+ }
80
+ };
81
+ return {
82
+ ...state,
83
+ domainStates: {
84
+ ...state.domainStates,
85
+ citations: action.payload
86
+ }
87
+ };
73
88
  case _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_GLOBAL_DIR:
74
89
  inMemory = {
75
90
  ...inMemory,
@@ -36,7 +36,7 @@ const createTrackingForFirstMessage = () => {
36
36
  * Starts tracking the time for the first bot message after widget loads.
37
37
  * Sets a 5-second timeout to auto-reset if no bot message is received.
38
38
  */
39
- const widgetLoadListener = _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.TelemetryEvent.WidgetLoadComplete).subscribe(() => {
39
+ const widgetLoadListener = _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.TelemetryEvent.StartChatComplete).subscribe(() => {
40
40
  if (isTracking) return;
41
41
  isTracking = true;
42
42
  startTime = new Date().getTime();
@@ -91,7 +91,8 @@ const createTrackingForFirstMessage = () => {
91
91
  CustomProperties: {
92
92
  elapsedTime,
93
93
  widgetLoadedAt: startTime,
94
- botMessage: stopTrackingMessage
94
+ botMessage: stopTrackingMessage,
95
+ type: payload === null || payload === void 0 ? void 0 : payload.type
95
96
  }
96
97
  });
97
98
  disconnectListener();
@@ -7,6 +7,7 @@ exports.FirstResponseLatencyTracker = void 0;
7
7
  var _TelemetryConstants = require("../common/telemetry/TelemetryConstants");
8
8
  var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
9
9
  var _TelemetryHelper = require("../common/telemetry/TelemetryHelper");
10
+ var _Constants = require("../common/Constants");
10
11
  function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
11
12
  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); } }
12
13
  function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
@@ -133,7 +134,8 @@ let FirstResponseLatencyTracker = /*#__PURE__*/function () {
133
134
  CustomProperties: {
134
135
  elapsedTime,
135
136
  userMessage: this.startTrackingMessage,
136
- botMessage: this.stopTrackingMessage
137
+ botMessage: this.stopTrackingMessage,
138
+ type: payload === null || payload === void 0 ? void 0 : payload.type
137
139
  }
138
140
  });
139
141
  }
@@ -174,7 +176,9 @@ let FirstResponseLatencyTracker = /*#__PURE__*/function () {
174
176
  value: function stopClock(payload) {
175
177
  try {
176
178
  if (!payload || !payload.Id) {
177
- throw new Error("Invalid payload");
179
+ if ((payload === null || payload === void 0 ? void 0 : payload.type) !== _Constants.Constants.typing) {
180
+ throw new Error("Invalid payload");
181
+ }
178
182
  }
179
183
 
180
184
  // Only allow stopTracking if sender is valid and tracking is active
package/lib/cjs/index.js CHANGED
@@ -14,7 +14,8 @@ var _exportNames = {
14
14
  useChatSDKStore: true,
15
15
  useFacadeChatSDKStore: true,
16
16
  LiveChatWidget: true,
17
- getMockChatSDKIfApplicable: true
17
+ getMockChatSDKIfApplicable: true,
18
+ LiveChatWidgetMockType: true
18
19
  };
19
20
  Object.defineProperty(exports, "BroadcastService", {
20
21
  enumerable: true,
@@ -34,6 +35,12 @@ Object.defineProperty(exports, "LiveChatWidget", {
34
35
  return _LiveChatWidget.default;
35
36
  }
36
37
  });
38
+ Object.defineProperty(exports, "LiveChatWidgetMockType", {
39
+ enumerable: true,
40
+ get: function () {
41
+ return _IMockProps.LiveChatWidgetMockType;
42
+ }
43
+ });
37
44
  Object.defineProperty(exports, "decodeComponentString", {
38
45
  enumerable: true,
39
46
  get: function () {
@@ -90,6 +97,7 @@ var _useChatSDKStore = _interopRequireDefault(require("./hooks/useChatSDKStore")
90
97
  var _useFacadeChatSDKStore = _interopRequireDefault(require("./hooks/useFacadeChatSDKStore"));
91
98
  var _LiveChatWidget = _interopRequireDefault(require("./components/livechatwidget/LiveChatWidget"));
92
99
  var _getMockChatSDKIfApplicable = require("./components/livechatwidget/common/getMockChatSDKIfApplicable");
100
+ var _IMockProps = require("./components/livechatwidget/interfaces/IMockProps");
93
101
  var _renderingmiddlewares = require("./components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares");
94
102
  Object.keys(_renderingmiddlewares).forEach(function (key) {
95
103
  if (key === "default" || key === "__esModule") return;
@@ -84,6 +84,9 @@ const createOnNewAdapterActivityHandler = (chatId, userId, startTime) => {
84
84
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
85
85
  const messageHasNoAttachments = !(activity !== null && activity !== void 0 && activity.attachments) || (activity === null || activity === void 0 ? void 0 : activity.attachments.length) === 0;
86
86
  if (messageHasNoTags && messageHasNoText && messageHasNoAttachments) {
87
+ if ((activity === null || activity === void 0 ? void 0 : activity.type) === _Constants2.Constants.typing) {
88
+ return true;
89
+ }
87
90
  return false;
88
91
  }
89
92
  return true;
@@ -112,7 +115,7 @@ const createOnNewAdapterActivityHandler = (chatId, userId, startTime) => {
112
115
  });
113
116
  };
114
117
  const raiseMessageEvent = activity => {
115
- if ((activity === null || activity === void 0 ? void 0 : activity.type) === _Constants2.Constants.message) {
118
+ if ((activity === null || activity === void 0 ? void 0 : activity.type) === _Constants2.Constants.message || (activity === null || activity === void 0 ? void 0 : activity.type) === _Constants2.Constants.typing) {
116
119
  const scenarioType = (0, _util.getScenarioType)(activity);
117
120
  switch (scenarioType) {
118
121
  case _Constants.ScenarioType.UserSendMessageStrategy:
@@ -38,6 +38,10 @@ _defineProperty(Constants, "botParticipantTypeTag", "Bot");
38
38
  _defineProperty(Constants, "channelIdKey", "ChannelId-");
39
39
  _defineProperty(Constants, "ChannelId", "lcw");
40
40
  _defineProperty(Constants, "CustomerTag", "FromCustomer");
41
+ // LCW only tags (Only applicable on client-side for additional processing, not recognized by service)
42
+ _defineProperty(Constants, "persistentChatHistoryMessageTag", "PersistentChatHistory");
43
+ _defineProperty(Constants, "persistentChatHistoryMessagePullTriggerTag", "PersistentChatHistoryMessagePullTrigger");
44
+ _defineProperty(Constants, "conversationDividerTag", "ConversationDivider");
41
45
  // gifUploadMiddleware
42
46
  _defineProperty(Constants, "GifContentType", "image/gif");
43
47
  // htmlPlayerMiddleware
@@ -57,6 +61,7 @@ _defineProperty(Constants, "queuePositionMessageTag", "queueposition");
57
61
  _defineProperty(Constants, "averageWaitTimeMessageTag", "averagewaittime");
58
62
  _defineProperty(Constants, "message", "message");
59
63
  _defineProperty(Constants, "hiddenTag", "Hidden");
64
+ _defineProperty(Constants, "typing", "typing");
60
65
  // messageTimestampMiddleware
61
66
  _defineProperty(Constants, "prefixTimestampTag", "ServerMessageTimestamp_");
62
67
  _defineProperty(Constants, "acsChannel", "ACS_CHANNEL");
@@ -184,6 +189,8 @@ _defineProperty(HtmlAttributeNames, "adaptiveCardClassName", "ac-adaptiveCard");
184
189
  _defineProperty(HtmlAttributeNames, "adaptiveCardTextBlockClassName", "ac-textBlock");
185
190
  _defineProperty(HtmlAttributeNames, "adaptiveCardToggleInputClassName", "ac-toggleInput");
186
191
  _defineProperty(HtmlAttributeNames, "adaptiveCardActionSetClassName", "ac-actionSet");
192
+ _defineProperty(HtmlAttributeNames, "ocwCitationPaneClassName", "ocw-citation-pane");
193
+ _defineProperty(HtmlAttributeNames, "ocwCitationPaneTitle", "Citation");
187
194
  export let WebChatMiddlewareConstants = /*#__PURE__*/_createClass(function WebChatMiddlewareConstants() {
188
195
  _classCallCheck(this, WebChatMiddlewareConstants);
189
196
  });
@@ -481,6 +481,12 @@ export let FacadeChatSDK = /*#__PURE__*/function () {
481
481
  reconnectableChatsParams.authenticatedUserToken = this.token;
482
482
  return this.validateAndExecuteCall("getReconnectableChats", () => this.chatSDK.OCClient.getReconnectableChats(reconnectableChatsParams));
483
483
  }
484
+ }, {
485
+ key: "fetchPersistentConversationHistory",
486
+ value: async function fetchPersistentConversationHistory() {
487
+ let getPersistentChatHistoryOptionalParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
488
+ return this.validateAndExecuteCall("getPersistentChatHistory", () => this.chatSDK.getPersistentChatHistory(getPersistentChatHistoryOptionalParams));
489
+ }
484
490
  }]);
485
491
  return FacadeChatSDK;
486
492
  }();
@@ -1,8 +1,5 @@
1
1
  export const AppInsightsEventMapping = {
2
2
  "LCWChatButtonClicked": "LCWChatButtonActionStarted",
3
- "WidgetLoadStarted": "WidgetStartChatStarted",
4
- "WidgetLoadComplete": "WidgetStartChatCompleted",
5
- "WidgetLoadFailed": "WidgetStartChatFailed",
6
3
  "PrechatSubmitted": "PrechatSubmitCompleted",
7
4
  "StartChatEventRecevied": "StartChatEventReceivedCompleted",
8
5
  "EndChatEventReceived": "EndChatEventReceivedCompleted",
@@ -18,7 +15,9 @@ export const AppInsightsEventMapping = {
18
15
  "MessageSent": "MessageSentCompleted",
19
16
  "MessageReceived": "MessageReceivedCompleted",
20
17
  "SystemMessageReceived": "SystemMessageReceivedCompleted",
21
- "RehydrateMessageReceived": "RehydrateMessageReceivedCompleted",
18
+ "RehydrateMessageReceived": "ChatHistoryMessageReceivedCompleted",
22
19
  "CustomContextReceived": "CustomContextReceivedCompleted",
23
- "PostChatContextCallSucceed": "PostChatContextCallCompleted"
20
+ "NewTokenValidationStarted": "AuthTokenValidationStarted",
21
+ "NewTokenValidationCompleted": "AuthTokenValidationCompleted",
22
+ "NewTokenValidationFailed": "AuthTokenValidationFailed"
24
23
  };
@@ -68,9 +68,11 @@ export let BroadcastEvent;
68
68
  BroadcastEvent["OnWidgetError"] = "OnWidgetError";
69
69
  BroadcastEvent["FMLTrackingCompletedAck"] = "FMLTrackingCompletedAck";
70
70
  BroadcastEvent["FMLTrackingCompleted"] = "FMLTrackingCompleted";
71
+ BroadcastEvent["PersistentConversationReset"] = "PersistentConversationReset";
71
72
  })(BroadcastEvent || (BroadcastEvent = {}));
72
73
  export let TelemetryEvent;
73
74
  (function (TelemetryEvent) {
75
+ TelemetryEvent["FetchPersistentChatHistoryFailed"] = "FetchPersistentChatHistoryFailed";
74
76
  TelemetryEvent["CallAdded"] = "CallAdded";
75
77
  TelemetryEvent["LocalVideoStreamAdded"] = "LocalVideoStreamAdded";
76
78
  TelemetryEvent["LocalVideoStreamRemoved"] = "LocalVideoStreamRemoved";
@@ -148,6 +150,7 @@ export let TelemetryEvent;
148
150
  TelemetryEvent["EmailTranscriptLoaded"] = "EmailTranscriptLoaded";
149
151
  TelemetryEvent["OutOfOfficePaneLoaded"] = "OutOfOfficePaneLoaded";
150
152
  TelemetryEvent["ConfirmationPaneLoaded"] = "ConfirmationPaneLoaded";
153
+ TelemetryEvent["CitationPaneLoaded"] = "CitationPaneLoaded";
151
154
  TelemetryEvent["ProactiveChatPaneLoaded"] = "ProactiveChatPaneLoaded";
152
155
  TelemetryEvent["ReconnectChatPaneLoaded"] = "ReconnectChatPaneLoaded";
153
156
  TelemetryEvent["HeaderCloseButtonClicked"] = "HeaderCloseButtonClicked";
@@ -274,11 +277,42 @@ export let TelemetryEvent;
274
277
  TelemetryEvent["UXLCWChatButtonLoadingStart"] = "UXLCWChatButtonLoadingStart";
275
278
  TelemetryEvent["UXLCWChatButtonLoadingCompleted"] = "UXLCWChatButtonLoadingCompleted";
276
279
  TelemetryEvent["UXConfirmationPaneStart"] = "UXConfirmationPaneStart";
280
+ TelemetryEvent["UXCitationPaneStart"] = "UXCitationPaneStart";
277
281
  TelemetryEvent["UXConfirmationPaneCompleted"] = "UXConfirmationPaneCompleted";
282
+ TelemetryEvent["UXCitationPaneCompleted"] = "UXCitationPaneCompleted";
278
283
  TelemetryEvent["UXLiveChatWidgetStart"] = "UXLiveChatWidgetStart";
279
284
  TelemetryEvent["UXLiveChatWidgetCompleted"] = "UXLiveChatWidgetCompleted";
285
+ TelemetryEvent["UXPostChatPaneStarted"] = "UXPostChatPaneStarted";
286
+ TelemetryEvent["UXPostChatPaneCompleted"] = "UXPostChatPaneCompleted";
280
287
  TelemetryEvent["AppInsightsInitialized"] = "AppInsightsInitialized";
281
288
  TelemetryEvent["AppInsightsInitFailed"] = "AppInsightsInitFailed";
289
+ TelemetryEvent["ConvertPersistentChatHistoryMessageToActivityFailed"] = "ConvertPersistentChatHistoryMessageToActivityFailed";
290
+ TelemetryEvent["UXLCWPersistentChatHistoryInitialized"] = "UXLCWPersistentChatHistoryInitialized";
291
+ TelemetryEvent["LCWPersistentChatHistoryFetchStarted"] = "LCWPersistentChatHistoryFetchStarted";
292
+ TelemetryEvent["LCWPersistentChatHistoryFetchCompleted"] = "LCWPersistentChatHistoryFetchCompleted";
293
+ TelemetryEvent["LCWPersistentChatHistoryFetchFailed"] = "LCWPersistentChatHistoryFetchFailed";
294
+ TelemetryEvent["LCWWebChatStorePollingStarted"] = "LCWWebChatStorePollingStarted";
295
+ TelemetryEvent["LCWWebChatStoreReady"] = "LCWWebChatStoreReady";
296
+ TelemetryEvent["LCWWebChatConnected"] = "LCWWebChatConnected";
297
+ TelemetryEvent["LCWWebChatDisconnected"] = "LCWWebChatDisconnected";
298
+ TelemetryEvent["LCWWebChatConnectionCheckFailed"] = "LCWWebChatConnectionCheckFailed";
299
+ TelemetryEvent["LCWPersistentConversationHandlerInitialized"] = "LCWPersistentConversationHandlerInitialized";
300
+ TelemetryEvent["LCWPersistentHistoryPullBlocked"] = "LCWPersistentHistoryPullBlocked";
301
+ TelemetryEvent["LCWPersistentHistoryPullCompleted"] = "LCWPersistentHistoryPullCompleted";
302
+ TelemetryEvent["LCWLazyLoadInitializationStarted"] = "LCWLazyLoadInitializationStarted";
303
+ TelemetryEvent["LCWLazyLoadContainerNotFound"] = "LCWLazyLoadContainerNotFound";
304
+ TelemetryEvent["LCWLazyLoadInitializationCompleted"] = "LCWLazyLoadInitializationCompleted";
305
+ TelemetryEvent["LCWLazyLoadSessionMetrics"] = "LCWLazyLoadSessionMetrics";
306
+ TelemetryEvent["LCWLazyLoadTargetElementNotFound"] = "LCWLazyLoadTargetElementNotFound";
307
+ TelemetryEvent["LCWLazyLoadScrollFailed"] = "LCWLazyLoadScrollFailed";
308
+ TelemetryEvent["LCWLazyLoadActivityMounted"] = "LCWLazyLoadActivityMounted";
309
+ TelemetryEvent["LCWLazyLoadReset"] = "LCWLazyLoadReset";
310
+ TelemetryEvent["LCWLazyLoadNoMoreHistory"] = "LCWLazyLoadNoMoreHistory";
311
+ TelemetryEvent["LCWLazyLoadDestroyed"] = "LCWLazyLoadDestroyed";
312
+ TelemetryEvent["SecureEventBusUnauthorizedDispatch"] = "SecureEventBusUnauthorizedDispatch";
313
+ TelemetryEvent["SecureEventBusListenerError"] = "SecureEventBusListenerError";
314
+ TelemetryEvent["SecureEventBusDispatchError"] = "SecureEventBusDispatchError";
315
+ TelemetryEvent["StartChatComplete"] = "StartChatComplete";
282
316
  })(TelemetryEvent || (TelemetryEvent = {}));
283
317
  export let TelemetryConstants = /*#__PURE__*/function () {
284
318
  function TelemetryConstants() {
@@ -346,6 +380,9 @@ export let TelemetryConstants = /*#__PURE__*/function () {
346
380
  case TelemetryEvent.PostChatWorkflowFromAgent:
347
381
  case TelemetryEvent.PostChatWorkflowFromBot:
348
382
  case TelemetryEvent.AppStatesException:
383
+ case TelemetryEvent.SecureEventBusUnauthorizedDispatch:
384
+ case TelemetryEvent.SecureEventBusListenerError:
385
+ case TelemetryEvent.SecureEventBusDispatchError:
349
386
  return ScenarioType.ACTIONS;
350
387
  case TelemetryEvent.StartChatSDKCall:
351
388
  case TelemetryEvent.StartChatEventReceived:
@@ -405,4 +442,10 @@ export let TelemetryConstants = /*#__PURE__*/function () {
405
442
  }
406
443
  }]);
407
444
  return TelemetryConstants;
408
- }();
445
+ }();
446
+ export let ConversationStage;
447
+ (function (ConversationStage) {
448
+ ConversationStage["Initialization"] = "Initialization";
449
+ ConversationStage["CSREngagement"] = "CSR Engagement";
450
+ ConversationStage["ConversationEnd"] = "Conversation End";
451
+ })(ConversationStage || (ConversationStage = {}));
@@ -1,19 +1,16 @@
1
- import { LogLevel, TelemetryEvent } from "../TelemetryConstants";
1
+ import { ConversationStage, LogLevel, TelemetryEvent } from "../TelemetryConstants";
2
2
  import ScenarioMarker from "../ScenarioMarker";
3
3
  import { TelemetryHelper } from "../TelemetryHelper";
4
4
  import { AppInsightsTelemetryMessage } from "../../Constants";
5
5
  import { AppInsightsEventMapping } from "../AppInsightsEvents";
6
6
  var AllowedKeys;
7
7
  (function (AllowedKeys) {
8
- AllowedKeys["LogLevel"] = "LogLevel";
8
+ AllowedKeys["OrganizationId"] = "OrganizationId";
9
+ AllowedKeys["ConversationId"] = "LiveWorkItemId";
10
+ AllowedKeys["ElapsedTimeInMilliseconds"] = "Duration";
9
11
  AllowedKeys["Description"] = "Description";
10
- AllowedKeys["ExceptionDetails"] = "ExceptionDetails";
11
- AllowedKeys["ChannelId"] = "ChannelId";
12
+ AllowedKeys["ChannelId"] = "ChannelType";
12
13
  AllowedKeys["LCWRuntimeId"] = "ClientSessionId";
13
- AllowedKeys["ConversationId"] = "LiveWorkItemId";
14
- AllowedKeys["ChatId"] = "ChatThreadId";
15
- AllowedKeys["OrganizationId"] = "OrganizationId";
16
- AllowedKeys["ElapsedTimeInMilliseconds"] = "DurationInMilliseconds";
17
14
  })(AllowedKeys || (AllowedKeys = {}));
18
15
  let initializationPromise = null;
19
16
  export const appInsightsLogger = appInsightsKey => {
@@ -86,9 +83,9 @@ export const appInsightsLogger = appInsightsKey => {
86
83
  if (!_logger) return;
87
84
  const eventName = telemetryInput === null || telemetryInput === void 0 ? void 0 : (_telemetryInput$paylo = telemetryInput.payload) === null || _telemetryInput$paylo === void 0 ? void 0 : _telemetryInput$paylo.Event;
88
85
  const telemetryInfo = telemetryInput === null || telemetryInput === void 0 ? void 0 : (_telemetryInput$telem = telemetryInput.telemetryInfo) === null || _telemetryInput$telem === void 0 ? void 0 : _telemetryInput$telem.telemetryInfo;
89
- const eventProperties = setEventProperties(telemetryInfo);
90
86
  if (eventName) {
91
87
  const trackingEventName = getTrackingEventName(logLevel, eventName);
88
+ const eventProperties = setEventProperties(trackingEventName, telemetryInfo);
92
89
  _logger.trackEvent({
93
90
  name: trackingEventName,
94
91
  properties: eventProperties
@@ -107,17 +104,36 @@ export const appInsightsLogger = appInsightsKey => {
107
104
  };
108
105
 
109
106
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
110
- function setEventProperties(telemetryInfo) {
107
+ function setEventProperties(eventName, telemetryInfo) {
111
108
  const eventProperties = {};
112
109
  if (telemetryInfo) {
113
110
  for (const key in AllowedKeys) {
114
- const finalKey = AllowedKeys[key]; // get renamed keys for LCWRuntimeId, ConversationId, ChatId
111
+ const finalKey = AllowedKeys[key]; // get renamed keys for LCWRuntimeId, ConversationId
115
112
  const value = telemetryInfo[key];
116
113
  if (value !== undefined && value !== null && value !== "") {
117
114
  eventProperties[finalKey] = value;
118
115
  }
119
116
  }
120
117
  }
118
+ // Include exception details in description for error events
119
+ if (telemetryInfo !== null && telemetryInfo !== void 0 && telemetryInfo.ExceptionDetails) {
120
+ eventProperties[AllowedKeys.Description] = JSON.stringify(telemetryInfo.ExceptionDetails);
121
+ }
122
+ const customProperties = (() => {
123
+ if (!(telemetryInfo !== null && telemetryInfo !== void 0 && telemetryInfo.CustomProperties)) {
124
+ return {};
125
+ }
126
+ try {
127
+ return typeof telemetryInfo.CustomProperties === "string" ? JSON.parse(telemetryInfo.CustomProperties) : telemetryInfo.CustomProperties;
128
+ } catch (error) {
129
+ console.warn("Failed to parse CustomProperties:", error);
130
+ return {};
131
+ }
132
+ })();
133
+ // Additional properties
134
+ eventProperties["ConversationStage"] = customProperties.ConversationStage ?? ConversationStage.CSREngagement;
135
+ eventProperties["Scenario"] = "Conversation Diagnostics";
136
+ eventProperties["OperationName"] = eventName.includes(": ") ? eventName.split(": ")[1] : eventName;
121
137
  return eventProperties;
122
138
  }
123
139
  function getTrackingEventName(logLevel, eventName) {