@microsoft/omnichannel-chat-widget 1.7.8-main.29ce174 → 1.7.8-main.50111af
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/Constants.js +57 -18
- package/lib/cjs/common/KeyCodes.js +6 -1
- package/lib/cjs/common/contextDataStore/DataStoreManager.js +6 -1
- package/lib/cjs/common/facades/FacadeChatSDK.js +385 -292
- package/lib/cjs/common/storage/default/defaultCacheManager.js +6 -3
- package/lib/cjs/common/telemetry/TelemetryConstants.js +137 -116
- package/lib/cjs/common/telemetry/TelemetryHelper.js +219 -181
- package/lib/cjs/common/telemetry/TelemetryManager.js +9 -2
- package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +4 -5
- package/lib/cjs/components/headerstateful/HeaderStateful.js +3 -5
- package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +32 -19
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +71 -56
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +17 -8
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber.js +65 -52
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +31 -18
- package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +14 -6
- package/lib/cjs/components/livechatwidget/common/Deferred.js +14 -6
- package/lib/cjs/components/livechatwidget/common/chatDisconnectHelper.js +3 -1
- package/lib/cjs/components/livechatwidget/common/endChat.js +4 -18
- package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +0 -5
- package/lib/cjs/components/livechatwidget/common/startChat.js +2 -23
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +3 -3
- package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +6 -4
- package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +7 -6
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +4 -3
- package/lib/cjs/components/webchatcontainerstateful/common/DemoChatAdapter.js +88 -65
- package/lib/cjs/components/webchatcontainerstateful/common/DemoChatSDK.js +26 -7
- package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatAdapter.js +49 -26
- package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatSDK.js +57 -35
- package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +62 -52
- package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +95 -61
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +6 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +6 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/markdownrenderers/HyperlinkTextOverrideRenderer.js +53 -39
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +4 -0
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +88 -60
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +18 -6
- package/lib/cjs/firstresponselatency/Constants.js +13 -0
- package/lib/cjs/firstresponselatency/FirstMessageTrackerFromBot.js +118 -0
- package/lib/cjs/firstresponselatency/FirstResponseLatencyTracker.js +201 -0
- package/lib/cjs/firstresponselatency/util.js +98 -0
- package/lib/cjs/plugins/createChatTranscript.js +88 -58
- package/lib/cjs/plugins/newMessageEventHandler.js +102 -88
- package/lib/esm/common/Constants.js +57 -18
- package/lib/esm/common/KeyCodes.js +6 -1
- package/lib/esm/common/contextDataStore/DataStoreManager.js +6 -1
- package/lib/esm/common/facades/FacadeChatSDK.js +385 -292
- package/lib/esm/common/storage/default/defaultCacheManager.js +6 -1
- package/lib/esm/common/telemetry/TelemetryConstants.js +137 -116
- package/lib/esm/common/telemetry/TelemetryHelper.js +219 -181
- package/lib/esm/common/telemetry/TelemetryManager.js +9 -2
- package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +4 -5
- package/lib/esm/components/headerstateful/HeaderStateful.js +3 -5
- package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +32 -19
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +71 -56
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +17 -8
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber.js +65 -52
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +31 -18
- package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +14 -6
- package/lib/esm/components/livechatwidget/common/Deferred.js +14 -6
- package/lib/esm/components/livechatwidget/common/chatDisconnectHelper.js +3 -1
- package/lib/esm/components/livechatwidget/common/endChat.js +4 -18
- package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +1 -6
- package/lib/esm/components/livechatwidget/common/startChat.js +3 -24
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +3 -3
- package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -4
- package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +7 -6
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +4 -3
- package/lib/esm/components/webchatcontainerstateful/common/DemoChatAdapter.js +88 -65
- package/lib/esm/components/webchatcontainerstateful/common/DemoChatSDK.js +26 -7
- package/lib/esm/components/webchatcontainerstateful/common/DesignerChatAdapter.js +49 -26
- package/lib/esm/components/webchatcontainerstateful/common/DesignerChatSDK.js +57 -35
- package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +63 -52
- package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +95 -61
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +6 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +6 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/markdownrenderers/HyperlinkTextOverrideRenderer.js +53 -39
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +4 -0
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +88 -60
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +18 -6
- package/lib/esm/firstresponselatency/Constants.js +6 -0
- package/lib/esm/firstresponselatency/FirstMessageTrackerFromBot.js +112 -0
- package/lib/esm/firstresponselatency/FirstResponseLatencyTracker.js +194 -0
- package/lib/esm/firstresponselatency/util.js +87 -0
- package/lib/esm/plugins/createChatTranscript.js +88 -58
- package/lib/esm/plugins/newMessageEventHandler.js +100 -86
- package/lib/types/common/facades/FacadeChatSDK.d.ts +1 -0
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +8 -1
- package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatProps.d.ts +2 -2
- package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +1 -1
- package/lib/types/firstresponselatency/Constants.d.ts +30 -0
- package/lib/types/firstresponselatency/FirstMessageTrackerFromBot.d.ts +1 -0
- package/lib/types/firstresponselatency/FirstResponseLatencyTracker.d.ts +22 -0
- package/lib/types/firstresponselatency/util.d.ts +7 -0
- package/package.json +18 -6
package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js
CHANGED
|
@@ -7,6 +7,10 @@ exports.BotAuthActivitySubscriber = void 0;
|
|
|
7
7
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
8
8
|
var _TelemetryConstants = require("../../../../common/telemetry/TelemetryConstants");
|
|
9
9
|
var _TelemetryHelper = require("../../../../common/telemetry/TelemetryHelper");
|
|
10
|
+
var _TelemetryManager = require("../../../../common/telemetry/TelemetryManager");
|
|
11
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
12
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
13
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
10
14
|
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; }
|
|
11
15
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
12
16
|
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); }
|
|
@@ -65,9 +69,10 @@ const fetchBotAuthConfig = async (retries, interval) => {
|
|
|
65
69
|
await delay(interval);
|
|
66
70
|
return await fetchBotAuthConfig(--retries, interval);
|
|
67
71
|
};
|
|
68
|
-
|
|
69
|
-
|
|
72
|
+
let BotAuthActivitySubscriber = /*#__PURE__*/function () {
|
|
73
|
+
function BotAuthActivitySubscriber() {
|
|
70
74
|
let optionalParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
|
|
75
|
+
_classCallCheck(this, BotAuthActivitySubscriber);
|
|
71
76
|
_defineProperty(this, "observer", void 0);
|
|
72
77
|
_defineProperty(this, "signInCardSeen", void 0);
|
|
73
78
|
_defineProperty(this, "fetchBotAuthConfigRetries", void 0);
|
|
@@ -82,70 +87,80 @@ class BotAuthActivitySubscriber {
|
|
|
82
87
|
this.fetchBotAuthConfigRetryInterval = optionalParams.fetchBotAuthConfigRetryInterval;
|
|
83
88
|
}
|
|
84
89
|
}
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
this.observer.next(false); // Hides card
|
|
91
|
-
const attachment = activity.attachments[0];
|
|
92
|
-
const signInUrl = attachment.content.buttons[0].value;
|
|
93
|
-
const signInId = extractSignInId(signInUrl);
|
|
94
|
-
if (!signInId) {
|
|
95
|
-
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
96
|
-
Event: _TelemetryConstants.TelemetryEvent.BotAuthActivityUndefinedSignInId
|
|
97
|
-
});
|
|
98
|
-
return activity;
|
|
99
|
-
}
|
|
100
|
-
if (this.signInCardSeen.has(signInId)) {
|
|
101
|
-
// Prevents duplicate auth
|
|
102
|
-
return;
|
|
90
|
+
_createClass(BotAuthActivitySubscriber, [{
|
|
91
|
+
key: "applicable",
|
|
92
|
+
value: function applicable(activity) {
|
|
93
|
+
var _activity$attachments;
|
|
94
|
+
return (activity === null || activity === void 0 ? void 0 : (_activity$attachments = activity.attachments) === null || _activity$attachments === void 0 ? void 0 : _activity$attachments.length) > 0 && activity.attachments[0] && supportedSignInCardContentTypes.indexOf(activity.attachments[0].contentType) >= 0;
|
|
103
95
|
}
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
96
|
+
}, {
|
|
97
|
+
key: "apply",
|
|
98
|
+
value: async function apply(activity) {
|
|
99
|
+
var _TelemetryManager$Int;
|
|
100
|
+
this.observer.next(false); // Hides card
|
|
101
|
+
const attachment = activity.attachments[0];
|
|
102
|
+
const signInUrl = attachment.content.buttons[0].value;
|
|
103
|
+
const signInId = extractSignInId(signInUrl);
|
|
104
|
+
if (!signInId) {
|
|
105
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
106
|
+
Event: _TelemetryConstants.TelemetryEvent.BotAuthActivityUndefinedSignInId
|
|
107
|
+
});
|
|
108
|
+
return activity;
|
|
110
109
|
}
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
|
|
118
|
-
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
|
|
122
|
-
|
|
123
|
-
|
|
110
|
+
if (this.signInCardSeen.has(signInId)) {
|
|
111
|
+
// Prevents duplicate auth
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
this.signInCardSeen.add(signInId);
|
|
115
|
+
const sasUrl = await extractSasUrl(attachment);
|
|
116
|
+
const event = {
|
|
117
|
+
eventName: _TelemetryConstants.BroadcastEvent.SigninCardReceived,
|
|
118
|
+
payload: {
|
|
119
|
+
sasUrl,
|
|
120
|
+
conversationId: (_TelemetryManager$Int = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int === void 0 ? void 0 : _TelemetryManager$Int.conversationId
|
|
121
|
+
}
|
|
122
|
+
};
|
|
123
|
+
if (!sasUrl) {
|
|
124
124
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
125
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
125
|
+
Event: _TelemetryConstants.TelemetryEvent.BotAuthActivityEmptySasUrl,
|
|
126
|
+
Description: "SaS Url is empty"
|
|
126
127
|
});
|
|
128
|
+
return activity;
|
|
127
129
|
} else {
|
|
130
|
+
_omnichannelChatComponents.BroadcastService.postMessage(event);
|
|
131
|
+
}
|
|
132
|
+
try {
|
|
133
|
+
const response = await fetchBotAuthConfig(this.fetchBotAuthConfigRetries, this.fetchBotAuthConfigRetryInterval);
|
|
134
|
+
if (response === false) {
|
|
135
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
136
|
+
Event: _TelemetryConstants.TelemetryEvent.SetBotAuthProviderHideCard
|
|
137
|
+
});
|
|
138
|
+
} else {
|
|
139
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
140
|
+
Event: _TelemetryConstants.TelemetryEvent.SetBotAuthProviderDisplayCard
|
|
141
|
+
});
|
|
142
|
+
return activity;
|
|
143
|
+
}
|
|
144
|
+
} catch {
|
|
128
145
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
129
|
-
Event: _TelemetryConstants.TelemetryEvent.
|
|
146
|
+
Event: _TelemetryConstants.TelemetryEvent.SetBotAuthProviderNotFound
|
|
130
147
|
});
|
|
148
|
+
//this is to ensure listener continues waiting for response
|
|
149
|
+
if (this.signInCardSeen.has(signInId)) {
|
|
150
|
+
this.signInCardSeen.delete(signInId);
|
|
151
|
+
}
|
|
131
152
|
return activity;
|
|
132
153
|
}
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
|
|
139
|
-
this.signInCardSeen.delete(signInId);
|
|
154
|
+
}
|
|
155
|
+
}, {
|
|
156
|
+
key: "next",
|
|
157
|
+
value: async function next(activity) {
|
|
158
|
+
if (this.applicable(activity)) {
|
|
159
|
+
return await this.apply(activity);
|
|
140
160
|
}
|
|
141
161
|
return activity;
|
|
142
162
|
}
|
|
143
|
-
}
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
return await this.apply(activity);
|
|
147
|
-
}
|
|
148
|
-
return activity;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
163
|
+
}]);
|
|
164
|
+
return BotAuthActivitySubscriber;
|
|
165
|
+
}();
|
|
151
166
|
exports.BotAuthActivitySubscriber = BotAuthActivitySubscriber;
|
package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js
CHANGED
|
@@ -4,18 +4,27 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.DefaultActivitySubscriber = void 0;
|
|
7
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
8
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
9
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
7
10
|
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; }
|
|
8
11
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
9
12
|
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); }
|
|
10
|
-
|
|
11
|
-
|
|
13
|
+
let DefaultActivitySubscriber = /*#__PURE__*/function () {
|
|
14
|
+
function DefaultActivitySubscriber() {
|
|
15
|
+
_classCallCheck(this, DefaultActivitySubscriber);
|
|
12
16
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
17
|
_defineProperty(this, "observer", void 0);
|
|
14
18
|
}
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
_createClass(DefaultActivitySubscriber, [{
|
|
20
|
+
key: "next",
|
|
21
|
+
value:
|
|
22
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
23
|
+
async function next(activity) {
|
|
24
|
+
this.observer.next(activity);
|
|
25
|
+
return false;
|
|
26
|
+
}
|
|
27
|
+
}]);
|
|
28
|
+
return DefaultActivitySubscriber;
|
|
29
|
+
}();
|
|
21
30
|
exports.DefaultActivitySubscriber = DefaultActivitySubscriber;
|
|
@@ -8,70 +8,83 @@ var _Constants = require("../../../../common/Constants");
|
|
|
8
8
|
var _TelemetryConstants = require("../../../../common/telemetry/TelemetryConstants");
|
|
9
9
|
var _TelemetryHelper = require("../../../../common/telemetry/TelemetryHelper");
|
|
10
10
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
11
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
12
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
13
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
11
14
|
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
15
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
13
16
|
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
|
-
|
|
15
|
-
|
|
17
|
+
let HiddenAdaptiveCardActivitySubscriber = /*#__PURE__*/function () {
|
|
18
|
+
function HiddenAdaptiveCardActivitySubscriber() {
|
|
19
|
+
_classCallCheck(this, HiddenAdaptiveCardActivitySubscriber);
|
|
16
20
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
17
21
|
_defineProperty(this, "observer", void 0);
|
|
18
22
|
}
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
23
|
+
_createClass(HiddenAdaptiveCardActivitySubscriber, [{
|
|
24
|
+
key: "apply",
|
|
25
|
+
value:
|
|
26
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
27
|
+
async function apply(activity) {
|
|
28
|
+
const {
|
|
29
|
+
attachments,
|
|
30
|
+
attachment
|
|
31
|
+
} = activity;
|
|
32
|
+
this.observer.next(false);
|
|
33
|
+
_omnichannelChatComponents.BroadcastService.postMessage({
|
|
34
|
+
eventName: _TelemetryConstants.BroadcastEvent.NewMessageReceived,
|
|
35
|
+
payload: {
|
|
36
|
+
attachments: attachments || [attachment],
|
|
37
|
+
text: "Custom Event"
|
|
38
|
+
}
|
|
39
|
+
});
|
|
40
|
+
return;
|
|
41
|
+
}
|
|
35
42
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
43
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
|
|
44
|
+
}, {
|
|
45
|
+
key: "applicable",
|
|
46
|
+
value: function applicable(activity) {
|
|
47
|
+
const {
|
|
48
|
+
attachments,
|
|
49
|
+
attachment
|
|
50
|
+
} = activity;
|
|
42
51
|
|
|
43
|
-
|
|
44
|
-
|
|
52
|
+
// Use `attachments` or `attachment` (whichever exists)
|
|
53
|
+
const cards = attachments || [attachment];
|
|
45
54
|
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
55
|
+
// Check if contentType is "AdaptiveCard"
|
|
56
|
+
const adaptiveCard = cards === null || cards === void 0 ? void 0 : cards.find(
|
|
57
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
58
|
+
item => _Constants.Constants.supportedAdaptiveCardContentTypes.indexOf(item === null || item === void 0 ? void 0 : item.contentType) >= 0);
|
|
59
|
+
if (adaptiveCard && adaptiveCard.content) {
|
|
60
|
+
const {
|
|
61
|
+
body
|
|
62
|
+
} = adaptiveCard.content;
|
|
63
|
+
if (Array.isArray(body)) {
|
|
64
|
+
// Check if all elements in `body` have `isVisible: false`
|
|
65
|
+
const allInvisible = body.every(item => item.isVisible === false);
|
|
66
|
+
if (allInvisible) {
|
|
67
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
68
|
+
Event: _TelemetryConstants.TelemetryEvent.HiddenAdaptiveCardMessageReceived,
|
|
69
|
+
Description: "All elements in AdaptiveCard are invisible"
|
|
70
|
+
});
|
|
71
|
+
return true;
|
|
72
|
+
}
|
|
63
73
|
}
|
|
64
74
|
}
|
|
75
|
+
return false;
|
|
65
76
|
}
|
|
66
|
-
return false;
|
|
67
|
-
}
|
|
68
77
|
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
78
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
79
|
+
}, {
|
|
80
|
+
key: "next",
|
|
81
|
+
value: async function next(activity) {
|
|
82
|
+
if (this.applicable(activity)) {
|
|
83
|
+
return await this.apply(activity);
|
|
84
|
+
}
|
|
85
|
+
return activity;
|
|
73
86
|
}
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
}
|
|
87
|
+
}]);
|
|
88
|
+
return HiddenAdaptiveCardActivitySubscriber;
|
|
89
|
+
}();
|
|
77
90
|
exports.HiddenAdaptiveCardActivitySubscriber = HiddenAdaptiveCardActivitySubscriber;
|
package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js
CHANGED
|
@@ -5,31 +5,44 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.PauseActivitySubscriber = void 0;
|
|
7
7
|
var _ActivityStreamHandler = require("../ActivityStreamHandler");
|
|
8
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
9
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
10
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
8
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; }
|
|
9
12
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
10
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); }
|
|
11
|
-
|
|
12
|
-
|
|
14
|
+
let PauseActivitySubscriber = /*#__PURE__*/function () {
|
|
15
|
+
function PauseActivitySubscriber() {
|
|
16
|
+
_classCallCheck(this, PauseActivitySubscriber);
|
|
13
17
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
18
|
_defineProperty(this, "observer", void 0);
|
|
15
19
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
20
|
+
_createClass(PauseActivitySubscriber, [{
|
|
21
|
+
key: "apply",
|
|
22
|
+
value:
|
|
23
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
24
|
+
async function apply(activity) {
|
|
25
|
+
await _ActivityStreamHandler.ActivityStreamHandler.restorePromise;
|
|
26
|
+
return activity;
|
|
27
|
+
}
|
|
21
28
|
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
29
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars, @typescript-eslint/no-explicit-any
|
|
30
|
+
}, {
|
|
31
|
+
key: "applicable",
|
|
32
|
+
value: function applicable(activity) {
|
|
33
|
+
return true;
|
|
34
|
+
}
|
|
26
35
|
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
36
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
37
|
+
}, {
|
|
38
|
+
key: "next",
|
|
39
|
+
value: async function next(activity) {
|
|
40
|
+
if (this.applicable(activity)) {
|
|
41
|
+
return await this.apply(activity);
|
|
42
|
+
}
|
|
43
|
+
return activity;
|
|
31
44
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
}
|
|
45
|
+
}]);
|
|
46
|
+
return PauseActivitySubscriber;
|
|
47
|
+
}();
|
|
35
48
|
exports.PauseActivitySubscriber = PauseActivitySubscriber;
|
|
@@ -6,10 +6,13 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.ChatAdapterShim = void 0;
|
|
7
7
|
var _DefaultActivitySubscriber = require("./ActivitySubscriber/DefaultActivitySubscriber");
|
|
8
8
|
var _shareObservable = require("./shareObservable");
|
|
9
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
10
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
11
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
9
12
|
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; }
|
|
10
13
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
11
14
|
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); }
|
|
12
|
-
|
|
15
|
+
let ChatAdapterShim = /*#__PURE__*/function () {
|
|
13
16
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
14
17
|
|
|
15
18
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -17,7 +20,8 @@ class ChatAdapterShim {
|
|
|
17
20
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
18
21
|
|
|
19
22
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
20
|
-
|
|
23
|
+
function ChatAdapterShim(chatAdapter) {
|
|
24
|
+
_classCallCheck(this, ChatAdapterShim);
|
|
21
25
|
_defineProperty(this, "chatAdapter", void 0);
|
|
22
26
|
_defineProperty(this, "activityObserver", void 0);
|
|
23
27
|
_defineProperty(this, "subscribers", void 0);
|
|
@@ -57,8 +61,12 @@ class ChatAdapterShim {
|
|
|
57
61
|
}
|
|
58
62
|
|
|
59
63
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
+
_createClass(ChatAdapterShim, [{
|
|
65
|
+
key: "addSubscriber",
|
|
66
|
+
value: function addSubscriber(subscriber) {
|
|
67
|
+
this.subscribers.push(subscriber);
|
|
68
|
+
}
|
|
69
|
+
}]);
|
|
70
|
+
return ChatAdapterShim;
|
|
71
|
+
}();
|
|
64
72
|
exports.ChatAdapterShim = ChatAdapterShim;
|
|
@@ -4,13 +4,17 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.Deferred = void 0;
|
|
7
|
+
function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
|
|
8
|
+
function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
|
|
9
|
+
function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
|
|
7
10
|
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; }
|
|
8
11
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
9
12
|
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); }
|
|
10
|
-
|
|
13
|
+
let Deferred = /*#__PURE__*/function () {
|
|
11
14
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
12
15
|
|
|
13
|
-
|
|
16
|
+
function Deferred() {
|
|
17
|
+
_classCallCheck(this, Deferred);
|
|
14
18
|
_defineProperty(this, "_promise", void 0);
|
|
15
19
|
_defineProperty(this, "_resolve", void 0);
|
|
16
20
|
_defineProperty(this, "_reject", () => {
|
|
@@ -29,8 +33,12 @@ class Deferred {
|
|
|
29
33
|
this._reject = reject;
|
|
30
34
|
});
|
|
31
35
|
}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
+
_createClass(Deferred, [{
|
|
37
|
+
key: "promise",
|
|
38
|
+
get: function () {
|
|
39
|
+
return this._promise;
|
|
40
|
+
}
|
|
41
|
+
}]);
|
|
42
|
+
return Deferred;
|
|
43
|
+
}();
|
|
36
44
|
exports.Deferred = Deferred;
|
|
@@ -11,7 +11,7 @@ var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
|
11
11
|
var _defaultMiddlewareLocalizedTexts = require("../../webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts");
|
|
12
12
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
13
13
|
const handleChatDisconnect = (props, state, setWebChatStyles) => {
|
|
14
|
-
var _state$appStates, _state$domainStates, _state$domainStates$m, _props$webChatContain, _props$webChatContain2;
|
|
14
|
+
var _state$appStates, _state$domainStates, _state$domainStates$m, _props$webChatContain, _props$webChatContain2, _props$webChatContain3, _props$webChatContain4;
|
|
15
15
|
const chatDisconnectState = state === null || state === void 0 ? void 0 : (_state$appStates = state.appStates) === null || _state$appStates === void 0 ? void 0 : _state$appStates.chatDisconnectEventReceived;
|
|
16
16
|
const chatDisconnectMessage = (state === null || state === void 0 ? void 0 : (_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : (_state$domainStates$m = _state$domainStates.middlewareLocalizedTexts) === null || _state$domainStates$m === void 0 ? void 0 : _state$domainStates$m.MIDDLEWARE_BANNER_CHAT_DISCONNECT) ?? _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_BANNER_CHAT_DISCONNECT;
|
|
17
17
|
const hideSendBoxOnConversationEnd = props === null || props === void 0 ? void 0 : (_props$webChatContain = props.webChatContainerProps) === null || _props$webChatContain === void 0 ? void 0 : (_props$webChatContain2 = _props$webChatContain.renderingMiddlewareProps) === null || _props$webChatContain2 === void 0 ? void 0 : _props$webChatContain2.hideSendboxOnConversationEnd;
|
|
@@ -32,6 +32,8 @@ const handleChatDisconnect = (props, state, setWebChatStyles) => {
|
|
|
32
32
|
});
|
|
33
33
|
break;
|
|
34
34
|
case false:
|
|
35
|
+
// this means customer on purpose wants to hide the send box, we should not override it
|
|
36
|
+
if ((props === null || props === void 0 ? void 0 : (_props$webChatContain3 = props.webChatContainerProps) === null || _props$webChatContain3 === void 0 ? void 0 : (_props$webChatContain4 = _props$webChatContain3.webChatStyles) === null || _props$webChatContain4 === void 0 ? void 0 : _props$webChatContain4.hideSendBox) === true) return;
|
|
35
37
|
if (hideSendBoxOnConversationEnd !== false) {
|
|
36
38
|
setWebChatStyles(styles => {
|
|
37
39
|
return {
|
|
@@ -209,7 +209,7 @@ const endChat = async (props, facadeChatSDK, state, dispatch, setAdapter, setWeb
|
|
|
209
209
|
payload: undefined
|
|
210
210
|
});
|
|
211
211
|
// Always allow to close the chat for embedded mode irrespective of end chat errors
|
|
212
|
-
closeChatWidget(dispatch
|
|
212
|
+
closeChatWidget(dispatch);
|
|
213
213
|
facadeChatSDK.destroy();
|
|
214
214
|
}
|
|
215
215
|
}
|
|
@@ -339,21 +339,7 @@ const endVoiceVideoCallIfOngoing = async (facadeChatSDK, dispatch) => {
|
|
|
339
339
|
}
|
|
340
340
|
};
|
|
341
341
|
exports.endVoiceVideoCallIfOngoing = endVoiceVideoCallIfOngoing;
|
|
342
|
-
const closeChatWidget =
|
|
343
|
-
var _state$appStates5;
|
|
344
|
-
if (state !== null && state !== void 0 && (_state$appStates5 = state.appStates) !== null && _state$appStates5 !== void 0 && _state$appStates5.hideStartChatButton) {
|
|
345
|
-
var _props$controlProps2, _props$controlProps3;
|
|
346
|
-
// Only close chat if header is enabled for popout
|
|
347
|
-
// TODO : This condition needs to be removed eventually when the filler UX is ready for popout, removing this condition would show a blank screen for OOB Widget
|
|
348
|
-
if ((props === null || props === void 0 ? void 0 : (_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.hideHeader) === undefined || (props === null || props === void 0 ? void 0 : (_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : _props$controlProps3.hideHeader) === false) {
|
|
349
|
-
dispatch({
|
|
350
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
351
|
-
payload: _ConversationState.ConversationState.Closed
|
|
352
|
-
});
|
|
353
|
-
}
|
|
354
|
-
return;
|
|
355
|
-
}
|
|
356
|
-
|
|
342
|
+
const closeChatWidget = dispatch => {
|
|
357
343
|
// Embedded chat
|
|
358
344
|
dispatch({
|
|
359
345
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
@@ -373,6 +359,6 @@ const chatTokenCleanUp = async dispatch => {
|
|
|
373
359
|
};
|
|
374
360
|
|
|
375
361
|
const getEndChatEventName = async (facadeChatSDK, props) => {
|
|
376
|
-
var _facadeChatSDK$getCha2, _facadeChatSDK$getCha3, _facadeChatSDK$getCha4, _facadeChatSDK$getCha5, _props$
|
|
377
|
-
return (0, _utils.getWidgetEndChatEventName)((_facadeChatSDK$getCha2 = facadeChatSDK.getChatSDK()) === null || _facadeChatSDK$getCha2 === void 0 ? void 0 : (_facadeChatSDK$getCha3 = _facadeChatSDK$getCha2.omnichannelConfig) === null || _facadeChatSDK$getCha3 === void 0 ? void 0 : _facadeChatSDK$getCha3.orgId, (_facadeChatSDK$getCha4 = facadeChatSDK.getChatSDK()) === null || _facadeChatSDK$getCha4 === void 0 ? void 0 : (_facadeChatSDK$getCha5 = _facadeChatSDK$getCha4.omnichannelConfig) === null || _facadeChatSDK$getCha5 === void 0 ? void 0 : _facadeChatSDK$getCha5.widgetId, (props === null || props === void 0 ? void 0 : (_props$
|
|
362
|
+
var _facadeChatSDK$getCha2, _facadeChatSDK$getCha3, _facadeChatSDK$getCha4, _facadeChatSDK$getCha5, _props$controlProps2;
|
|
363
|
+
return (0, _utils.getWidgetEndChatEventName)((_facadeChatSDK$getCha2 = facadeChatSDK.getChatSDK()) === null || _facadeChatSDK$getCha2 === void 0 ? void 0 : (_facadeChatSDK$getCha3 = _facadeChatSDK$getCha2.omnichannelConfig) === null || _facadeChatSDK$getCha3 === void 0 ? void 0 : _facadeChatSDK$getCha3.orgId, (_facadeChatSDK$getCha4 = facadeChatSDK.getChatSDK()) === null || _facadeChatSDK$getCha4 === void 0 ? void 0 : (_facadeChatSDK$getCha5 = _facadeChatSDK$getCha4.omnichannelConfig) === null || _facadeChatSDK$getCha5 === void 0 ? void 0 : _facadeChatSDK$getCha5.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.widgetInstanceId) ?? "");
|
|
378
364
|
};
|
|
@@ -67,11 +67,6 @@ const getChatReconnectContext = async (facadeChatSDK, chatConfig, props, isAuthe
|
|
|
67
67
|
const chatReconnectOptionalParams = {
|
|
68
68
|
reconnectId: (_props$reconnectChatP4 = props.reconnectChatPaneProps) === null || _props$reconnectChatP4 === void 0 ? void 0 : _props$reconnectChatP4.reconnectId
|
|
69
69
|
};
|
|
70
|
-
// Get auth token for getting chat reconnect context
|
|
71
|
-
if (isAuthenticatedChat) {
|
|
72
|
-
// handle authentication will throw error if auth token is not available, so no need to check for response
|
|
73
|
-
await (0, _authHelper.handleAuthentication)(facadeChatSDK.getChatSDK(), chatConfig, props.getAuthToken);
|
|
74
|
-
}
|
|
75
70
|
const reconnectChatContext = await (facadeChatSDK === null || facadeChatSDK === void 0 ? void 0 : facadeChatSDK.getChatReconnectContext(chatReconnectOptionalParams));
|
|
76
71
|
if (isAuthenticatedChat) {
|
|
77
72
|
// remove auth token after reconnectId is fetched
|
|
@@ -7,7 +7,6 @@ exports.setPreChatAndInitiateChat = exports.prepareStartChat = exports.initStart
|
|
|
7
7
|
var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
|
|
8
8
|
var _Constants = require("../../../common/Constants");
|
|
9
9
|
var _utils = require("../../../common/utils");
|
|
10
|
-
var _authHelper = require("./authHelper");
|
|
11
10
|
var _reconnectChatHelper = require("./reconnectChatHelper");
|
|
12
11
|
var _startChatErrorHandler = require("./startChatErrorHandler");
|
|
13
12
|
var _ActivityStreamHandler = require("./ActivityStreamHandler");
|
|
@@ -19,6 +18,7 @@ var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
|
|
|
19
18
|
var _endChat = require("./endChat");
|
|
20
19
|
var _createAdapter = require("./createAdapter");
|
|
21
20
|
var _newMessageEventHandler = require("../../../plugins/newMessageEventHandler");
|
|
21
|
+
var _FirstMessageTrackerFromBot = require("../../../firstresponselatency/FirstMessageTrackerFromBot");
|
|
22
22
|
var _liveChatConfigUtils = require("./liveChatConfigUtils");
|
|
23
23
|
var _setPostChatContextAndLoadSurvey = require("./setPostChatContextAndLoadSurvey");
|
|
24
24
|
var _persistentChatHelper = require("./persistentChatHelper");
|
|
@@ -30,20 +30,6 @@ let widgetInstanceId;
|
|
|
30
30
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
31
31
|
let popoutWidgetInstanceId;
|
|
32
32
|
|
|
33
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
34
|
-
const setAuthenticationIfApplicable = async (props, facadeChatSDK) => {
|
|
35
|
-
const chatConfig = props === null || props === void 0 ? void 0 : props.chatConfig;
|
|
36
|
-
const getAuthToken = props === null || props === void 0 ? void 0 : props.getAuthToken;
|
|
37
|
-
const authClientFunction = (0, _authHelper.getAuthClientFunction)(chatConfig);
|
|
38
|
-
if (getAuthToken && authClientFunction) {
|
|
39
|
-
// set auth token to chat sdk before start chat
|
|
40
|
-
const authSuccess = await (0, _authHelper.handleAuthentication)(facadeChatSDK.getChatSDK(), chatConfig, getAuthToken);
|
|
41
|
-
if (!authSuccess.result) {
|
|
42
|
-
throw new Error(_Constants.WidgetLoadCustomErrorString.AuthenticationFailedErrorString);
|
|
43
|
-
}
|
|
44
|
-
}
|
|
45
|
-
};
|
|
46
|
-
|
|
47
33
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
48
34
|
const prepareStartChat = async (props, facadeChatSDK, state, dispatch, setAdapter) => {
|
|
49
35
|
optionalParams = {}; //Resetting to ensure no stale values
|
|
@@ -71,11 +57,6 @@ const prepareStartChat = async (props, facadeChatSDK, state, dispatch, setAdapte
|
|
|
71
57
|
const isProactiveChat = state.appStates.conversationState === _ConversationState.ConversationState.ProactiveChat;
|
|
72
58
|
const isPreChatEnabledInProactiveChat = state.appStates.proactiveChatStates.proactiveChatEnablePrechat;
|
|
73
59
|
|
|
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, facadeChatSDK);
|
|
77
|
-
}
|
|
78
|
-
|
|
79
60
|
//Setting PreChat and intiate chat
|
|
80
61
|
await setPreChatAndInitiateChat(facadeChatSDK, dispatch, setAdapter, isProactiveChat, isPreChatEnabledInProactiveChat, state, props);
|
|
81
62
|
};
|
|
@@ -151,6 +132,7 @@ const setPreChatAndInitiateChat = async (facadeChatSDK, dispatch, setAdapter, is
|
|
|
151
132
|
const optionalParams = {
|
|
152
133
|
isProactiveChat
|
|
153
134
|
};
|
|
135
|
+
(0, _FirstMessageTrackerFromBot.createTrackingForFirstMessage)();
|
|
154
136
|
await initStartChat(facadeChatSDK, dispatch, setAdapter, state, props, optionalParams);
|
|
155
137
|
};
|
|
156
138
|
|
|
@@ -179,9 +161,6 @@ const initStartChat = async (facadeChatSDK, dispatch, setAdapter, state, props,
|
|
|
179
161
|
Description: "Widget loading started"
|
|
180
162
|
});
|
|
181
163
|
|
|
182
|
-
// Auth token retrieval needs to happen during start chat to support pop-out chat
|
|
183
|
-
await setAuthenticationIfApplicable(props, facadeChatSDK);
|
|
184
|
-
|
|
185
164
|
//Check if chat retrieved from cache
|
|
186
165
|
if (persistedState || params !== null && params !== void 0 && params.liveChatContext) {
|
|
187
166
|
var _persistedState$domai, _persistedState$domai2, _persistedState$domai3, _persistedState$domai4, _persistedState$domai5;
|