@microsoft/omnichannel-chat-widget 0.1.0-main.cf54410 → 0.1.0-main.e170704

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 (141) hide show
  1. package/README.md +227 -0
  2. package/lib/cjs/assets/Audios.js +8 -0
  3. package/lib/cjs/assets/Icons.js +28 -0
  4. package/lib/cjs/common/Constants.js +36 -4
  5. package/lib/cjs/common/telemetry/TelemetryConstants.js +42 -4
  6. package/lib/cjs/common/telemetry/TelemetryHelper.js +13 -0
  7. package/lib/cjs/common/telemetry/TelemetryManager.js +11 -6
  8. package/lib/cjs/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  9. package/lib/cjs/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  10. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +31 -10
  11. package/lib/cjs/common/utils.js +15 -2
  12. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +1 -1
  13. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -41
  14. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  15. package/lib/cjs/components/footerstateful/FooterStateful.js +4 -5
  16. package/lib/cjs/components/headerstateful/HeaderStateful.js +11 -8
  17. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +3 -4
  18. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +16 -9
  19. package/lib/cjs/components/livechatwidget/common/endChat.js +102 -58
  20. package/lib/cjs/components/livechatwidget/common/initCallingSdk.js +5 -0
  21. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +28 -7
  22. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +105 -20
  23. package/lib/cjs/components/livechatwidget/common/registerTelemetryLoggers.js +6 -17
  24. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +6 -5
  25. package/lib/cjs/components/livechatwidget/common/startChat.js +52 -39
  26. package/lib/cjs/components/livechatwidget/common/startProactiveChat.js +3 -3
  27. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +96 -28
  28. package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  29. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +8 -0
  30. package/lib/cjs/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +8 -0
  31. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +5 -5
  32. package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +10 -4
  33. package/lib/cjs/{assets/assets.d.js → components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js} +0 -0
  34. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  35. package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +51 -73
  36. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +9 -46
  37. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +3 -1
  38. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  39. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +44 -0
  40. package/lib/cjs/contexts/common/ConversationState.js +3 -2
  41. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +7 -7
  42. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +7 -2
  43. package/lib/cjs/contexts/createReducer.js +7 -10
  44. package/lib/cjs/controller/componentController.js +2 -2
  45. package/lib/cjs/plugins/newMessageEventHandler.js +102 -0
  46. package/lib/esm/assets/Audios.js +1 -0
  47. package/lib/esm/assets/Icons.js +11 -0
  48. package/lib/esm/common/Constants.js +32 -3
  49. package/lib/esm/common/telemetry/TelemetryConstants.js +38 -3
  50. package/lib/esm/common/telemetry/TelemetryHelper.js +13 -1
  51. package/lib/esm/common/telemetry/TelemetryManager.js +10 -6
  52. package/lib/esm/common/telemetry/defaultConfigs/defaultAriaConfig.js +1 -1
  53. package/lib/esm/common/telemetry/defaultConfigs/defaultTelemetryConfiguration.js +4 -1
  54. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +33 -13
  55. package/lib/esm/common/utils.js +11 -1
  56. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +1 -1
  57. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +8 -37
  58. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +2 -2
  59. package/lib/esm/components/footerstateful/FooterStateful.js +4 -5
  60. package/lib/esm/components/headerstateful/HeaderStateful.js +12 -9
  61. package/lib/esm/components/livechatwidget/common/createMarkdown.js +3 -3
  62. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +14 -10
  63. package/lib/esm/components/livechatwidget/common/endChat.js +100 -55
  64. package/lib/esm/components/livechatwidget/common/initCallingSdk.js +3 -0
  65. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +25 -8
  66. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +94 -20
  67. package/lib/esm/components/livechatwidget/common/registerTelemetryLoggers.js +5 -14
  68. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +6 -5
  69. package/lib/esm/components/livechatwidget/common/startChat.js +50 -38
  70. package/lib/esm/components/livechatwidget/common/startProactiveChat.js +5 -5
  71. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +88 -27
  72. package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +1 -1
  73. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -0
  74. package/lib/esm/components/postchatloadingpanestateful/PostChatLoadingPaneStateful.js +6 -0
  75. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +4 -4
  76. package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +9 -5
  77. package/lib/esm/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.js +1 -0
  78. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +4 -0
  79. package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -12
  80. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +7 -44
  81. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
  82. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware.js +6 -6
  83. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.js +31 -0
  84. package/lib/esm/contexts/common/ConversationState.js +3 -2
  85. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +7 -7
  86. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +7 -2
  87. package/lib/esm/contexts/createReducer.js +7 -9
  88. package/lib/esm/controller/componentController.js +2 -2
  89. package/lib/esm/plugins/newMessageEventHandler.js +84 -0
  90. package/lib/types/assets/Audios.d.ts +1 -0
  91. package/lib/types/assets/Icons.d.ts +11 -0
  92. package/lib/types/common/Constants.d.ts +18 -1
  93. package/lib/types/common/interfaces/IContextDataStore.d.ts +1 -1
  94. package/lib/types/common/telemetry/TelemetryConstants.d.ts +25 -1
  95. package/lib/types/common/telemetry/TelemetryHelper.d.ts +1 -0
  96. package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +3 -3
  97. package/lib/types/common/utils.d.ts +1 -0
  98. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulParams.d.ts +5 -2
  99. package/lib/types/components/footerstateful/audionotificationstateful/interfaces/IAudioNotificationStatefulParams.d.ts +0 -1
  100. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +4 -1
  101. package/lib/types/components/livechatwidget/common/endChat.d.ts +4 -1
  102. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -2
  103. package/lib/types/components/livechatwidget/common/startProactiveChat.d.ts +2 -1
  104. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetComponentOverrides.d.ts +1 -0
  105. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +1 -1
  106. package/lib/types/components/proactivechatpanestateful/interfaces/IProactiveChatNotificationConfig.d.ts +3 -0
  107. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +1 -0
  108. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  109. package/lib/types/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.d.ts +1 -1
  110. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.d.ts +0 -1
  111. package/lib/types/components/webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger.d.ts +1 -0
  112. package/lib/types/contexts/common/ConversationState.d.ts +3 -2
  113. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +1 -0
  114. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +7 -7
  115. package/lib/types/plugins/newMessageEventHandler.d.ts +2 -0
  116. package/package.json +9 -11
  117. package/lib/cjs/assets/audios/newMessageNotification.mp3 +0 -0
  118. package/lib/cjs/assets/icons/archiveIcon.svg +0 -3
  119. package/lib/cjs/assets/icons/audioIcon.svg +0 -6
  120. package/lib/cjs/assets/icons/blankIcon.svg +0 -6
  121. package/lib/cjs/assets/icons/excelIcon.svg +0 -6
  122. package/lib/cjs/assets/icons/imageIcon.svg +0 -6
  123. package/lib/cjs/assets/icons/oneNoteIcon.svg +0 -6
  124. package/lib/cjs/assets/icons/pdfIcon.svg +0 -6
  125. package/lib/cjs/assets/icons/powerpointIcon.svg +0 -6
  126. package/lib/cjs/assets/icons/videoIcon.svg +0 -6
  127. package/lib/cjs/assets/icons/visioIcon.svg +0 -6
  128. package/lib/cjs/assets/icons/wordIcon.svg +0 -6
  129. package/lib/esm/assets/assets.d.js +0 -0
  130. package/lib/esm/assets/audios/newMessageNotification.mp3 +0 -0
  131. package/lib/esm/assets/icons/archiveIcon.svg +0 -3
  132. package/lib/esm/assets/icons/audioIcon.svg +0 -6
  133. package/lib/esm/assets/icons/blankIcon.svg +0 -6
  134. package/lib/esm/assets/icons/excelIcon.svg +0 -6
  135. package/lib/esm/assets/icons/imageIcon.svg +0 -6
  136. package/lib/esm/assets/icons/oneNoteIcon.svg +0 -6
  137. package/lib/esm/assets/icons/pdfIcon.svg +0 -6
  138. package/lib/esm/assets/icons/powerpointIcon.svg +0 -6
  139. package/lib/esm/assets/icons/videoIcon.svg +0 -6
  140. package/lib/esm/assets/icons/visioIcon.svg +0 -6
  141. package/lib/esm/assets/icons/wordIcon.svg +0 -6
@@ -11,6 +11,9 @@ const defaultTelemetryConfiguration = {
11
11
  telemetryDisabled: false,
12
12
  disableConsoleLog: false,
13
13
  telemetryLoggers: [],
14
- ariaConfigurations: _defaultAriaConfig.defaultAriaConfig
14
+ ariaConfigurations: _defaultAriaConfig.defaultAriaConfig,
15
+ chatWidgetVersion: "0.0.0-0",
16
+ chatComponentVersion: "0.0.0-0",
17
+ OCChatSDKVersion: "0.0.0-0"
15
18
  };
16
19
  exports.defaultTelemetryConfiguration = defaultTelemetryConfiguration;
@@ -17,6 +17,8 @@ var _Constants = require("../../Constants");
17
17
 
18
18
  var _TelemetryHelper = require("../TelemetryHelper");
19
19
 
20
+ var _TelemetryManager = require("../TelemetryManager");
21
+
20
22
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
21
23
 
22
24
  const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUriForTelemetry, ariaTelemetryApplicationName) => {
@@ -30,6 +32,21 @@ const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUr
30
32
 
31
33
  if (!(0, _utils.isNullOrEmptyString)(collectiorUriForTelemetry)) {
32
34
  configuration.collectorUri = collectiorUriForTelemetry;
35
+ } else {
36
+ if (_TelemetryManager.TelemetryManager.InternalTelemetryData.environmentVersion == _Constants.EnvironmentVersion.prod) {
37
+ var _TelemetryManager$Int;
38
+
39
+ const orgUrl = (_TelemetryManager$Int = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int === void 0 ? void 0 : _TelemetryManager$Int.orgUrl;
40
+
41
+ if (!(0, _utils.isNullOrUndefined)(orgUrl)) {
42
+ // If the given org is a Production EU org, modify the Aria collector uri
43
+ const region = (0, _utils.getDomain)(orgUrl);
44
+
45
+ if (region === _Constants.AriaTelemetryConstants.EU) {
46
+ configuration.collectorUri = _Constants.AriaTelemetryConstants.EUROPE_ENDPOINT;
47
+ }
48
+ }
49
+ }
33
50
  }
34
51
 
35
52
  try {
@@ -48,20 +65,24 @@ const ariaTelemetryLogger = (ariaTelemetryKey, disabledCookieUsage, collectiorUr
48
65
 
49
66
  const ariaLogger = {
50
67
  log: (logLevel, telemetryInput) => {
51
- let property;
52
- const eventProperties = new _AWTEventProperties.default();
68
+ try {
69
+ let property;
70
+ const eventProperties = new _AWTEventProperties.default();
53
71
 
54
- const event = _TelemetryHelper.TelemetryHelper.buildTelemetryEvent(logLevel, telemetryInput);
72
+ const event = _TelemetryHelper.TelemetryHelper.buildTelemetryEvent(logLevel, telemetryInput);
55
73
 
56
- eventProperties.setName(telemetryInput.scenarioType);
74
+ eventProperties.setName(telemetryInput.scenarioType);
57
75
 
58
- for (const key of Object.keys(event)) {
59
- property = typeof event[key] === "object" ? JSON.stringify(event[key]) : event[key];
60
- eventProperties.setProperty(key, property);
61
- }
76
+ for (const key of Object.keys(event)) {
77
+ property = typeof event[key] === "object" ? JSON.stringify(event[key]) : event[key];
78
+ eventProperties.setProperty(key, property);
79
+ }
62
80
 
63
- eventProperties.setPropertyWithPii(ariaTelemetryApplicationName, _Constants.Constants.LiveChatWidget, _Enums.AWTPiiKind.GenericData);
64
- logger() ? logger().logEvent(eventProperties) : console.log("Unable to initialize aria logger");
81
+ eventProperties.setPropertyWithPii(ariaTelemetryApplicationName, _Constants.Constants.LiveChatWidget, _Enums.AWTPiiKind.GenericData);
82
+ logger() ? logger().logEvent(eventProperties) : console.log("Unable to initialize aria logger");
83
+ } catch (error) {
84
+ console.error("Error in logging telemetry to Aria logger:" + error);
85
+ }
65
86
  },
66
87
  dispose: () => {
67
88
  _AWTLogManager.default.flush(function () {
@@ -3,7 +3,7 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getTimestampHourMinute = exports.getLocaleDirection = exports.getIconText = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.createTimer = exports.changeLanguageCodeFormatForWebChat = void 0;
6
+ exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getTimestampHourMinute = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.createTimer = exports.changeLanguageCodeFormatForWebChat = void 0;
7
7
 
8
8
  var _Constants = require("./Constants");
9
9
 
@@ -332,6 +332,19 @@ const createTimer = () => {
332
332
  }
333
333
 
334
334
  };
335
+ }; // Returns the domain of the org
336
+
337
+
338
+ exports.createTimer = createTimer;
339
+
340
+ const getDomain = hostValue => {
341
+ for (let i = 0; i < _Constants.AriaTelemetryConstants.lcwEUDomainNames.length; i++) {
342
+ if (hostValue.endsWith(_Constants.AriaTelemetryConstants.lcwEUDomainNames[i])) {
343
+ return _Constants.AriaTelemetryConstants.EU;
344
+ }
345
+ }
346
+
347
+ return _Constants.AriaTelemetryConstants.Public;
335
348
  };
336
349
 
337
- exports.createTimer = createTimer;
350
+ exports.getDomain = getDomain;
@@ -50,7 +50,7 @@ const ChatButtonStateful = props => {
50
50
  dir: state.domainStates.globalDir,
51
51
  titleText: "Let's Chat!",
52
52
  subtitleText: "We're online.",
53
- hideNotificationBubble: !(state.appStates.isMinimized === true && state.appStates.unreadMessageCount > 0) || (buttonProps === null || buttonProps === void 0 ? void 0 : (_buttonProps$controlP = buttonProps.controlProps) === null || _buttonProps$controlP === void 0 ? void 0 : _buttonProps$controlP.hideNotificationBubble) === true,
53
+ hideNotificationBubble: (buttonProps === null || buttonProps === void 0 ? void 0 : (_buttonProps$controlP = buttonProps.controlProps) === null || _buttonProps$controlP === void 0 ? void 0 : _buttonProps$controlP.hideNotificationBubble) === true || state.appStates.isMinimized === false,
54
54
  unreadMessageCount: state.appStates.unreadMessageCount ? state.appStates.unreadMessageCount > _Constants.Constants.maximumUnreadMessageCount ? _Constants.Constants.maximumUnreadMessageCount.toString() + "+" : state.appStates.unreadMessageCount.toString() : "0",
55
55
  onClick: async () => {
56
56
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
@@ -7,12 +7,12 @@ exports.default = exports.ConfirmationPaneStateful = void 0;
7
7
 
8
8
  var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
9
9
 
10
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
11
+
10
12
  var _react = _interopRequireWildcard(require("react"));
11
13
 
12
14
  var _utils = require("../../common/utils");
13
15
 
14
- var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
15
-
16
16
  var _DimLayer = require("../dimlayer/DimLayer");
17
17
 
18
18
  var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
@@ -21,18 +21,12 @@ var _NotificationHandler = require("../webchatcontainerstateful/webchatcontrolle
21
21
 
22
22
  var _NotificationScenarios = require("../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios");
23
23
 
24
- var _PostChatSurveyMode = require("../postchatsurveypanestateful/enums/PostChatSurveyMode");
25
-
26
24
  var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
27
25
 
28
26
  var _useChatAdapterStore = _interopRequireDefault(require("../../hooks/useChatAdapterStore"));
29
27
 
30
28
  var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
31
29
 
32
- var _useChatSDKStore = _interopRequireDefault(require("../../hooks/useChatSDKStore"));
33
-
34
- var _Constants = require("../../common/Constants");
35
-
36
30
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
37
31
 
38
32
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
@@ -41,26 +35,20 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
41
35
 
42
36
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
43
37
  const ConfirmationPaneStateful = props => {
44
- var _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3, _state$domainStates$l4;
45
-
46
38
  const initialTabIndexMap = new Map();
47
- let elements = []; // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
-
49
- const chatSDK = (0, _useChatSDKStore.default)();
39
+ let elements = [];
50
40
  const [state, dispatch] = (0, _useChatContextStore.default)();
51
41
  const {
52
- endChat
42
+ prepareEndChat
53
43
  } = props; // eslint-disable-next-line @typescript-eslint/no-explicit-any
54
44
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
45
 
56
46
  const [adapter] = (0, _useChatAdapterStore.default)();
57
- const isPostChatEnabled = (_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.msdyn_postconversationsurveyenable;
58
- const postChatSurveyMode = (_state$domainStates$l3 = state.domainStates.liveChatConfig) === null || _state$domainStates$l3 === void 0 ? void 0 : (_state$domainStates$l4 = _state$domainStates$l3.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l4 === void 0 ? void 0 : _state$domainStates$l4.msdyn_postconversationsurveymode;
59
47
  const controlProps = {
60
48
  id: "oc-lcw-confirmation-pane",
61
49
  dir: state.domainStates.globalDir,
62
50
  onConfirm: async () => {
63
- _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.INFO, {
51
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
64
52
  Event: _TelemetryConstants.TelemetryEvent.ConfirmationConfirmButtonClicked,
65
53
  Description: "Confirmation pane Confirm button clicked"
66
54
  });
@@ -71,29 +59,8 @@ const ConfirmationPaneStateful = props => {
71
59
  });
72
60
 
73
61
  try {
74
- // check agent has joined conversation
75
- const conversationDetails = await chatSDK.getConversationDetails();
76
-
77
- if (isPostChatEnabled === "true" && postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Embed && conversationDetails.canRenderPostChat === _Constants.Constants.truePascal) {
78
- const loadPostChatEvent = {
79
- eventName: "LoadPostChatSurvey"
80
- };
81
-
82
- _omnichannelChatComponents.BroadcastService.postMessage(loadPostChatEvent);
83
- } else {
84
- (0, _utils.setTabIndices)(elements, initialTabIndexMap, true);
85
-
86
- try {
87
- await endChat(adapter);
88
- } catch (error) {
89
- _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
90
- Event: _TelemetryConstants.TelemetryEvent.CloseChatMethodException,
91
- ExceptionDetails: {
92
- exception: `Failed to endChat: ${error}`
93
- }
94
- });
95
- }
96
- }
62
+ (0, _utils.setTabIndices)(elements, initialTabIndexMap, true);
63
+ await prepareEndChat(adapter, state);
97
64
  } catch (ex) {
98
65
  _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
99
66
  Event: _TelemetryConstants.TelemetryEvent.GetConversationDetailsCallFailed,
@@ -106,7 +73,7 @@ const ConfirmationPaneStateful = props => {
106
73
  }
107
74
  },
108
75
  onCancel: () => {
109
- _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.INFO, {
76
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
110
77
  Event: _TelemetryConstants.TelemetryEvent.ConfirmationCancelButtonClicked,
111
78
  Description: "Confirmation pane Cancel button clicked."
112
79
  });
@@ -95,8 +95,8 @@ const EmailTranscriptPaneStateful = props => {
95
95
  },
96
96
  onCancel: () => {
97
97
  _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
98
- Event: _TelemetryConstants.TelemetryEvent.EmailTranscriptButtonClicked,
99
- Description: "Email Transcript button clicked."
98
+ Event: _TelemetryConstants.TelemetryEvent.EmailTranscriptCancelButtonClicked,
99
+ Description: "Email Transcript cancel button clicked."
100
100
  });
101
101
 
102
102
  closeEmailTranscriptPane();
@@ -17,6 +17,8 @@ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components
17
17
 
18
18
  var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
19
19
 
20
+ var _Audios = require("../../assets/Audios");
21
+
20
22
  var _NotificationHandler = require("../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler");
21
23
 
22
24
  var _NotificationScenarios = require("../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios");
@@ -29,8 +31,6 @@ var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatCo
29
31
 
30
32
  var _useChatSDKStore = _interopRequireDefault(require("../../hooks/useChatSDKStore"));
31
33
 
32
- var _newMessageNotification = _interopRequireDefault(require("../../assets/audios/newMessageNotification.mp3"));
33
-
34
34
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
35
35
 
36
36
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -122,9 +122,8 @@ const FooterStateful = props => {
122
122
  controlProps: controlProps,
123
123
  styleProps: footerProps === null || footerProps === void 0 ? void 0 : footerProps.styleProps
124
124
  }), /*#__PURE__*/_react.default.createElement(_AudioNotificationStateful.default, {
125
- audioSrc: (audioNotificationProps === null || audioNotificationProps === void 0 ? void 0 : audioNotificationProps.audioSrc) ?? _newMessageNotification.default,
126
- hideAudioNotificationButton: (footerProps === null || footerProps === void 0 ? void 0 : (_footerProps$controlP4 = footerProps.controlProps) === null || _footerProps$controlP4 === void 0 ? void 0 : _footerProps$controlP4.hideAudioNotificationButton) ?? false,
127
- isAudioMuted: state.appStates.isAudioMuted ?? false
125
+ audioSrc: (audioNotificationProps === null || audioNotificationProps === void 0 ? void 0 : audioNotificationProps.audioSrc) ?? _Audios.NewMessageNotificationSoundBase64,
126
+ isAudioMuted: state.appStates.isAudioMuted === null ? (footerProps === null || footerProps === void 0 ? void 0 : (_footerProps$controlP4 = footerProps.controlProps) === null || _footerProps$controlP4 === void 0 ? void 0 : _footerProps$controlP4.hideAudioNotificationButton) ?? false : state.appStates.isAudioMuted ?? false
128
127
  }));
129
128
  };
130
129
 
@@ -43,6 +43,7 @@ const HeaderStateful = props => {
43
43
 
44
44
  const [outOfOperatingHours, setOutOfOperatingHours] = (0, _react.useState)(((_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.OutOfOperatingHours) === "True");
45
45
  const outOfOfficeStyleProps = Object.assign({}, _defaultOutOfOfficeHeaderStyleProps.defaultOutOfOfficeHeaderStyleProps, outOfOfficeHeaderProps === null || outOfOfficeHeaderProps === void 0 ? void 0 : outOfOfficeHeaderProps.styleProps);
46
+ const conversationState = (0, _react.useRef)(state.appStates.conversationState);
46
47
  const controlProps = {
47
48
  id: "oc-lcw-header",
48
49
  dir: state.domainStates.globalDir,
@@ -63,17 +64,15 @@ const HeaderStateful = props => {
63
64
  Description: "Header Close button clicked."
64
65
  });
65
66
 
66
- if (state.appStates.conversationState === _ConversationState.ConversationState.Active) {
67
+ if (conversationState.current === _ConversationState.ConversationState.Active) {
67
68
  dispatch({
68
69
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SHOW_CONFIRMATION,
69
70
  payload: true
70
71
  });
71
- } else if (state.appStates.conversationState === _ConversationState.ConversationState.Postchat) {
72
- dispatch({
73
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_SHOULD_SHOW_POST_CHAT,
74
- payload: false
75
- });
76
- await endChat(adapter);
72
+ } else {
73
+ const skipEndChatSDK = true;
74
+ const skipCloseChat = false;
75
+ await endChat(adapter, skipEndChatSDK, skipCloseChat);
77
76
  }
78
77
 
79
78
  dispatch({
@@ -105,7 +104,11 @@ const HeaderStateful = props => {
105
104
  if (state.appStates.outsideOperatingHours) {
106
105
  setOutOfOperatingHours(true);
107
106
  }
108
- }, []);
107
+
108
+ if (state.appStates.conversationState) {
109
+ conversationState.current = state.appStates.conversationState;
110
+ }
111
+ }, [state.appStates]);
109
112
  return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.Header, {
110
113
  componentOverrides: headerProps === null || headerProps === void 0 ? void 0 : headerProps.componentOverrides,
111
114
  controlProps: outOfOperatingHours || state.appStates.conversationState === _ConversationState.ConversationState.OutOfOffice ? outOfOfficeControlProps : controlProps,
@@ -7,8 +7,6 @@ exports.createMarkdown = void 0;
7
7
 
8
8
  var _markdownIt = _interopRequireDefault(require("markdown-it"));
9
9
 
10
- var _slackMarkdownIt = _interopRequireDefault(require("slack-markdown-it"));
11
-
12
10
  var _markdownItForInline = _interopRequireDefault(require("markdown-it-for-inline"));
13
11
 
14
12
  var _defaultMarkdownLocalizedTexts = require("../../webchatcontainerstateful/common/defaultProps/defaultMarkdownLocalizedTexts");
@@ -26,8 +24,9 @@ const createMarkdown = (disableMarkdownMessageFormatting, disableNewLineMarkdown
26
24
  html: true,
27
25
  linkify: true,
28
26
  breaks: !disableNewLineMarkdownSupport
29
- });
30
- markdown.use(_slackMarkdownIt.default); // Markdown override for open link in new tab
27
+ }); // ToDo: Commenting below usage of plugin until deferred bug is resolved: https://github.com/mayashavin/markdown-it-slack/issues/1
28
+ // markdown.use(MarkdownSlack);
29
+ // Markdown override for open link in new tab
31
30
  // eslint-disable-next-line @typescript-eslint/no-explicit-any, quotes
32
31
 
33
32
  markdown.use(_markdownItForInline.default, "url_new_win", "link_open", function (tokens, idx, env) {
@@ -5,8 +5,12 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.dummyDefaultProps = void 0;
7
7
 
8
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
9
+
8
10
  var _mockadapter = _interopRequireDefault(require("../../../webchatcontainerstateful/common/mockadapter"));
9
11
 
12
+ var _Audios = require("../../../../assets/Audios");
13
+
10
14
  var _WebChatStoreLoader = require("../../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader");
11
15
 
12
16
  var _activityStatusMiddleware = require("../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware");
@@ -23,13 +27,15 @@ var _groupActivitiesMiddleware = require("../../../webchatcontainerstateful/webc
23
27
 
24
28
  var _typingIndicatorMiddleware = require("../../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/typingIndicatorMiddleware");
25
29
 
30
+ var _WebChatLogger = require("../../../webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger");
31
+
26
32
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
27
33
 
28
34
  /* eslint-disable @typescript-eslint/no-empty-function, @typescript-eslint/no-explicit-any */
29
35
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
30
36
  const dummyDefaultProps = {
31
37
  audioNotificationProps: {
32
- audioSrc: "assets/audios/newMessageNotification.mp3"
38
+ audioSrc: _Audios.NewMessageNotificationSoundBase64
33
39
  },
34
40
  callingContainerProps: {
35
41
  controlProps: {
@@ -384,7 +390,7 @@ const dummyDefaultProps = {
384
390
  margin: "-2px -2px -2px -3px",
385
391
  justifyContent: "center",
386
392
  backgroundSize: "65% 65%",
387
- backgroundImage: "assets/imgs/chat.svg",
393
+ backgroundImage: `url(${_omnichannelChatComponents.ModernChatIconBase64})`,
388
394
  display: "flex",
389
395
  backgroundRepeat: "no-repeat",
390
396
  backgroundPosition: "center"
@@ -905,7 +911,7 @@ const dummyDefaultProps = {
905
911
  },
906
912
  headerIconProps: {
907
913
  id: "oc-lcw-header-icon",
908
- src: "assets/imgs/chatIcon.svg",
914
+ src: _omnichannelChatComponents.ModernChatIconBase64,
909
915
  alt: "Chat Icon",
910
916
  className: undefined
911
917
  },
@@ -1030,7 +1036,7 @@ const dummyDefaultProps = {
1030
1036
  alignSelf: "auto"
1031
1037
  },
1032
1038
  iconImageProps: {
1033
- src: "assets/imgs/chat.svg",
1039
+ src: "data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDAiIGhlaWdodD0iNDAiIHZpZXdCb3g9IjAgMCA0MCA0MCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4NCjxnIGZpbHRlcj0idXJsKCNmaWx0ZXIwX2lpKSI+DQo8cGF0aCBkPSJNMTUuMTk3MSAxNi4yNzI1VjI1Ljg1MjRDMTUuMTk3MSAyNy4zODExIDE1Ljg0MDEgMjcuNTIwMSAxNi45ODMyIDI3LjUyMDFMMjYuNzA4NCAyNy41NjQ5TDMxLjAwMzkgMzIuMzEyM1YyNy41NjQ5SDMxLjg5N0MzMi4xNzQzIDI3LjU2MzcgMzIuNDQ4NyAyNy41MDc3IDMyLjcwNDUgMjcuNDAwMUMzMi45NjAzIDI3LjI5MjQgMzMuMTkyNSAyNy4xMzUzIDMzLjM4NzggMjYuOTM3NUMzMy41ODMxIDI2LjczOTggMzMuNzM3NyAyNi41MDU0IDMzLjg0MjcgMjYuMjQ3N0MzMy45NDc4IDI1Ljk5IDM0LjAwMTMgMjUuNzE0IDM0LjAwMDEgMjUuNDM1NVYxNi4zMDM4QzM0LjAwMTMgMTYuMDI1NCAzMy45NDc4IDE1Ljc0OTQgMzMuODQyNyAxNS40OTE3QzMzLjczNzcgMTUuMjM0IDMzLjU4MzEgMTQuOTk5NiAzMy4zODc4IDE0LjgwMThDMzMuMTkyNSAxNC42MDQxIDMyLjk2MDMgMTQuNDQ2OSAzMi43MDQ1IDE0LjMzOTNDMzIuNDQ4NyAxNC4yMzE2IDMyLjE3NDMgMTQuMTc1NiAzMS44OTcgMTQuMTc0NEwxNy4zMDQ3IDE0LjE0MzFDMTcuMDI2OSAxNC4xNDM3IDE2Ljc1MiAxNC4xOTkyIDE2LjQ5NTcgMTQuMzA2NkMxNi4yMzk0IDE0LjQxNCAxNi4wMDY3IDE0LjU3MTEgMTUuODEwOSAxNC43Njg5QzE1LjYxNTIgMTQuOTY2NyAxNS40NjAyIDE1LjIwMTMgMTUuMzU0OCAxNS40NTkzQzE1LjI0OTUgMTUuNzE3MyAxNS4xOTU5IDE1Ljk5MzYgMTUuMTk3MSAxNi4yNzI1WiIgZmlsbD0iI0Q2RDZENiIvPg0KPC9nPg0KPGcgZmlsdGVyPSJ1cmwoI2ZpbHRlcjFfZGlpKSI+DQo8cGF0aCBkPSJNMjcuODczNSA2LjY5ODg3VjE4Ljg0MDlDMjcuODczNSAyMC43Nzg1IDI3LjA1NzIgMjAuOTU0NiAyNS42MDU4IDIwLjk1NDZMMTMuMjU4IDIxLjAxMTRMNy44MDQxNCAyNy4wMjg1VjIxLjAxMTRINi42NzAyN0M2LjMxODEyIDIxLjAwOTkgNS45Njk3MSAyMC45Mzg5IDUuNjQ0OTMgMjAuODAyNUM1LjMyMDE2IDIwLjY2NjEgNS4wMjUzOCAyMC40NjY4IDQuNzc3NDIgMjAuMjE2MkM0LjUyOTQ2IDE5Ljk2NTYgNC4zMzMxOSAxOS42Njg1IDQuMTk5OCAxOS4zNDE5QzQuMDY2NDIgMTkuMDE1MiAzLjk5ODUzIDE4LjY2NTUgNC4wMDAwMiAxOC4zMTI1VjYuNzM4NjRDMy45OTg1MyA2LjM4NTcxIDQuMDY2NDIgNi4wMzU5NSA0LjE5OTggNS43MDkzMUM0LjMzMzE5IDUuMzgyNjcgNC41Mjk0NiA1LjA4NTU3IDQuNzc3NDIgNC44MzQ5NUM1LjAyNTM4IDQuNTg0MzQgNS4zMjAxNiA0LjM4NTEzIDUuNjQ0OTMgNC4yNDg2OUM1Ljk2OTcxIDQuMTEyMjUgNi4zMTgxMiA0LjA0MTI2IDYuNjcwMjcgNC4wMzk3N0wyNS4xOTc2IDRDMjUuNTUwMiA0LjAwMDc0IDI1Ljg5OTMgNC4wNzExOCAyNi4yMjQ3IDQuMjA3MjlDMjYuNTUwMSA0LjM0MzM5IDI2Ljg0NTYgNC41NDI0OSAyNy4wOTQxIDQuNzkzMThDMjcuMzQyNyA1LjA0Mzg2IDI3LjUzOTUgNS4zNDEyMiAyNy42NzMyIDUuNjY4MjNDMjcuODA3IDUuOTk1MjMgMjcuODc1IDYuMzQ1NDYgMjcuODczNSA2LjY5ODg3WiIgZmlsbD0idXJsKCNwYWludDBfbGluZWFyKSIvPg0KPC9nPg0KPGRlZnM+DQo8ZmlsdGVyIGlkPSJmaWx0ZXIwX2lpIiB4PSIxNS4xOTcxIiB5PSIxNC4xNDMxIiB3aWR0aD0iMTguODAzMSIgaGVpZ2h0PSIxOC4xNjkzIiBmaWx0ZXJVbml0cz0idXNlclNwYWNlT25Vc2UiIGNvbG9yLWludGVycG9sYXRpb24tZmlsdGVycz0ic1JHQiI+DQo8ZmVGbG9vZCBmbG9vZC1vcGFjaXR5PSIwIiByZXN1bHQ9IkJhY2tncm91bmRJbWFnZUZpeCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJCYWNrZ3JvdW5kSW1hZ2VGaXgiIHJlc3VsdD0ic2hhcGUiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMC4yIiBkeT0iLTAuMiIvPg0KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIvPg0KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAuMTcgMCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9InNoYXBlIiByZXN1bHQ9ImVmZmVjdDFfaW5uZXJTaGFkb3ciLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMC41IiBkeT0iLTAuNSIvPg0KPGZlQ29tcG9zaXRlIGluMj0iaGFyZEFscGhhIiBvcGVyYXRvcj0iYXJpdGhtZXRpYyIgazI9Ii0xIiBrMz0iMSIvPg0KPGZlQ29sb3JNYXRyaXggdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAuMTYgMCIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbjI9ImVmZmVjdDFfaW5uZXJTaGFkb3ciIHJlc3VsdD0iZWZmZWN0Ml9pbm5lclNoYWRvdyIvPg0KPC9maWx0ZXI+DQo8ZmlsdGVyIGlkPSJmaWx0ZXIxX2RpaSIgeD0iMCIgeT0iMCIgd2lkdGg9IjM5Ljg3MzYiIGhlaWdodD0iMzkuMDI4NSIgZmlsdGVyVW5pdHM9InVzZXJTcGFjZU9uVXNlIiBjb2xvci1pbnRlcnBvbGF0aW9uLWZpbHRlcnM9InNSR0IiPg0KPGZlRmxvb2QgZmxvb2Qtb3BhY2l0eT0iMCIgcmVzdWx0PSJCYWNrZ3JvdW5kSW1hZ2VGaXgiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIi8+DQo8ZmVPZmZzZXQgZHg9IjQiIGR5PSI0Ii8+DQo8ZmVHYXVzc2lhbkJsdXIgc3RkRGV2aWF0aW9uPSI0Ii8+DQo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMC4yNSAwIi8+DQo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0iQmFja2dyb3VuZEltYWdlRml4IiByZXN1bHQ9ImVmZmVjdDFfZHJvcFNoYWRvdyIvPg0KPGZlQmxlbmQgbW9kZT0ibm9ybWFsIiBpbj0iU291cmNlR3JhcGhpYyIgaW4yPSJlZmZlY3QxX2Ryb3BTaGFkb3ciIHJlc3VsdD0ic2hhcGUiLz4NCjxmZUNvbG9yTWF0cml4IGluPSJTb3VyY2VBbHBoYSIgdHlwZT0ibWF0cml4IiB2YWx1ZXM9IjAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDEyNyAwIiByZXN1bHQ9ImhhcmRBbHBoYSIvPg0KPGZlT2Zmc2V0IGR4PSItMiIgZHk9Ii0yIi8+DQo8ZmVDb21wb3NpdGUgaW4yPSJoYXJkQWxwaGEiIG9wZXJhdG9yPSJhcml0aG1ldGljIiBrMj0iLTEiIGszPSIxIi8+DQo8ZmVDb2xvck1hdHJpeCB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwIDEgMCAwIDAgMC4xNyAwIi8+DQo8ZmVCbGVuZCBtb2RlPSJub3JtYWwiIGluMj0ic2hhcGUiIHJlc3VsdD0iZWZmZWN0Ml9pbm5lclNoYWRvdyIvPg0KPGZlQ29sb3JNYXRyaXggaW49IlNvdXJjZUFscGhhIiB0eXBlPSJtYXRyaXgiIHZhbHVlcz0iMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMCAwIDAgMTI3IDAiIHJlc3VsdD0iaGFyZEFscGhhIi8+DQo8ZmVPZmZzZXQgZHg9Ii0xIiBkeT0iLTEiLz4NCjxmZUNvbXBvc2l0ZSBpbjI9ImhhcmRBbHBoYSIgb3BlcmF0b3I9ImFyaXRobWV0aWMiIGsyPSItMSIgazM9IjEiLz4NCjxmZUNvbG9yTWF0cml4IHR5cGU9Im1hdHJpeCIgdmFsdWVzPSIwIDAgMCAwIDEgMCAwIDAgMCAxIDAgMCAwIDAgMSAwIDAgMCAwLjE2IDAiLz4NCjxmZUJsZW5kIG1vZGU9Im5vcm1hbCIgaW4yPSJlZmZlY3QyX2lubmVyU2hhZG93IiByZXN1bHQ9ImVmZmVjdDNfaW5uZXJTaGFkb3ciLz4NCjwvZmlsdGVyPg0KPGxpbmVhckdyYWRpZW50IGlkPSJwYWludDBfbGluZWFyIiB4MT0iLTAuMzk1MDAxIiB5MT0iMjMuMTI4MiIgeDI9IjIwLjEwNTgiIHkyPSIzNy44NDc0IiBncmFkaWVudFVuaXRzPSJ1c2VyU3BhY2VPblVzZSI+DQo8c3RvcCBzdG9wLWNvbG9yPSIjRUZFRkVGIi8+DQo8c3RvcCBvZmZzZXQ9IjEiIHN0b3AtY29sb3I9IndoaXRlIi8+DQo8L2xpbmVhckdyYWRpZW50Pg0KPC9kZWZzPg0KPC9zdmc+DQo=",
1034
1040
  imageFit: 0,
1035
1041
  width: "86px",
1036
1042
  height: "86px",
@@ -1238,7 +1244,7 @@ const dummyDefaultProps = {
1238
1244
  },
1239
1245
  headerContainerStyleProps: {
1240
1246
  backgroundColor: "rgb(49, 95, 162)",
1241
- backgroundImage: "assets/imgs/Proactive_banner.png",
1247
+ backgroundImage: `url(${_omnichannelChatComponents.ProactiveChatBannerBase64})`,
1242
1248
  backgroundPosition: "initial",
1243
1249
  backgroundRepeat: "no-repeat",
1244
1250
  borderTopLeftRadius: "inherit",
@@ -1266,7 +1272,7 @@ const dummyDefaultProps = {
1266
1272
  fontWeight: "600"
1267
1273
  },
1268
1274
  closeButtonStyleProps: {
1269
- backgroundImage: "assets/imgs/closeChatButton.svg",
1275
+ backgroundImage: `url(${_omnichannelChatComponents.CloseChatButtonIconBase64})`,
1270
1276
  backgroundPosition: "center",
1271
1277
  backgroundRepeat: "no-repeat",
1272
1278
  color: "#605e5c",
@@ -1389,7 +1395,7 @@ const dummyDefaultProps = {
1389
1395
  lineHeight: "19px"
1390
1396
  },
1391
1397
  iconStyleProps: {
1392
- backgroundImage: "assets/imgs//ChatReconnectPopupIcon.png",
1398
+ backgroundImage: `url(${_omnichannelChatComponents.ChatReconnectIconBase64})`,
1393
1399
  backgroundPosition: "center",
1394
1400
  backgroundRepeat: "no-repeat",
1395
1401
  backgroundSize: "200px",
@@ -1440,7 +1446,8 @@ const dummyDefaultProps = {
1440
1446
  },
1441
1447
  authClientFunction: undefined,
1442
1448
  isReconnectEnabled: undefined,
1443
- reconnectId: undefined
1449
+ reconnectId: undefined,
1450
+ redirectInSameWindow: undefined
1444
1451
  },
1445
1452
  styleProps: {
1446
1453
  generalStyles: {
@@ -1512,7 +1519,7 @@ const dummyDefaultProps = {
1512
1519
  internalErrorBoxClass: undefined,
1513
1520
  internalRenderErrorBox: undefined,
1514
1521
  locale: "en-US",
1515
- onTelemetry: undefined,
1522
+ onTelemetry: (0, _WebChatLogger.createWebChatTelemetry)(),
1516
1523
  overrideLocalizedStrings: undefined,
1517
1524
  renderMarkdown: (0, _createMarkdown.createMarkdown)(false, false),
1518
1525
  scrollToEndButtonMiddleware: undefined,
@@ -3,79 +3,123 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.endChat = void 0;
6
+ exports.prepareEndChat = exports.endChat = void 0;
7
7
 
8
8
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
9
 
10
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
11
+
10
12
  var _ConversationState = require("../../../contexts/common/ConversationState");
11
13
 
12
14
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
13
15
 
14
- var _NotificationHandler = require("../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler");
15
-
16
- var _NotificationScenarios = require("../../webchatcontainerstateful/webchatcontroller/enums/NotificationScenarios");
17
-
18
16
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
19
17
 
20
18
  var _WebChatStoreLoader = require("../../webchatcontainerstateful/webchatcontroller/WebChatStoreLoader");
21
19
 
22
20
  var _defaultWebChatContainerStatefulProps = require("../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps");
23
21
 
24
- var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
22
+ var _PostChatSurveyMode = require("../../postchatsurveypanestateful/enums/PostChatSurveyMode");
23
+
24
+ var _Constants = require("../../../common/Constants");
25
25
 
26
26
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
- const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter) => {
28
- try {
29
- var _props$webChatContain;
30
-
31
- _TelemetryHelper.TelemetryHelper.logConfigDataEvent(_TelemetryConstants.LogLevel.INFO, {
32
- Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCall
33
- });
34
-
35
- await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat());
36
- adapter === null || adapter === void 0 ? void 0 : adapter.end();
37
- setAdapter(undefined);
38
- setWebChatStyles({ ..._defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.webChatStyles,
39
- ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
40
- });
41
- _WebChatStoreLoader.WebChatStoreLoader.store = null;
42
- dispatch({
43
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
44
- payload: _ConversationState.ConversationState.Closed
45
- });
46
- dispatch({
47
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
48
- payload: false
49
- });
50
- dispatch({
51
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
52
- payload: undefined
53
- });
54
- dispatch({
55
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION,
56
- payload: null
57
- });
58
- dispatch({
59
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
60
- payload: undefined
61
- });
62
- dispatch({
63
- type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
64
- payload: undefined
65
- });
66
-
67
- _omnichannelChatComponents.BroadcastService.postMessage({
68
- eventName: "EndChat"
69
- });
70
- } catch (ex) {
71
- _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
72
- Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCallFailed,
73
- ExceptionDetails: {
74
- exception: ex
75
- }
76
- });
77
-
78
- _NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.Connection, "End Chat Call Failed: " + ex);
27
+ const prepareEndChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state) => {
28
+ var _state$domainStates$l, _state$domainStates$l2, _state$domainStates$l3, _state$domainStates$l4;
29
+
30
+ const isPostChatEnabled = (_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : (_state$domainStates$l2 = _state$domainStates$l.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.msdyn_postconversationsurveyenable;
31
+ const postChatSurveyMode = (_state$domainStates$l3 = state.domainStates.liveChatConfig) === null || _state$domainStates$l3 === void 0 ? void 0 : (_state$domainStates$l4 = _state$domainStates$l3.LiveWSAndLiveChatEngJoin) === null || _state$domainStates$l4 === void 0 ? void 0 : _state$domainStates$l4.msdyn_postconversationsurveymode;
32
+ const conversationDetails = await chatSDK.getConversationDetails();
33
+
34
+ if (isPostChatEnabled === "true" && (conversationDetails === null || conversationDetails === void 0 ? void 0 : conversationDetails.canRenderPostChat) === _Constants.Constants.truePascal) {
35
+ const skipEndChatSDK = false;
36
+ const skipCloseChat = true;
37
+ await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat);
38
+
39
+ if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Embed) {
40
+ const loadPostChatEvent = {
41
+ eventName: _TelemetryConstants.BroadcastEvent.LoadPostChatSurvey
42
+ };
43
+
44
+ _omnichannelChatComponents.BroadcastService.postMessage(loadPostChatEvent);
45
+ } else if (postChatSurveyMode === _PostChatSurveyMode.PostChatSurveyMode.Link) {
46
+ dispatch({
47
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
48
+ payload: _ConversationState.ConversationState.InActive
49
+ });
50
+ }
51
+ } else {
52
+ await endChat(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter);
53
+ }
54
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
55
+
56
+
57
+ exports.prepareEndChat = prepareEndChat;
58
+
59
+ const endChat = async (props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, skipEndChatSDK, skipCloseChat) => {
60
+ if (!skipEndChatSDK) {
61
+ try {
62
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
63
+ Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCall
64
+ });
65
+
66
+ await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat());
67
+ } catch (ex) {
68
+ _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
69
+ Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCallFailed,
70
+ ExceptionDetails: {
71
+ exception: ex
72
+ }
73
+ });
74
+ }
75
+ }
76
+
77
+ if (!skipCloseChat) {
78
+ try {
79
+ var _props$webChatContain;
80
+
81
+ adapter === null || adapter === void 0 ? void 0 : adapter.end();
82
+ setAdapter(undefined);
83
+ setWebChatStyles({ ..._defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.webChatStyles,
84
+ ...((_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : _props$webChatContain.webChatStyles)
85
+ });
86
+ _WebChatStoreLoader.WebChatStoreLoader.store = null;
87
+ dispatch({
88
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
89
+ payload: _ConversationState.ConversationState.Closed
90
+ });
91
+ dispatch({
92
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_ENDED_BY_AGENT,
93
+ payload: false
94
+ });
95
+ dispatch({
96
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
97
+ payload: undefined
98
+ });
99
+ dispatch({
100
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_AUDIO_NOTIFICATION,
101
+ payload: null
102
+ });
103
+ dispatch({
104
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
105
+ payload: undefined
106
+ });
107
+ dispatch({
108
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
109
+ payload: undefined
110
+ });
111
+
112
+ _omnichannelChatComponents.BroadcastService.postMessage({
113
+ eventName: _TelemetryConstants.BroadcastEvent.EndChat
114
+ });
115
+ } catch (error) {
116
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
117
+ Event: _TelemetryConstants.TelemetryEvent.CloseChatMethodException,
118
+ ExceptionDetails: {
119
+ exception: `Failed to endChat: ${error}`
120
+ }
121
+ });
122
+ }
79
123
  }
80
124
  };
81
125
 
@@ -17,6 +17,11 @@ const initCallingSdk = async (chatSDK, setVoiceVideoCallingSDK) => {
17
17
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
18
  const callingSDK = await chatSDK.getVoiceVideoCalling();
19
19
  setVoiceVideoCallingSDK(callingSDK);
20
+
21
+ _TelemetryHelper.TelemetryHelper.logCallingEvent(_TelemetryConstants.LogLevel.INFO, {
22
+ Event: _TelemetryConstants.TelemetryEvent.CallingSDKLoadSuccess
23
+ });
24
+
20
25
  return true;
21
26
  }
22
27