@microsoft/omnichannel-chat-widget 0.1.0-main.592da7b → 0.1.0-main.60c3e17

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 (124) hide show
  1. package/lib/cjs/common/Constants.js +4 -0
  2. package/lib/cjs/common/storage/default/defaultCacheManager.js +34 -0
  3. package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +114 -0
  4. package/lib/cjs/common/storage/default/defaultInMemoryDataStore.js +86 -0
  5. package/lib/cjs/common/telemetry/TelemetryConstants.js +19 -0
  6. package/lib/cjs/common/telemetry/loggers/ariaTelemetryLogger.js +31 -18
  7. package/lib/cjs/common/utils.js +64 -5
  8. package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +4 -5
  9. package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +4 -4
  10. package/lib/cjs/components/footerstateful/FooterStateful.js +5 -13
  11. package/lib/cjs/components/headerstateful/HeaderStateful.js +14 -7
  12. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +44 -0
  13. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +23 -0
  14. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  15. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +39 -0
  16. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +70 -0
  17. package/lib/cjs/components/livechatwidget/common/Deferred.js +42 -0
  18. package/lib/cjs/components/livechatwidget/common/authHelper.js +65 -0
  19. package/lib/cjs/components/livechatwidget/common/createAdapter.js +13 -1
  20. package/lib/cjs/components/livechatwidget/common/createFooter.js +7 -16
  21. package/lib/cjs/components/livechatwidget/common/createInternetConnectionChangeHandler.js +12 -0
  22. package/lib/cjs/components/livechatwidget/common/createMarkdown.js +31 -30
  23. package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +51 -19
  24. package/lib/cjs/components/livechatwidget/common/endChat.js +52 -24
  25. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +12 -0
  26. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +55 -35
  27. package/lib/cjs/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +0 -4
  28. package/lib/cjs/components/livechatwidget/common/shareObservable.js +45 -0
  29. package/lib/cjs/components/livechatwidget/common/startChat.js +135 -83
  30. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +188 -108
  31. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +6 -4
  32. package/lib/cjs/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  33. package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +4 -8
  34. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +20 -4
  35. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +4 -1
  36. package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +11 -0
  37. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +2 -0
  38. package/lib/cjs/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  39. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
  40. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +10 -0
  41. package/lib/cjs/contexts/common/ConversationState.js +3 -2
  42. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +2 -1
  43. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +13 -6
  44. package/lib/cjs/contexts/createReducer.js +10 -2
  45. package/lib/cjs/controller/componentController.js +2 -2
  46. package/lib/esm/common/Constants.js +4 -0
  47. package/lib/esm/common/storage/default/defaultCacheManager.js +19 -0
  48. package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +102 -0
  49. package/lib/esm/common/storage/default/defaultInMemoryDataStore.js +71 -0
  50. package/lib/esm/common/telemetry/TelemetryConstants.js +19 -0
  51. package/lib/esm/common/telemetry/loggers/ariaTelemetryLogger.js +29 -13
  52. package/lib/esm/common/utils.js +48 -3
  53. package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +4 -5
  54. package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +4 -4
  55. package/lib/esm/components/footerstateful/FooterStateful.js +5 -13
  56. package/lib/esm/components/headerstateful/HeaderStateful.js +14 -7
  57. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +34 -0
  58. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +14 -0
  59. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.js +1 -0
  60. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +29 -0
  61. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +59 -0
  62. package/lib/esm/components/livechatwidget/common/Deferred.js +33 -0
  63. package/lib/esm/components/livechatwidget/common/authHelper.js +50 -0
  64. package/lib/esm/components/livechatwidget/common/createAdapter.js +12 -2
  65. package/lib/esm/components/livechatwidget/common/createFooter.js +4 -15
  66. package/lib/esm/components/livechatwidget/common/createInternetConnectionChangeHandler.js +8 -0
  67. package/lib/esm/components/livechatwidget/common/createMarkdown.js +31 -30
  68. package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +51 -19
  69. package/lib/esm/components/livechatwidget/common/endChat.js +53 -25
  70. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +13 -2
  71. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +56 -37
  72. package/lib/esm/components/livechatwidget/common/setPostChatContextAndLoadSurvey.js +0 -4
  73. package/lib/esm/components/livechatwidget/common/shareObservable.js +38 -0
  74. package/lib/esm/components/livechatwidget/common/startChat.js +131 -83
  75. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +188 -110
  76. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +5 -4
  77. package/lib/esm/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.js +1 -0
  78. package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +5 -8
  79. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +15 -2
  80. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps.js +3 -1
  81. package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +4 -0
  82. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +2 -0
  83. package/lib/esm/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.js +1 -0
  84. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +2 -1
  85. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.js +3 -0
  86. package/lib/esm/contexts/common/ConversationState.js +3 -2
  87. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +2 -1
  88. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +11 -6
  89. package/lib/esm/contexts/createReducer.js +10 -2
  90. package/lib/esm/controller/componentController.js +2 -2
  91. package/lib/types/common/Constants.d.ts +2 -0
  92. package/lib/types/common/storage/default/defaultCacheManager.d.ts +4 -0
  93. package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +2 -0
  94. package/lib/types/common/storage/default/defaultInMemoryDataStore.d.ts +6 -0
  95. package/lib/types/common/telemetry/TelemetryConstants.d.ts +11 -2
  96. package/lib/types/common/utils.d.ts +7 -3
  97. package/lib/types/components/headerstateful/interfaces/IHeaderStatefulParams.d.ts +2 -1
  98. package/lib/types/components/livechatwidget/common/ActivityStreamHandler.d.ts +14 -0
  99. package/lib/types/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.d.ts +5 -0
  100. package/lib/types/components/livechatwidget/common/ActivitySubscriber/IActivitySubscriber.d.ts +6 -0
  101. package/lib/types/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.d.ts +7 -0
  102. package/lib/types/components/livechatwidget/common/ChatAdapterShim.d.ts +7 -0
  103. package/lib/types/components/livechatwidget/common/Deferred.d.ts +9 -0
  104. package/lib/types/components/livechatwidget/common/authHelper.d.ts +5 -0
  105. package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -4
  106. package/lib/types/components/livechatwidget/common/shareObservable.d.ts +1 -0
  107. package/lib/types/components/livechatwidget/common/startChat.d.ts +4 -3
  108. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +1 -0
  109. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +3 -2
  110. package/lib/types/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.d.ts +2 -2
  111. package/lib/types/components/postchatsurveypanestateful/interfaces/IPostChatSurveyPaneStatefulProps.d.ts +4 -0
  112. package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
  113. package/lib/types/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.d.ts +2 -0
  114. package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +1 -0
  115. package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +4 -0
  116. package/lib/types/components/webchatcontainerstateful/interfaces/IRenderingMiddlewareProps.d.ts +2 -1
  117. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
  118. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -1
  119. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles.d.ts +2 -0
  120. package/lib/types/contexts/common/ConversationState.d.ts +3 -2
  121. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +2 -2
  122. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +3 -2
  123. package/lib/types/contexts/common/LiveChatWidgetContextInitialState.d.ts +1 -2
  124. package/package.json +5 -4
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.DefaultActivitySubscriber = void 0;
7
+
8
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+
10
+ class DefaultActivitySubscriber {
11
+ constructor() {
12
+ _defineProperty(this, "observer", void 0);
13
+ }
14
+
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+ async next(activity) {
17
+ this.observer.next(activity);
18
+ return false;
19
+ }
20
+
21
+ }
22
+
23
+ exports.DefaultActivitySubscriber = DefaultActivitySubscriber;
@@ -0,0 +1,39 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.PauseActivitySubscriber = void 0;
7
+
8
+ var _ActivityStreamHandler = require("../ActivityStreamHandler");
9
+
10
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
11
+
12
+ class PauseActivitySubscriber {
13
+ constructor() {
14
+ _defineProperty(this, "observer", void 0);
15
+ }
16
+
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ async apply(activity) {
19
+ await _ActivityStreamHandler.ActivityStreamHandler.restorePromise;
20
+ return activity;
21
+ } // eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
22
+
23
+
24
+ applicable(activity) {
25
+ return true;
26
+ } // eslint-disable-next-line @typescript-eslint/no-explicit-any
27
+
28
+
29
+ async next(activity) {
30
+ if (this.applicable(activity)) {
31
+ return await this.apply(activity);
32
+ }
33
+
34
+ return activity;
35
+ }
36
+
37
+ }
38
+
39
+ exports.PauseActivitySubscriber = PauseActivitySubscriber;
@@ -0,0 +1,70 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.ChatAdapterShim = void 0;
7
+
8
+ var _DefaultActivitySubscriber = require("./ActivitySubscriber/DefaultActivitySubscriber");
9
+
10
+ var _shareObservable = require("./shareObservable");
11
+
12
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
13
+
14
+ class ChatAdapterShim {
15
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
16
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
18
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
19
+ constructor(chatAdapter) {
20
+ _defineProperty(this, "chatAdapter", void 0);
21
+
22
+ _defineProperty(this, "activityObserver", void 0);
23
+
24
+ _defineProperty(this, "subscribers", void 0);
25
+
26
+ this.subscribers = [];
27
+ this.chatAdapter = { ...chatAdapter,
28
+ activity$: (0, _shareObservable.shareObservable)( // eslint-disable-next-line @typescript-eslint/no-explicit-any
29
+ new window.Observable(observer => {
30
+ this.activityObserver = observer; // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
+
32
+ const abortController = new window.AbortController();
33
+
34
+ (async () => {
35
+ try {
36
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
37
+ for await (let activity of chatAdapter.activities({
38
+ signal: abortController.signal
39
+ })) {
40
+ for (const subscriber of [...this.subscribers, new _DefaultActivitySubscriber.DefaultActivitySubscriber()]) {
41
+ subscriber.observer = this.activityObserver;
42
+ activity = await subscriber.next(activity);
43
+
44
+ if (!activity) {
45
+ break;
46
+ }
47
+ }
48
+ }
49
+
50
+ observer.complete();
51
+ } catch (error) {
52
+ observer.error(error);
53
+ }
54
+ })();
55
+
56
+ return () => {
57
+ abortController.abort();
58
+ };
59
+ }))
60
+ };
61
+ } // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
+
63
+
64
+ addSubscriber(subscriber) {
65
+ this.subscribers.push(subscriber);
66
+ }
67
+
68
+ }
69
+
70
+ exports.ChatAdapterShim = ChatAdapterShim;
@@ -0,0 +1,42 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.Deferred = void 0;
7
+
8
+ function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
9
+
10
+ class Deferred {
11
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
12
+ constructor() {
13
+ _defineProperty(this, "_promise", void 0);
14
+
15
+ _defineProperty(this, "_resolve", void 0);
16
+
17
+ _defineProperty(this, "_reject", () => {
18
+ return;
19
+ });
20
+
21
+ _defineProperty(this, "resolve", value => {
22
+ this._resolve(value);
23
+ });
24
+
25
+ _defineProperty(this, "reject", value => {
26
+ this._reject(value);
27
+ });
28
+
29
+ this._promise = new Promise((resolve, reject) => {
30
+ this._resolve = resolve;
31
+ this._reject = reject;
32
+ });
33
+ } // eslint-disable-next-line @typescript-eslint/no-explicit-any
34
+
35
+
36
+ get promise() {
37
+ return this._promise;
38
+ }
39
+
40
+ }
41
+
42
+ exports.Deferred = Deferred;
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.removeAuthTokenProvider = exports.handleAuthentication = exports.getAuthClientFunction = void 0;
7
+
8
+ var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
+
10
+ var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
11
+
12
+ var _utils = require("../../../common/utils");
13
+
14
+ const getAuthClientFunction = chatConfig => {
15
+ let authClientFunction = undefined;
16
+
17
+ if (chatConfig !== null && chatConfig !== void 0 && chatConfig.LiveChatConfigAuthSettings) {
18
+ var _chatConfig$LiveChatC;
19
+
20
+ authClientFunction = (chatConfig === null || chatConfig === void 0 ? void 0 : (_chatConfig$LiveChatC = chatConfig.LiveChatConfigAuthSettings) === null || _chatConfig$LiveChatC === void 0 ? void 0 : _chatConfig$LiveChatC.msdyn_javascriptclientfunction) ?? undefined;
21
+ }
22
+
23
+ return authClientFunction;
24
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
25
+
26
+
27
+ exports.getAuthClientFunction = getAuthClientFunction;
28
+
29
+ const handleAuthentication = async (chatSDK, chatConfig, getAuthToken) => {
30
+ const authClientFunction = getAuthClientFunction(chatConfig);
31
+
32
+ if (getAuthToken && authClientFunction) {
33
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
34
+ Event: _TelemetryConstants.TelemetryEvent.GetAuthTokenCalled
35
+ });
36
+
37
+ const token = await getAuthToken(authClientFunction);
38
+
39
+ if (!(0, _utils.isNullOrEmptyString)(token)) {
40
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
41
+ chatSDK.setAuthTokenProvider(async () => {
42
+ return token;
43
+ });
44
+ return true;
45
+ } else {
46
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
47
+ Event: _TelemetryConstants.TelemetryEvent.ReceivedNullOrEmptyToken
48
+ });
49
+
50
+ return false;
51
+ }
52
+ }
53
+
54
+ return false;
55
+ }; // eslint-disable-next-line @typescript-eslint/no-explicit-any
56
+
57
+
58
+ exports.handleAuthentication = handleAuthentication;
59
+
60
+ const removeAuthTokenProvider = chatSDK => {
61
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
62
+ chatSDK.authenticatedUserToken = null;
63
+ };
64
+
65
+ exports.removeAuthTokenProvider = removeAuthTokenProvider;
@@ -13,6 +13,10 @@ var _NotificationScenarios = require("../../webchatcontainerstateful/webchatcont
13
13
 
14
14
  var _defaultMiddlewareLocalizedTexts = require("../../webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts");
15
15
 
16
+ var _ChatAdapterShim = require("./ChatAdapterShim");
17
+
18
+ var _PauseActivitySubscriber = require("./ActivitySubscriber/PauseActivitySubscriber");
19
+
16
20
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
17
21
  const createAdapter = async chatSDK => {
18
22
  const chatAdapterOptionalParams = {
@@ -34,7 +38,15 @@ const createAdapter = async chatSDK => {
34
38
  }
35
39
  }
36
40
  };
37
- return await chatSDK.createChatAdapter(chatAdapterOptionalParams);
41
+ let adapter = await chatSDK.createChatAdapter(chatAdapterOptionalParams); //so far, there is no need to convert to the shim adapter when using visual tests
42
+
43
+ if (chatSDK.isMockModeOn !== true) {
44
+ adapter = new _ChatAdapterShim.ChatAdapterShim(adapter);
45
+ adapter.addSubscriber(new _PauseActivitySubscriber.PauseActivitySubscriber());
46
+ return adapter.chatAdapter;
47
+ }
48
+
49
+ return adapter;
38
50
  };
39
51
 
40
52
  exports.createAdapter = createAdapter;
@@ -16,26 +16,17 @@ var _componentController = require("../../../controller/componentController");
16
16
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
17
 
18
18
  const createFooter = (props, state) => {
19
- var _props$footerProps, _props$controlProps, _props$componentOverr, _props$componentOverr2;
20
-
21
- const footerPropsHidden = { ...props.footerProps,
22
- controlProps: { ...((_props$footerProps = props.footerProps) === null || _props$footerProps === void 0 ? void 0 : _props$footerProps.controlProps),
23
- hideDownloadTranscriptButton: true,
24
- hideEmailTranscriptButton: true,
25
- hideAudioNotificationButton: true
26
- }
27
- };
28
- const footer = !((_props$controlProps = props.controlProps) !== null && _props$controlProps !== void 0 && _props$controlProps.hideFooter) && (0, _componentController.shouldShowFooter)(state) ? (0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr = props.componentOverrides) === null || _props$componentOverr === void 0 ? void 0 : _props$componentOverr.footer) || /*#__PURE__*/_react.default.createElement(_FooterStateful.default, {
19
+ var _props$controlProps, _props$componentOverr;
20
+
21
+ const hideFooterDisplay = !((_props$controlProps = props.controlProps) !== null && _props$controlProps !== void 0 && _props$controlProps.hideFooter) && (0, _componentController.shouldShowFooter)(state) ? false : true;
22
+
23
+ const footer = (0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr = props.componentOverrides) === null || _props$componentOverr === void 0 ? void 0 : _props$componentOverr.footer) || /*#__PURE__*/_react.default.createElement(_FooterStateful.default, {
29
24
  footerProps: props.footerProps,
30
25
  downloadTranscriptProps: props.downloadTranscriptProps,
31
26
  audioNotificationProps: props.audioNotificationProps,
32
- hideFooterDisplay: false
33
- }) : (0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr2 = props.componentOverrides) === null || _props$componentOverr2 === void 0 ? void 0 : _props$componentOverr2.footer) || /*#__PURE__*/_react.default.createElement(_FooterStateful.default, {
34
- footerProps: footerPropsHidden,
35
- downloadTranscriptProps: props.downloadTranscriptProps,
36
- audioNotificationProps: props.audioNotificationProps,
37
- hideFooterDisplay: true
27
+ hideFooterDisplay: hideFooterDisplay
38
28
  });
29
+
39
30
  return footer;
40
31
  };
41
32
 
@@ -13,6 +13,10 @@ var _NotificationScenarios = require("../../webchatcontainerstateful/webchatcont
13
13
 
14
14
  var _defaultMiddlewareLocalizedTexts = require("../../webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts");
15
15
 
16
+ var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
17
+
18
+ var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
19
+
16
20
  const isInternetConnected = async () => {
17
21
  try {
18
22
  const response = await fetch(_Constants.Constants.internetConnectionTestUrl);
@@ -28,8 +32,16 @@ const createInternetConnectionChangeHandler = async () => {
28
32
  const connected = await isInternetConnected();
29
33
 
30
34
  if (!connected) {
35
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.WARN, {
36
+ Event: _TelemetryConstants.TelemetryEvent.NetworkDisconnected
37
+ });
38
+
31
39
  _NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.InternetConnection, _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_NO_INTERNET_CONNECTION);
32
40
  } else {
41
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.WARN, {
42
+ Event: _TelemetryConstants.TelemetryEvent.NetworkReconnected
43
+ });
44
+
33
45
  _NotificationHandler.NotificationHandler.notifySuccess(_NotificationScenarios.NotificationScenarios.InternetConnection, _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_INTERNET_BACK_ONLINE);
34
46
  }
35
47
  }; // Checking connection status on online & offline events due to possible false positives
@@ -26,26 +26,40 @@ const createMarkdown = (disableMarkdownMessageFormatting, disableNewLineMarkdown
26
26
  breaks: !disableNewLineMarkdownSupport
27
27
  }); // ToDo: Commenting below usage of plugin until deferred bug is resolved: https://github.com/mayashavin/markdown-it-slack/issues/1
28
28
  // markdown.use(MarkdownSlack);
29
- // Markdown override for open link in new tab
30
- // eslint-disable-next-line @typescript-eslint/no-explicit-any, quotes
29
+ } else {
30
+ markdown = new _markdownIt.default(_Constants.Constants.Zero, {
31
+ html: true,
32
+ linkify: true,
33
+ breaks: !disableNewLineMarkdownSupport
34
+ });
35
+ markdown.enable(["entity", // Rule to process html entity - {, ¯, "
36
+ "linkify", // Rule to replace link-like texts with link nodes
37
+ "html_block", // Rule to process html blocks and paragraphs
38
+ "html_inline", // Rule to process html tags
39
+ "newline" // Rule to proceess '\n'
40
+ ]);
41
+ } // eslint-disable-next-line @typescript-eslint/no-explicit-any
31
42
 
32
- markdown.use(_markdownItForInline.default, "url_new_win", "link_open", function (tokens, idx, env) {
33
- const targetAttrIndex = tokens[idx].attrIndex(_Constants.Constants.Target); // Put a transparent pixel instead of the "open in new window" icon, so developers can easily modify the icon in CSS.
34
43
 
35
- const TRANSPARENT_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
44
+ markdown.use(_markdownItForInline.default, "url_new_win", "link_open", function (tokens, idx, env) {
45
+ const targetAttrIndex = tokens[idx].attrIndex(_Constants.Constants.Target); // Put a transparent pixel instead of the "open in new window" icon, so developers can easily modify the icon in CSS.
36
46
 
37
- if (~targetAttrIndex) {
38
- tokens[idx].attrs[targetAttrIndex][1] = _Constants.Constants.Blank;
39
- } else {
40
- tokens[idx].attrPush([_Constants.Constants.Target, _Constants.Constants.Blank]);
41
- }
47
+ const TRANSPARENT_GIF = "data:image/gif;base64,R0lGODlhAQABAIAAAAAAAP///yH5BAEAAAAALAAAAAABAAEAAAIBRAA7";
48
+
49
+ if (~targetAttrIndex) {
50
+ tokens[idx].attrs[targetAttrIndex][1] = _Constants.Constants.Blank;
51
+ } else {
52
+ tokens[idx].attrPush([_Constants.Constants.Target, _Constants.Constants.Blank]);
53
+ }
54
+
55
+ const relAttrIndex = tokens[idx].attrIndex(_Constants.Constants.TargetRelationship);
42
56
 
43
- const relAttrIndex = tokens[idx].attrIndex(_Constants.Constants.TargetRelationship);
57
+ if (~relAttrIndex) {
58
+ tokens[idx].attrs[relAttrIndex][1] = _Constants.Constants.TargetRelationshipAttributes;
59
+ } else {
60
+ tokens[idx].attrPush([_Constants.Constants.TargetRelationship, _Constants.Constants.TargetRelationshipAttributes]);
44
61
 
45
- if (~relAttrIndex) {
46
- tokens[idx].attrs[relAttrIndex][1] = _Constants.Constants.TargetRelationshipAttributes;
47
- } else {
48
- tokens[idx].attrPush([_Constants.Constants.TargetRelationship, _Constants.Constants.TargetRelationshipAttributes]);
62
+ if (!disableMarkdownMessageFormatting) {
49
63
  tokens[idx].attrPush([_Constants.Constants.Title, _defaultMarkdownLocalizedTexts.defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT]); // eslint-disable-next-line quotes
50
64
 
51
65
  const iconTokens = markdown.parseInline(`![${_defaultMarkdownLocalizedTexts.defaultMarkdownLocalizedTexts.MARKDOWN_EXTERNAL_LINK_ALT}](${TRANSPARENT_GIF})`, env)[0].children;
@@ -55,21 +69,8 @@ const createMarkdown = (disableMarkdownMessageFormatting, disableNewLineMarkdown
55
69
  tokens.splice(idx + 2, 0, ...iconTokens);
56
70
  }
57
71
  }
58
- });
59
- } else {
60
- markdown = new _markdownIt.default(_Constants.Constants.Zero, {
61
- html: true,
62
- linkify: true,
63
- breaks: !disableNewLineMarkdownSupport
64
- });
65
- markdown.enable(["entity", // Rule to process html entity - {, ¯, "
66
- "linkify", // Rule to replace link-like texts with link nodes
67
- "html_block", // Rule to process html blocks and paragraphs
68
- "html_inline", // Rule to process html tags
69
- "newline" // Rule to proceess '\n'
70
- ]);
71
- }
72
-
72
+ }
73
+ });
73
74
  return markdown;
74
75
  };
75
76
 
@@ -187,24 +187,28 @@ const dummyDefaultProps = {
187
187
  },
188
188
  audioCallButtonStyleProps: {
189
189
  borderRadius: "50%",
190
- color: "#FFFFFF",
191
190
  backgroundColor: "#008000",
192
191
  lineHeight: "40px",
193
192
  height: "40px",
194
193
  width: "40px",
195
- fontSize: 18
194
+ icon: {
195
+ fontSize: 18,
196
+ color: "#FFFFFF"
197
+ }
196
198
  },
197
199
  audioCallButtonHoverStyleProps: {
198
200
  filter: "brightness(0.8)"
199
201
  },
200
202
  videoCallButtonStyleProps: {
201
203
  borderRadius: "50%",
202
- color: "#FFFFFF",
203
204
  backgroundColor: "#008000",
204
205
  lineHeight: "40px",
205
206
  height: "40px",
206
207
  width: "40px",
207
- fontSize: 18
208
+ icon: {
209
+ fontSize: 18,
210
+ color: "#FFFFFF"
211
+ }
208
212
  },
209
213
  videoCallButtonHoverStyleProps: {
210
214
  filter: "brightness(0.8)"
@@ -215,13 +219,15 @@ const dummyDefaultProps = {
215
219
  },
216
220
  declineCallButtonStyleProps: {
217
221
  borderRadius: "50%",
218
- color: "#FFFFFF",
219
222
  backgroundColor: "#DC0000",
220
223
  lineHeight: "40px",
221
224
  height: "40px",
222
225
  width: "40px",
223
- fontSize: 18,
224
- marginLeft: "5px"
226
+ marginLeft: "5px",
227
+ icon: {
228
+ fontSize: 18,
229
+ color: "#FFFFFF"
230
+ }
225
231
  },
226
232
  incomingCallTitleStyleProps: {
227
233
  margin: "0 5px",
@@ -339,7 +345,8 @@ const dummyDefaultProps = {
339
345
  hideChatTitle: false,
340
346
  hideNotificationBubble: true,
341
347
  unreadMessageString: "new messages",
342
- largeUnreadMessageString: "99+"
348
+ largeUnreadMessageString: "99+",
349
+ ariaLabelUnreadMessageString: "you have new messages"
343
350
  },
344
351
  styleProps: {
345
352
  generalStyleProps: {
@@ -791,6 +798,7 @@ const dummyDefaultProps = {
791
798
  },
792
799
  audioNotificationButtonProps: {
793
800
  id: "oc-lcw-footer-audionotification-button",
801
+ type: "icon",
794
802
  ariaLabel: "Turn sound off",
795
803
  toggleAriaLabel: "Turn sound on",
796
804
  iconName: "Volume3",
@@ -816,8 +824,10 @@ const dummyDefaultProps = {
816
824
  padding: "0 10px 5px 10px"
817
825
  },
818
826
  downloadTranscriptButtonStyleProps: {
819
- color: "blue",
820
- fontSize: 16,
827
+ icon: {
828
+ color: "blue",
829
+ fontSize: 16
830
+ },
821
831
  height: "25px",
822
832
  lineHeight: "25px",
823
833
  width: "25px"
@@ -827,8 +837,10 @@ const dummyDefaultProps = {
827
837
  backgroundColor: "#C8C8C8"
828
838
  },
829
839
  emailTranscriptButtonStyleProps: {
830
- color: "blue",
831
- fontSize: 16,
840
+ cicon: {
841
+ color: "blue",
842
+ fontSize: 16
843
+ },
832
844
  height: "25px",
833
845
  lineHeight: "25px",
834
846
  width: "25px"
@@ -838,8 +850,10 @@ const dummyDefaultProps = {
838
850
  backgroundColor: "#C8C8C8"
839
851
  },
840
852
  audioNotificationButtonStyleProps: {
841
- color: "blue",
842
- fontSize: 16,
853
+ icon: {
854
+ color: "blue",
855
+ fontSize: 16
856
+ },
843
857
  height: "25px",
844
858
  lineHeight: "25px",
845
859
  width: "25px"
@@ -890,7 +904,7 @@ const dummyDefaultProps = {
890
904
  className: undefined
891
905
  },
892
906
  closeButtonProps: {
893
- id: "oc-lcw-header-minimize-button",
907
+ id: "oc-lcw-header-close-button",
894
908
  type: "icon",
895
909
  iconName: "ChromeClose",
896
910
  ariaLabel: "Close",
@@ -1186,7 +1200,8 @@ const dummyDefaultProps = {
1186
1200
  backgroundColor: "#FFFFFF",
1187
1201
  borderColor: "#F1F1F1"
1188
1202
  }
1189
- }
1203
+ },
1204
+ isCustomerVoiceSurveyCompact: undefined
1190
1205
  },
1191
1206
  proactiveChatPaneProps: {
1192
1207
  componentOverrides: {
@@ -1206,7 +1221,17 @@ const dummyDefaultProps = {
1206
1221
  hideSubtitle: false,
1207
1222
  subtitleText: "Live chat support!",
1208
1223
  hideCloseButton: false,
1209
- closeButtonAriaLabel: "Close Button",
1224
+ closeButtonProps: {
1225
+ id: "oc-lcw-proactivechat-closebutton",
1226
+ type: "icon",
1227
+ iconName: "ChromeClose",
1228
+ ariaLabel: "Close",
1229
+ imageIconProps: undefined,
1230
+ text: "Close",
1231
+ onClick: undefined,
1232
+ className: undefined,
1233
+ hideButtonTitle: true
1234
+ },
1210
1235
  isBodyContainerHorizantal: false,
1211
1236
  hideBodyTitle: false,
1212
1237
  bodyTitleText: "Hi! Have any questions? I am here to help.",
@@ -1434,7 +1459,6 @@ const dummyDefaultProps = {
1434
1459
  startNewChatButtonClassName: undefined
1435
1460
  }
1436
1461
  },
1437
- authClientFunction: undefined,
1438
1462
  isReconnectEnabled: undefined,
1439
1463
  reconnectId: undefined,
1440
1464
  redirectInSameWindow: undefined
@@ -1676,6 +1700,9 @@ const dummyDefaultProps = {
1676
1700
  },
1677
1701
  attachmentSizeStyles: {
1678
1702
  display: "none"
1703
+ },
1704
+ receivedMessageAnchorStyles: {
1705
+ color: "white"
1679
1706
  }
1680
1707
  },
1681
1708
  localizedTexts: {
@@ -1703,8 +1730,13 @@ const dummyDefaultProps = {
1703
1730
  botMagicCode: {
1704
1731
  disabled: false,
1705
1732
  fwdUrl: ""
1733
+ },
1734
+ adaptiveCardStyles: {
1735
+ background: "white",
1736
+ color: "black"
1706
1737
  }
1707
1738
  },
1708
- telemetryConfig: undefined
1739
+ telemetryConfig: undefined,
1740
+ getAuthToken: undefined
1709
1741
  };
1710
1742
  exports.dummyDefaultProps = dummyDefaultProps;