@microsoft/omnichannel-chat-widget 1.7.3-main.112d01b → 1.7.3-main.3609616
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.
- package/lib/cjs/common/telemetry/TelemetryConstants.js +2 -0
- package/lib/cjs/components/livechatwidget/LiveChatWidget.js +6 -1
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +15 -6
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber.js +77 -0
- package/lib/cjs/components/livechatwidget/common/createAdapter.js +15 -2
- package/lib/cjs/components/livechatwidget/common/endChat.js +20 -5
- package/lib/cjs/components/livechatwidget/common/getMockChatSDKIfApplicable.js +26 -0
- package/lib/cjs/components/livechatwidget/common/overridePropsOnMockIfApplicable.js +41 -0
- package/lib/cjs/components/livechatwidget/common/startChat.js +37 -28
- package/lib/cjs/components/livechatwidget/common/startChatErrorHandler.js +6 -6
- package/lib/cjs/components/livechatwidget/common/updateSessionDataForTelemetry.js +8 -3
- package/lib/cjs/components/livechatwidget/interfaces/IBotAuthActivitySubscriberOptionalParams.js +1 -0
- package/lib/cjs/components/livechatwidget/interfaces/IMockProps.js +7 -0
- package/lib/cjs/components/webchatcontainerstateful/common/DemoChatAdapter.js +87 -0
- package/lib/cjs/components/webchatcontainerstateful/common/DemoChatSDK.js +17 -0
- package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatAdapter.js +41 -0
- package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatSDK.js +17 -0
- package/lib/cjs/components/webchatcontainerstateful/common/MockBotCardCommandType.js +14 -0
- package/lib/cjs/components/webchatcontainerstateful/common/MockBotCommand.js +19 -0
- package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +3 -0
- package/lib/cjs/components/webchatcontainerstateful/common/utils/attachmentActivityUtils.js +71 -0
- package/lib/cjs/components/webchatcontainerstateful/common/utils/chatAdapterUtils.js +90 -0
- package/lib/cjs/components/webchatcontainerstateful/interfaces/IBotAuthConfig.js +1 -0
- package/lib/cjs/plugins/newMessageEventHandler.js +4 -2
- package/lib/esm/common/telemetry/TelemetryConstants.js +2 -0
- package/lib/esm/components/livechatwidget/LiveChatWidget.js +6 -1
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +15 -6
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber.js +70 -0
- package/lib/esm/components/livechatwidget/common/createAdapter.js +14 -2
- package/lib/esm/components/livechatwidget/common/endChat.js +20 -5
- package/lib/esm/components/livechatwidget/common/getMockChatSDKIfApplicable.js +20 -0
- package/lib/esm/components/livechatwidget/common/overridePropsOnMockIfApplicable.js +34 -0
- package/lib/esm/components/livechatwidget/common/startChat.js +37 -28
- package/lib/esm/components/livechatwidget/common/startChatErrorHandler.js +7 -7
- package/lib/esm/components/livechatwidget/common/updateSessionDataForTelemetry.js +7 -2
- package/lib/esm/components/livechatwidget/interfaces/IBotAuthActivitySubscriberOptionalParams.js +1 -0
- package/lib/esm/components/livechatwidget/interfaces/IMockProps.js +6 -0
- package/lib/esm/components/webchatcontainerstateful/common/DemoChatAdapter.js +79 -0
- package/lib/esm/components/webchatcontainerstateful/common/DemoChatSDK.js +10 -0
- package/lib/esm/components/webchatcontainerstateful/common/DesignerChatAdapter.js +33 -0
- package/lib/esm/components/webchatcontainerstateful/common/DesignerChatSDK.js +10 -0
- package/lib/esm/components/webchatcontainerstateful/common/MockBotCardCommandType.js +7 -0
- package/lib/esm/components/webchatcontainerstateful/common/MockBotCommand.js +12 -0
- package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +3 -0
- package/lib/esm/components/webchatcontainerstateful/common/utils/attachmentActivityUtils.js +61 -0
- package/lib/esm/components/webchatcontainerstateful/common/utils/chatAdapterUtils.js +77 -0
- package/lib/esm/components/webchatcontainerstateful/interfaces/IBotAuthConfig.js +1 -0
- package/lib/esm/plugins/newMessageEventHandler.js +4 -2
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +3 -1
- package/lib/types/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.d.ts +4 -1
- package/lib/types/components/livechatwidget/common/ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber.d.ts +7 -0
- package/lib/types/components/livechatwidget/common/createAdapter.d.ts +2 -1
- package/lib/types/components/livechatwidget/common/getMockChatSDKIfApplicable.d.ts +1 -0
- package/lib/types/components/livechatwidget/common/overridePropsOnMockIfApplicable.d.ts +3 -0
- package/lib/types/components/livechatwidget/common/updateSessionDataForTelemetry.d.ts +1 -1
- package/lib/types/components/livechatwidget/interfaces/IBotAuthActivitySubscriberOptionalParams.d.ts +4 -0
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +2 -0
- package/lib/types/components/livechatwidget/interfaces/IMockProps.d.ts +8 -0
- package/lib/types/components/webchatcontainerstateful/common/DemoChatAdapter.d.ts +10 -0
- package/lib/types/components/webchatcontainerstateful/common/DemoChatSDK.d.ts +6 -0
- package/lib/types/components/webchatcontainerstateful/common/DesignerChatAdapter.d.ts +8 -0
- package/lib/types/components/webchatcontainerstateful/common/DesignerChatSDK.d.ts +6 -0
- package/lib/types/components/webchatcontainerstateful/common/MockBotCardCommandType.d.ts +6 -0
- package/lib/types/components/webchatcontainerstateful/common/MockBotCommand.d.ts +11 -0
- package/lib/types/components/webchatcontainerstateful/common/mockadapter.d.ts +2 -1
- package/lib/types/components/webchatcontainerstateful/common/mockchatsdk.d.ts +6 -0
- package/lib/types/components/webchatcontainerstateful/common/utils/attachmentActivityUtils.d.ts +9 -0
- package/lib/types/components/webchatcontainerstateful/common/utils/chatAdapterUtils.d.ts +9 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IBotAuthConfig.d.ts +4 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatContainerStatefulProps.d.ts +2 -0
- package/package.json +3 -3
|
@@ -101,6 +101,7 @@ exports.TelemetryEvent = TelemetryEvent;
|
|
|
101
101
|
TelemetryEvent["GetConversationDetailsCallStarted"] = "GetConversationDetailsCallStarted";
|
|
102
102
|
TelemetryEvent["GetConversationDetailsCallFailed"] = "GetConversationDetailsCallFailed";
|
|
103
103
|
TelemetryEvent["EndChatSDKCallFailed"] = "EndChatSDKCallFailed";
|
|
104
|
+
TelemetryEvent["DisconnectEndChatSDKCallFailed"] = "DisconnectEndChatSDKCallFailed";
|
|
104
105
|
TelemetryEvent["GetChatReconnectContextSDKCallStarted"] = "GetChatReconnectContextSDKCallStarted";
|
|
105
106
|
TelemetryEvent["GetChatReconnectContextSDKCallFailed"] = "GetChatReconnectContextSDKCallFailed";
|
|
106
107
|
TelemetryEvent["ParseAdaptiveCardFailed"] = "ParseAdaptiveCardFailed";
|
|
@@ -214,6 +215,7 @@ exports.TelemetryEvent = TelemetryEvent;
|
|
|
214
215
|
TelemetryEvent["PostChatSurveyLoadingPaneLoaded"] = "PostChatSurveyLoadingPaneLoaded";
|
|
215
216
|
TelemetryEvent["PostChatSurveyLoaded"] = "PostChatSurveyLoaded";
|
|
216
217
|
TelemetryEvent["ChatDisconnectThreadEventReceived"] = "ChatDisconnectThreadEventReceived";
|
|
218
|
+
TelemetryEvent["HiddenAdaptiveCardMessageReceived"] = "HiddenAdaptiveCardMessageReceived";
|
|
217
219
|
})(TelemetryEvent || (exports.TelemetryEvent = TelemetryEvent = {}));
|
|
218
220
|
class TelemetryConstants {
|
|
219
221
|
static map(eventTypeOrScenarioType) {
|
|
@@ -11,16 +11,21 @@ var _ChatSDKStore = require("../../contexts/ChatSDKStore");
|
|
|
11
11
|
var _LiveChatWidgetStateful = _interopRequireDefault(require("./livechatwidgetstateful/LiveChatWidgetStateful"));
|
|
12
12
|
var _createReducer = require("../../contexts/createReducer");
|
|
13
13
|
var _LiveChatWidgetContextInitialState = require("../../contexts/common/LiveChatWidgetContextInitialState");
|
|
14
|
+
var _getMockChatSDKIfApplicable = require("./common/getMockChatSDKIfApplicable");
|
|
15
|
+
var _overridePropsOnMockIfApplicable = _interopRequireDefault(require("./common/overridePropsOnMockIfApplicable"));
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
17
|
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); }
|
|
16
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
17
19
|
const LiveChatWidget = props => {
|
|
20
|
+
var _props$mock;
|
|
18
21
|
const reducer = (0, _createReducer.createReducer)();
|
|
19
22
|
const [state, dispatch] = (0, _react.useReducer)(reducer, (0, _LiveChatWidgetContextInitialState.getLiveChatWidgetContextInitialState)(props));
|
|
20
23
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
21
24
|
const [adapter, setAdapter] = (0, _react.useState)(undefined);
|
|
25
|
+
const chatSDK = (0, _getMockChatSDKIfApplicable.getMockChatSDKIfApplicable)(props.chatSDK, props === null || props === void 0 ? void 0 : (_props$mock = props.mock) === null || _props$mock === void 0 ? void 0 : _props$mock.type);
|
|
26
|
+
(0, _overridePropsOnMockIfApplicable.default)(props);
|
|
22
27
|
return /*#__PURE__*/_react.default.createElement(_ChatSDKStore.ChatSDKStore.Provider, {
|
|
23
|
-
value:
|
|
28
|
+
value: chatSDK
|
|
24
29
|
}, /*#__PURE__*/_react.default.createElement(_ChatAdapterStore.ChatAdapterStore.Provider, {
|
|
25
30
|
value: [adapter, setAdapter]
|
|
26
31
|
}, /*#__PURE__*/_react.default.createElement(_ChatContextStore.ChatContextStore.Provider, {
|
package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js
CHANGED
|
@@ -13,8 +13,6 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
|
|
|
13
13
|
const supportedSignInCardContentTypes = ["application/vnd.microsoft.card.signin", "application/vnd.microsoft.card.oauth"];
|
|
14
14
|
const botOauthUrlRegex = /[\S]+.botframework.com\/api\/oauth\/signin\?signin=([\S]+)/;
|
|
15
15
|
const delay = t => new Promise(resolve => setTimeout(resolve, t));
|
|
16
|
-
const fetchBotAuthConfigRetries = 3;
|
|
17
|
-
const fetchBotAuthConfigRetryInterval = 1000;
|
|
18
16
|
let response;
|
|
19
17
|
const extractSignInId = signInUrl => {
|
|
20
18
|
const result = botOauthUrlRegex.exec(signInUrl);
|
|
@@ -43,7 +41,7 @@ const extractSasUrl = async attachment => {
|
|
|
43
41
|
}
|
|
44
42
|
return sasUrl;
|
|
45
43
|
};
|
|
46
|
-
const fetchBotAuthConfig = async retries => {
|
|
44
|
+
const fetchBotAuthConfig = async (retries, interval) => {
|
|
47
45
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
48
46
|
Event: _TelemetryConstants.TelemetryEvent.SetBotAuthProviderFetchConfig
|
|
49
47
|
});
|
|
@@ -64,14 +62,25 @@ const fetchBotAuthConfig = async retries => {
|
|
|
64
62
|
// Base Case
|
|
65
63
|
throw new Error();
|
|
66
64
|
}
|
|
67
|
-
await delay(
|
|
68
|
-
return await fetchBotAuthConfig(--retries);
|
|
65
|
+
await delay(interval);
|
|
66
|
+
return await fetchBotAuthConfig(--retries, interval);
|
|
69
67
|
};
|
|
70
68
|
class BotAuthActivitySubscriber {
|
|
71
69
|
constructor() {
|
|
70
|
+
let optionalParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
72
71
|
_defineProperty(this, "observer", void 0);
|
|
73
72
|
_defineProperty(this, "signInCardSeen", void 0);
|
|
73
|
+
_defineProperty(this, "fetchBotAuthConfigRetries", void 0);
|
|
74
|
+
_defineProperty(this, "fetchBotAuthConfigRetryInterval", void 0);
|
|
74
75
|
this.signInCardSeen = new Set();
|
|
76
|
+
this.fetchBotAuthConfigRetries = 3;
|
|
77
|
+
this.fetchBotAuthConfigRetryInterval = 1000;
|
|
78
|
+
if (optionalParams.fetchBotAuthConfigRetries) {
|
|
79
|
+
this.fetchBotAuthConfigRetries = optionalParams.fetchBotAuthConfigRetries;
|
|
80
|
+
}
|
|
81
|
+
if (optionalParams.fetchBotAuthConfigRetryInterval) {
|
|
82
|
+
this.fetchBotAuthConfigRetryInterval = optionalParams.fetchBotAuthConfigRetryInterval;
|
|
83
|
+
}
|
|
75
84
|
}
|
|
76
85
|
applicable(activity) {
|
|
77
86
|
var _activity$attachments;
|
|
@@ -110,7 +119,7 @@ class BotAuthActivitySubscriber {
|
|
|
110
119
|
_omnichannelChatComponents.BroadcastService.postMessage(event);
|
|
111
120
|
}
|
|
112
121
|
try {
|
|
113
|
-
const response = await fetchBotAuthConfig(fetchBotAuthConfigRetries);
|
|
122
|
+
const response = await fetchBotAuthConfig(this.fetchBotAuthConfigRetries, this.fetchBotAuthConfigRetryInterval);
|
|
114
123
|
if (response === false) {
|
|
115
124
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
116
125
|
Event: _TelemetryConstants.TelemetryEvent.SetBotAuthProviderHideCard
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.HiddenAdaptiveCardActivitySubscriber = void 0;
|
|
7
|
+
var _Constants = require("../../../../common/Constants");
|
|
8
|
+
var _TelemetryConstants = require("../../../../common/telemetry/TelemetryConstants");
|
|
9
|
+
var _TelemetryHelper = require("../../../../common/telemetry/TelemetryHelper");
|
|
10
|
+
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
11
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
12
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
13
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
14
|
+
class HiddenAdaptiveCardActivitySubscriber {
|
|
15
|
+
constructor() {
|
|
16
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
17
|
+
_defineProperty(this, "observer", void 0);
|
|
18
|
+
}
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
|
+
async apply(activity) {
|
|
21
|
+
const {
|
|
22
|
+
attachments,
|
|
23
|
+
attachment
|
|
24
|
+
} = activity;
|
|
25
|
+
this.observer.next(false);
|
|
26
|
+
_omnichannelChatComponents.BroadcastService.postMessage({
|
|
27
|
+
eventName: _TelemetryConstants.BroadcastEvent.NewMessageReceived,
|
|
28
|
+
payload: {
|
|
29
|
+
attachments: attachments || [attachment],
|
|
30
|
+
text: "Custom Event"
|
|
31
|
+
}
|
|
32
|
+
});
|
|
33
|
+
return;
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
|
|
37
|
+
applicable(activity) {
|
|
38
|
+
const {
|
|
39
|
+
attachments,
|
|
40
|
+
attachment
|
|
41
|
+
} = activity;
|
|
42
|
+
|
|
43
|
+
// Use `attachments` or `attachment` (whichever exists)
|
|
44
|
+
const cards = attachments || [attachment];
|
|
45
|
+
|
|
46
|
+
// Check if contentType is "AdaptiveCard"
|
|
47
|
+
const adaptiveCard = cards === null || cards === void 0 ? void 0 : cards.find(
|
|
48
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
49
|
+
item => _Constants.Constants.supportedAdaptiveCardContentTypes.indexOf(item === null || item === void 0 ? void 0 : item.contentType) >= 0);
|
|
50
|
+
if (adaptiveCard && adaptiveCard.content) {
|
|
51
|
+
const {
|
|
52
|
+
body
|
|
53
|
+
} = adaptiveCard.content;
|
|
54
|
+
if (Array.isArray(body)) {
|
|
55
|
+
// Check if all elements in `body` have `isVisible: false`
|
|
56
|
+
const allInvisible = body.every(item => item.isVisible === false);
|
|
57
|
+
if (allInvisible) {
|
|
58
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
59
|
+
Event: _TelemetryConstants.TelemetryEvent.HiddenAdaptiveCardMessageReceived,
|
|
60
|
+
Description: "All elements in AdaptiveCard are invisible"
|
|
61
|
+
});
|
|
62
|
+
return true;
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
}
|
|
66
|
+
return false;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
70
|
+
async next(activity) {
|
|
71
|
+
if (this.applicable(activity)) {
|
|
72
|
+
return await this.apply(activity);
|
|
73
|
+
}
|
|
74
|
+
return activity;
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
exports.HiddenAdaptiveCardActivitySubscriber = HiddenAdaptiveCardActivitySubscriber;
|
|
@@ -11,8 +11,14 @@ var _defaultMiddlewareLocalizedTexts = require("../../webchatcontainerstateful/c
|
|
|
11
11
|
var _ChatAdapterShim = require("./ChatAdapterShim");
|
|
12
12
|
var _PauseActivitySubscriber = require("./ActivitySubscriber/PauseActivitySubscriber");
|
|
13
13
|
var _BotAuthActivitySubscriber = require("./ActivitySubscriber/BotAuthActivitySubscriber");
|
|
14
|
+
var _HiddenAdaptiveCardActivitySubscriber = require("./ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber");
|
|
15
|
+
const defaultBotAuthConfig = {
|
|
16
|
+
fetchBotAuthConfigRetries: 3,
|
|
17
|
+
fetchBotAuthConfigRetryInterval: 1000
|
|
18
|
+
};
|
|
19
|
+
|
|
14
20
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
15
|
-
const createAdapter = async chatSDK => {
|
|
21
|
+
const createAdapter = async (chatSDK, props) => {
|
|
16
22
|
const chatAdapterOptionalParams = {
|
|
17
23
|
IC3Adapter: {
|
|
18
24
|
options: {
|
|
@@ -38,9 +44,16 @@ const createAdapter = async chatSDK => {
|
|
|
38
44
|
let adapter = await chatSDK.createChatAdapter(chatAdapterOptionalParams);
|
|
39
45
|
//so far, there is no need to convert to the shim adapter when using visual tests
|
|
40
46
|
if (chatSDK.isMockModeOn !== true) {
|
|
47
|
+
var _props$webChatContain, _props$webChatContain2, _props$webChatContain3, _props$webChatContain4;
|
|
48
|
+
const botAuthActivitySubscriberOptionalParams = {
|
|
49
|
+
fetchBotAuthConfigRetries: (props === null || props === void 0 ? void 0 : (_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : (_props$webChatContain2 = _props$webChatContain.botAuthConfig) === null || _props$webChatContain2 === void 0 ? void 0 : _props$webChatContain2.fetchBotAuthConfigRetries) || defaultBotAuthConfig.fetchBotAuthConfigRetries,
|
|
50
|
+
fetchBotAuthConfigRetryInterval: (props === null || props === void 0 ? void 0 : (_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : (_props$webChatContain4 = _props$webChatContain3.botAuthConfig) === null || _props$webChatContain4 === void 0 ? void 0 : _props$webChatContain4.fetchBotAuthConfigRetryInterval) || defaultBotAuthConfig.fetchBotAuthConfigRetryInterval
|
|
51
|
+
};
|
|
41
52
|
adapter = new _ChatAdapterShim.ChatAdapterShim(adapter);
|
|
42
53
|
adapter.addSubscriber(new _PauseActivitySubscriber.PauseActivitySubscriber());
|
|
43
|
-
adapter.addSubscriber(new _BotAuthActivitySubscriber.BotAuthActivitySubscriber());
|
|
54
|
+
adapter.addSubscriber(new _BotAuthActivitySubscriber.BotAuthActivitySubscriber(botAuthActivitySubscriberOptionalParams));
|
|
55
|
+
// Remove this code after ICM ID:544623085 is fixed
|
|
56
|
+
adapter.addSubscriber(new _HiddenAdaptiveCardActivitySubscriber.HiddenAdaptiveCardActivitySubscriber());
|
|
44
57
|
return adapter.chatAdapter;
|
|
45
58
|
}
|
|
46
59
|
return adapter;
|
|
@@ -141,12 +141,27 @@ const endChat = async (props, chatSDK, state, dispatch, setAdapter, setWebChatSt
|
|
|
141
141
|
await (0, _authHelper.handleAuthentication)(chatSDK, props.chatConfig, props.getAuthToken);
|
|
142
142
|
await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.endChat());
|
|
143
143
|
} catch (ex) {
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
}
|
|
144
|
+
var _inMemoryState$appSta;
|
|
145
|
+
const inMemoryState = (0, _createReducer.executeReducer)(state, {
|
|
146
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.GET_IN_MEMORY_STATE,
|
|
147
|
+
payload: null
|
|
149
148
|
});
|
|
149
|
+
// if the chat was disconnected or ended by the agent, we don't want to log the error
|
|
150
|
+
if (!(inMemoryState !== null && inMemoryState !== void 0 && (_inMemoryState$appSta = inMemoryState.appStates) !== null && _inMemoryState$appSta !== void 0 && _inMemoryState$appSta.chatDisconnectEventReceived)) {
|
|
151
|
+
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
152
|
+
Event: _TelemetryConstants.TelemetryEvent.EndChatSDKCallFailed,
|
|
153
|
+
ExceptionDetails: {
|
|
154
|
+
exception: ex
|
|
155
|
+
}
|
|
156
|
+
});
|
|
157
|
+
} else {
|
|
158
|
+
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.WARN, {
|
|
159
|
+
Event: _TelemetryConstants.TelemetryEvent.DisconnectEndChatSDKCallFailed,
|
|
160
|
+
ExceptionDetails: {
|
|
161
|
+
exception: ex
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
}
|
|
150
165
|
postMessageToOtherTab = false;
|
|
151
166
|
} finally {
|
|
152
167
|
await endChatStateCleanUp(dispatch);
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.getMockChatSDKIfApplicable = void 0;
|
|
7
|
+
var _DemoChatSDK = require("../../webchatcontainerstateful/common/DemoChatSDK");
|
|
8
|
+
var _DesignerChatSDK = require("../../webchatcontainerstateful/common/DesignerChatSDK");
|
|
9
|
+
var _mockchatsdk = require("../../webchatcontainerstateful/common/mockchatsdk");
|
|
10
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
+
const getMockChatSDKIfApplicable = (chatSDK, type) => {
|
|
12
|
+
if (type) {
|
|
13
|
+
switch (type.toLowerCase()) {
|
|
14
|
+
case "demo":
|
|
15
|
+
chatSDK = new _DemoChatSDK.DemoChatSDK();
|
|
16
|
+
break;
|
|
17
|
+
case "designer":
|
|
18
|
+
chatSDK = new _DesignerChatSDK.DesignerChatSDK();
|
|
19
|
+
break;
|
|
20
|
+
default:
|
|
21
|
+
chatSDK = new _mockchatsdk.MockChatSDK();
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
return chatSDK;
|
|
25
|
+
};
|
|
26
|
+
exports.getMockChatSDKIfApplicable = getMockChatSDKIfApplicable;
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
const overridePropsOnMockIfApplicable = props => {
|
|
8
|
+
var _props$mock, _props$mock2;
|
|
9
|
+
if (props !== null && props !== void 0 && (_props$mock = props.mock) !== null && _props$mock !== void 0 && _props$mock.type && (props === null || props === void 0 ? void 0 : (_props$mock2 = props.mock) === null || _props$mock2 === void 0 ? void 0 : _props$mock2.type.toLowerCase()) === "designer") {
|
|
10
|
+
if (!props.webChatContainerProps) {
|
|
11
|
+
props.webChatContainerProps = {};
|
|
12
|
+
}
|
|
13
|
+
if (!props.webChatContainerProps.webChatProps) {
|
|
14
|
+
props.webChatContainerProps.webChatProps = {};
|
|
15
|
+
}
|
|
16
|
+
if (!props.webChatContainerProps.webChatStyles) {
|
|
17
|
+
props.webChatContainerProps.webChatStyles = {};
|
|
18
|
+
}
|
|
19
|
+
if (!props.webChatContainerProps.webChatProps.overrideLocalizedStrings) {
|
|
20
|
+
props.webChatContainerProps.webChatProps.overrideLocalizedStrings = {};
|
|
21
|
+
}
|
|
22
|
+
props.webChatContainerProps = {
|
|
23
|
+
...props.webChatContainerProps,
|
|
24
|
+
webChatProps: {
|
|
25
|
+
disabled: true,
|
|
26
|
+
...props.webChatContainerProps.webChatProps,
|
|
27
|
+
overrideLocalizedStrings: {
|
|
28
|
+
TEXT_INPUT_PLACEHOLDER: "Send a message . . .",
|
|
29
|
+
...props.webChatContainerProps.webChatProps.overrideLocalizedStrings
|
|
30
|
+
}
|
|
31
|
+
},
|
|
32
|
+
webChatStyles: {
|
|
33
|
+
hideUploadButton: false,
|
|
34
|
+
sendBoxBackground: "rgb(243, 242, 241)",
|
|
35
|
+
...props.webChatContainerProps.webChatStyles
|
|
36
|
+
}
|
|
37
|
+
};
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
var _default = overridePropsOnMockIfApplicable;
|
|
41
|
+
exports.default = _default;
|
|
@@ -8,21 +8,21 @@ var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants"
|
|
|
8
8
|
var _Constants = require("../../../common/Constants");
|
|
9
9
|
var _utils = require("../../../common/utils");
|
|
10
10
|
var _authHelper = require("./authHelper");
|
|
11
|
+
var _reconnectChatHelper = require("./reconnectChatHelper");
|
|
12
|
+
var _startChatErrorHandler = require("./startChatErrorHandler");
|
|
11
13
|
var _ActivityStreamHandler = require("./ActivityStreamHandler");
|
|
12
14
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
13
15
|
var _ConversationState = require("../../../contexts/common/ConversationState");
|
|
14
16
|
var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
|
|
15
17
|
var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
16
18
|
var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
|
|
19
|
+
var _endChat = require("./endChat");
|
|
17
20
|
var _createAdapter = require("./createAdapter");
|
|
18
21
|
var _newMessageEventHandler = require("../../../plugins/newMessageEventHandler");
|
|
19
|
-
var _reconnectChatHelper = require("./reconnectChatHelper");
|
|
20
|
-
var _setPostChatContextAndLoadSurvey = require("./setPostChatContextAndLoadSurvey");
|
|
21
|
-
var _updateSessionDataForTelemetry = require("./updateSessionDataForTelemetry");
|
|
22
|
-
var _startChatErrorHandler = require("./startChatErrorHandler");
|
|
23
|
-
var _endChat = require("./endChat");
|
|
24
22
|
var _liveChatConfigUtils = require("./liveChatConfigUtils");
|
|
23
|
+
var _setPostChatContextAndLoadSurvey = require("./setPostChatContextAndLoadSurvey");
|
|
25
24
|
var _persistentChatHelper = require("./persistentChatHelper");
|
|
25
|
+
var _updateSessionDataForTelemetry = require("./updateSessionDataForTelemetry");
|
|
26
26
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
27
|
let optionalParams = {};
|
|
28
28
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -48,6 +48,7 @@ const setAuthenticationIfApplicable = async (props, chatSDK) => {
|
|
|
48
48
|
const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) => {
|
|
49
49
|
optionalParams = {}; //Resetting to ensure no stale values
|
|
50
50
|
widgetInstanceId = (0, _utils.getWidgetCacheIdfromProps)(props);
|
|
51
|
+
|
|
51
52
|
// reconnect > chat from cache
|
|
52
53
|
if ((0, _reconnectChatHelper.isReconnectEnabled)(props.chatConfig) === true && !(0, _reconnectChatHelper.isPersistentEnabled)(props.chatConfig)) {
|
|
53
54
|
const shouldStartChatNormally = await (0, _reconnectChatHelper.handleChatReconnect)(chatSDK, props, dispatch, setAdapter, initStartChat, state);
|
|
@@ -69,7 +70,11 @@ const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) =>
|
|
|
69
70
|
// Setting Proactive chat settings
|
|
70
71
|
const isProactiveChat = state.appStates.conversationState === _ConversationState.ConversationState.ProactiveChat;
|
|
71
72
|
const isPreChatEnabledInProactiveChat = state.appStates.proactiveChatStates.proactiveChatEnablePrechat;
|
|
72
|
-
|
|
73
|
+
|
|
74
|
+
// Setting auth settings to OC API to retrieve existing persistent chat session before start chat if any
|
|
75
|
+
if ((0, _reconnectChatHelper.isPersistentEnabled)(props.chatConfig)) {
|
|
76
|
+
await setAuthenticationIfApplicable(props, chatSDK);
|
|
77
|
+
}
|
|
73
78
|
|
|
74
79
|
//Setting PreChat and intiate chat
|
|
75
80
|
await setPreChatAndInitiateChat(chatSDK, dispatch, setAdapter, isProactiveChat, isPreChatEnabledInProactiveChat, state, props);
|
|
@@ -153,7 +158,7 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, state, props, params
|
|
|
153
158
|
(0, _endChat.chatSDKStateCleanUp)(chatSDK);
|
|
154
159
|
}
|
|
155
160
|
try {
|
|
156
|
-
var _state$appStates2
|
|
161
|
+
var _state$appStates2;
|
|
157
162
|
// Clear disconnect state on start chat
|
|
158
163
|
(state === null || state === void 0 ? void 0 : (_state$appStates2 = state.appStates) === null || _state$appStates2 === void 0 ? void 0 : _state$appStates2.chatDisconnectEventReceived) && dispatch({
|
|
159
164
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_DISCONNECT_EVENT_RECEIVED,
|
|
@@ -167,6 +172,9 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, state, props, params
|
|
|
167
172
|
Description: "Widget loading started"
|
|
168
173
|
});
|
|
169
174
|
|
|
175
|
+
// Auth token retrieval needs to happen during start chat to support pop-out chat
|
|
176
|
+
await setAuthenticationIfApplicable(props, chatSDK);
|
|
177
|
+
|
|
170
178
|
//Check if chat retrieved from cache
|
|
171
179
|
if (persistedState || params !== null && params !== void 0 && params.liveChatContext) {
|
|
172
180
|
var _persistedState$domai, _persistedState$domai2, _persistedState$domai3, _persistedState$domai4, _persistedState$domai5;
|
|
@@ -201,16 +209,7 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, state, props, params
|
|
|
201
209
|
isStartChatSuccessful = false;
|
|
202
210
|
throw error;
|
|
203
211
|
}
|
|
204
|
-
|
|
205
|
-
// New adapter creation
|
|
206
|
-
const newAdapter = await (0, _createAdapter.createAdapter)(chatSDK);
|
|
207
|
-
setAdapter(newAdapter);
|
|
208
|
-
const chatToken = await chatSDK.getChatToken();
|
|
209
|
-
dispatch({
|
|
210
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
|
|
211
|
-
payload: chatToken
|
|
212
|
-
});
|
|
213
|
-
newAdapter === null || newAdapter === void 0 ? void 0 : (_newAdapter$activity$ = newAdapter.activity$) === null || _newAdapter$activity$ === void 0 ? void 0 : _newAdapter$activity$.subscribe((0, _newMessageEventHandler.createOnNewAdapterActivityHandler)(chatToken === null || chatToken === void 0 ? void 0 : chatToken.chatId, chatToken === null || chatToken === void 0 ? void 0 : chatToken.visitorId));
|
|
212
|
+
await createAdapterAndSubscribe(chatSDK, dispatch, setAdapter, props);
|
|
214
213
|
|
|
215
214
|
// Set app state to Active
|
|
216
215
|
if (isStartChatSuccessful) {
|
|
@@ -231,27 +230,26 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, state, props, params
|
|
|
231
230
|
payload: persistedState
|
|
232
231
|
});
|
|
233
232
|
(0, _startChatErrorHandler.logWidgetLoadComplete)(_Constants.WidgetLoadTelemetryMessage.PersistedStateRetrievedMessage);
|
|
234
|
-
|
|
233
|
+
// Set post chat context in state, load in background to do not block the load
|
|
234
|
+
(0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, true);
|
|
235
235
|
return;
|
|
236
236
|
}
|
|
237
237
|
|
|
238
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
239
|
-
const liveChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getCurrentLiveChatContext());
|
|
240
|
-
|
|
241
238
|
// Persistent Chat relies on the `reconnectId` retrieved from reconnectablechats API to reconnect upon start chat and not `liveChatContext`
|
|
242
239
|
if (!persistentChatEnabled) {
|
|
240
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
241
|
+
const liveChatContext = await (chatSDK === null || chatSDK === void 0 ? void 0 : chatSDK.getCurrentLiveChatContext());
|
|
242
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
243
243
|
dispatch({
|
|
244
244
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
|
|
245
245
|
payload: liveChatContext
|
|
246
246
|
});
|
|
247
247
|
}
|
|
248
248
|
(0, _startChatErrorHandler.logWidgetLoadComplete)();
|
|
249
|
-
// Set post chat context in state
|
|
250
|
-
|
|
251
|
-
await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch);
|
|
252
|
-
|
|
249
|
+
// Set post chat context in state, load in background to do not block the load
|
|
250
|
+
(0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch);
|
|
253
251
|
// Updating chat session detail for telemetry
|
|
254
|
-
await (0, _updateSessionDataForTelemetry.
|
|
252
|
+
await (0, _updateSessionDataForTelemetry.updateTelemetryData)(chatSDK, dispatch);
|
|
255
253
|
} catch (ex) {
|
|
256
254
|
(0, _startChatErrorHandler.handleStartChatError)(dispatch, chatSDK, props, ex, isStartChatSuccessful);
|
|
257
255
|
} finally {
|
|
@@ -262,6 +260,19 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, state, props, params
|
|
|
262
260
|
|
|
263
261
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
264
262
|
exports.initStartChat = initStartChat;
|
|
263
|
+
const createAdapterAndSubscribe = async (chatSDK, dispatch, setAdapter, props) => {
|
|
264
|
+
var _newAdapter$activity$;
|
|
265
|
+
// New adapter creation
|
|
266
|
+
const newAdapter = await (0, _createAdapter.createAdapter)(chatSDK, props);
|
|
267
|
+
setAdapter(newAdapter);
|
|
268
|
+
const chatToken = await chatSDK.getChatToken();
|
|
269
|
+
dispatch({
|
|
270
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
|
|
271
|
+
payload: chatToken
|
|
272
|
+
});
|
|
273
|
+
newAdapter === null || newAdapter === void 0 ? void 0 : (_newAdapter$activity$ = newAdapter.activity$) === null || _newAdapter$activity$ === void 0 ? void 0 : _newAdapter$activity$.subscribe((0, _newMessageEventHandler.createOnNewAdapterActivityHandler)(chatToken === null || chatToken === void 0 ? void 0 : chatToken.chatId, chatToken === null || chatToken === void 0 ? void 0 : chatToken.visitorId));
|
|
274
|
+
};
|
|
275
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
265
276
|
const canConnectToExistingChat = async (props, chatSDK, state, dispatch, setAdapter) => {
|
|
266
277
|
var _state$appStates3, _persistedState$domai6, _persistedState$appSt;
|
|
267
278
|
// By pass this function in case of popout chat
|
|
@@ -349,10 +360,8 @@ const checkIfConversationStillValid = async (chatSDK, dispatch, state) => {
|
|
|
349
360
|
var _state$domainStates8, _state$domainStates8$, _state$domainStates9;
|
|
350
361
|
const requestIdFromCache = (_state$domainStates8 = state.domainStates) === null || _state$domainStates8 === void 0 ? void 0 : (_state$domainStates8$ = _state$domainStates8.liveChatContext) === null || _state$domainStates8$ === void 0 ? void 0 : _state$domainStates8$.requestId;
|
|
351
362
|
const liveChatContext = state === null || state === void 0 ? void 0 : (_state$domainStates9 = state.domainStates) === null || _state$domainStates9 === void 0 ? void 0 : _state$domainStates9.liveChatContext;
|
|
352
|
-
|
|
353
363
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
354
364
|
let conversationDetails = undefined;
|
|
355
|
-
|
|
356
365
|
// Preserve current requestId
|
|
357
366
|
const currentRequestId = chatSDK.requestId ?? "";
|
|
358
367
|
dispatch({
|
|
@@ -6,15 +6,15 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.logWidgetLoadComplete = exports.handleStartChatError = void 0;
|
|
7
7
|
var _omnichannelChatSdk = require("@microsoft/omnichannel-chat-sdk");
|
|
8
8
|
var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
|
|
9
|
-
var
|
|
10
|
-
var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
|
|
11
|
-
var _ConversationState = require("../../../contexts/common/ConversationState");
|
|
12
|
-
var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
|
|
9
|
+
var _Constants = require("../../../common/Constants");
|
|
13
10
|
var _endChat = require("./endChat");
|
|
11
|
+
var _ConversationState = require("../../../contexts/common/ConversationState");
|
|
14
12
|
var _DataStoreManager = require("../../../common/contextDataStore/DataStoreManager");
|
|
15
|
-
var
|
|
16
|
-
var _Constants = require("../../../common/Constants");
|
|
13
|
+
var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
|
|
17
14
|
var _StartChatFailureType = require("../../../contexts/common/StartChatFailureType");
|
|
15
|
+
var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
16
|
+
var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
|
|
17
|
+
var _utils = require("../../../common/utils");
|
|
18
18
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
19
19
|
const handleStartChatError = (dispatch, chatSDK, props, ex, isStartChatSuccessful) => {
|
|
20
20
|
var _props$controlProps;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.
|
|
6
|
+
exports.updateTelemetryData = void 0;
|
|
7
7
|
var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
|
|
8
8
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
9
9
|
var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
|
|
@@ -11,6 +11,13 @@ var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
|
11
11
|
var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
|
|
12
12
|
var _utils = require("../../../common/utils");
|
|
13
13
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
|
+
const updateTelemetryData = async (chatSDK, dispatch) => {
|
|
15
|
+
// load it concurrently, this will reduce the load time
|
|
16
|
+
await Promise.all([updateSessionDataForTelemetry(chatSDK, dispatch), updateConversationDataForTelemetry(chatSDK, dispatch)]);
|
|
17
|
+
};
|
|
18
|
+
|
|
19
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
|
+
exports.updateTelemetryData = updateTelemetryData;
|
|
14
21
|
const updateSessionDataForTelemetry = async (chatSDK, dispatch) => {
|
|
15
22
|
if (chatSDK) {
|
|
16
23
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -26,12 +33,10 @@ const updateSessionDataForTelemetry = async (chatSDK, dispatch) => {
|
|
|
26
33
|
chatSession
|
|
27
34
|
}
|
|
28
35
|
});
|
|
29
|
-
await updateConversationDataForTelemetry(chatSDK, dispatch);
|
|
30
36
|
}
|
|
31
37
|
};
|
|
32
38
|
|
|
33
39
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
|
-
exports.updateSessionDataForTelemetry = updateSessionDataForTelemetry;
|
|
35
40
|
const updateConversationDataForTelemetry = async (chatSDK, dispatch) => {
|
|
36
41
|
if (chatSDK) {
|
|
37
42
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
package/lib/cjs/components/livechatwidget/interfaces/IBotAuthActivitySubscriberOptionalParams.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,87 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DemoChatAdapter = void 0;
|
|
7
|
+
require("rxjs/add/operator/share");
|
|
8
|
+
require("rxjs/add/observable/of");
|
|
9
|
+
var _Observable = require("rxjs/Observable");
|
|
10
|
+
var _mockadapter = _interopRequireDefault(require("./mockadapter"));
|
|
11
|
+
var _chatAdapterUtils = require("./utils/chatAdapterUtils");
|
|
12
|
+
var _attachmentActivityUtils = require("./utils/attachmentActivityUtils");
|
|
13
|
+
var _MockBotCommand = _interopRequireDefault(require("./MockBotCommand"));
|
|
14
|
+
var _MockBotCardCommandType = _interopRequireDefault(require("./MockBotCardCommandType"));
|
|
15
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
16
|
+
class DemoChatAdapter extends _mockadapter.default {
|
|
17
|
+
constructor() {
|
|
18
|
+
super();
|
|
19
|
+
setTimeout(() => {
|
|
20
|
+
(0, _chatAdapterUtils.postSystemMessageActivity)(this.activityObserver, "You're currently using a demo.", 0);
|
|
21
|
+
(0, _chatAdapterUtils.postBotMessageActivity)(this.activityObserver, "Type `/help` to learn more", undefined, 0); // send init message from bot
|
|
22
|
+
}, 1000);
|
|
23
|
+
}
|
|
24
|
+
postBotCommandsActivity() {
|
|
25
|
+
let delay = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : 1000;
|
|
26
|
+
(0, _chatAdapterUtils.postBotAttachmentActivity)(this.activityObserver, [{
|
|
27
|
+
contentType: "application/vnd.microsoft.card.thumbnail",
|
|
28
|
+
content: {
|
|
29
|
+
buttons: [{
|
|
30
|
+
title: "Send system message",
|
|
31
|
+
type: "imBack",
|
|
32
|
+
value: "send system message"
|
|
33
|
+
}, {
|
|
34
|
+
title: "Send typing",
|
|
35
|
+
type: "imBack",
|
|
36
|
+
value: "send typing"
|
|
37
|
+
}, {
|
|
38
|
+
title: "Send bot message",
|
|
39
|
+
type: "imBack",
|
|
40
|
+
value: "send bot message"
|
|
41
|
+
}],
|
|
42
|
+
title: "Commands"
|
|
43
|
+
}
|
|
44
|
+
}], delay);
|
|
45
|
+
}
|
|
46
|
+
postActivity(activity) {
|
|
47
|
+
if (activity) {
|
|
48
|
+
(0, _chatAdapterUtils.postEchoActivity)(this.activityObserver, activity, _chatAdapterUtils.customerUser);
|
|
49
|
+
if (activity.text) {
|
|
50
|
+
switch (true) {
|
|
51
|
+
case activity.text === _MockBotCommand.default.Help:
|
|
52
|
+
this.postBotCommandsActivity();
|
|
53
|
+
break;
|
|
54
|
+
case activity.text === _MockBotCommand.default.SendSystemMessage:
|
|
55
|
+
(0, _chatAdapterUtils.postSystemMessageActivity)(this.activityObserver, "Contoso has joined the chat.");
|
|
56
|
+
break;
|
|
57
|
+
case activity.text === _MockBotCommand.default.SendTyping:
|
|
58
|
+
(0, _chatAdapterUtils.postBotTypingActivity)(this.activityObserver);
|
|
59
|
+
break;
|
|
60
|
+
case activity.text === _MockBotCommand.default.SendAttachment:
|
|
61
|
+
(0, _chatAdapterUtils.postBotAttachmentActivity)(this.activityObserver, [(0, _attachmentActivityUtils.createJpgFileAttachment)()]);
|
|
62
|
+
break;
|
|
63
|
+
case activity.text === _MockBotCommand.default.SendBotMessage:
|
|
64
|
+
(0, _chatAdapterUtils.postBotMessageActivity)(this.activityObserver, "Hi, how can I help you?");
|
|
65
|
+
break;
|
|
66
|
+
case activity.text === `${_MockBotCommand.default.Card} ${_MockBotCardCommandType.default.Signin}`:
|
|
67
|
+
(0, _chatAdapterUtils.postBotAttachmentActivity)(this.activityObserver, [(0, _attachmentActivityUtils.createSigninCardAttachment)()]);
|
|
68
|
+
break;
|
|
69
|
+
case activity.text === `${_MockBotCommand.default.Card} ${_MockBotCardCommandType.default.Hero}`:
|
|
70
|
+
(0, _chatAdapterUtils.postBotAttachmentActivity)(this.activityObserver, [(0, _attachmentActivityUtils.createHeroCardAttachment)()]);
|
|
71
|
+
break;
|
|
72
|
+
case activity.text === `${_MockBotCommand.default.Card} ${_MockBotCardCommandType.default.Thumbnail}`:
|
|
73
|
+
(0, _chatAdapterUtils.postBotAttachmentActivity)(this.activityObserver, [(0, _attachmentActivityUtils.createThumbnailCardAttachment)()]);
|
|
74
|
+
break;
|
|
75
|
+
case activity.text.startsWith(`${_MockBotCommand.default.Bot} `):
|
|
76
|
+
(0, _chatAdapterUtils.postBotMessageActivity)(this.activityObserver, activity.text.substring(5));
|
|
77
|
+
break;
|
|
78
|
+
case activity.text.startsWith(`${_MockBotCommand.default.System} `):
|
|
79
|
+
(0, _chatAdapterUtils.postSystemMessageActivity)(this.activityObserver, activity.text.substring(8));
|
|
80
|
+
break;
|
|
81
|
+
}
|
|
82
|
+
}
|
|
83
|
+
}
|
|
84
|
+
return _Observable.Observable.of(activity.id || "");
|
|
85
|
+
}
|
|
86
|
+
}
|
|
87
|
+
exports.DemoChatAdapter = DemoChatAdapter;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.DemoChatSDK = void 0;
|
|
7
|
+
var _DemoChatAdapter = require("./DemoChatAdapter");
|
|
8
|
+
var _mockchatsdk = require("./mockchatsdk");
|
|
9
|
+
class DemoChatSDK extends _mockchatsdk.MockChatSDK {
|
|
10
|
+
constructor() {
|
|
11
|
+
super();
|
|
12
|
+
}
|
|
13
|
+
createChatAdapter() {
|
|
14
|
+
return new _DemoChatAdapter.DemoChatAdapter();
|
|
15
|
+
}
|
|
16
|
+
}
|
|
17
|
+
exports.DemoChatSDK = DemoChatSDK;
|