@microsoft/omnichannel-chat-widget 1.0.6-main.3aba33c → 1.0.6-main.88cc13d
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/TelemetryHelper.js +16 -15
- package/lib/cjs/common/utils.js +17 -2
- package/lib/cjs/components/footerstateful/FooterStateful.js +2 -2
- package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +21 -12
- package/lib/cjs/components/footerstateful/downloadtranscriptstateful/interfaces/IWebChatTranscriptConfig.js +1 -0
- package/lib/cjs/components/livechatwidget/common/createDownloadTranscriptProps.js +27 -0
- package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +9 -1
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +13 -9
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +12 -10
- package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +3 -1
- package/lib/cjs/plugins/createChatTranscript.js +548 -0
- package/lib/esm/common/telemetry/TelemetryHelper.js +16 -15
- package/lib/esm/common/utils.js +15 -1
- package/lib/esm/components/footerstateful/FooterStateful.js +2 -2
- package/lib/esm/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js +22 -13
- package/lib/esm/components/footerstateful/downloadtranscriptstateful/interfaces/IWebChatTranscriptConfig.js +1 -0
- package/lib/esm/components/livechatwidget/common/createDownloadTranscriptProps.js +20 -0
- package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +9 -1
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +13 -9
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +12 -10
- package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +3 -1
- package/lib/esm/plugins/createChatTranscript.js +543 -0
- package/lib/types/common/telemetry/definitions/Contracts.d.ts +1 -0
- package/lib/types/common/utils.d.ts +1 -0
- package/lib/types/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.d.ts +2 -1
- package/lib/types/components/footerstateful/downloadtranscriptstateful/interfaces/IDownloadTranscriptProps.d.ts +5 -0
- package/lib/types/components/footerstateful/downloadtranscriptstateful/interfaces/IWebChatTranscriptConfig.d.ts +13 -0
- package/lib/types/components/livechatwidget/common/createDownloadTranscriptProps.d.ts +24 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IAdaptiveCardStyles.d.ts +2 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatProps.d.ts +1 -0
- package/lib/types/plugins/createChatTranscript.d.ts +2 -0
- package/package.json +1 -1
|
@@ -36,15 +36,16 @@ class TelemetryHelper {
|
|
|
36
36
|
static populateBasicProperties(level,
|
|
37
37
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
38
38
|
telemetryData) {
|
|
39
|
-
var _TelemetryManager$Int, _TelemetryManager$Int2, _TelemetryManager$Int3, _TelemetryManager$Int4, _TelemetryManager$Int5, _TelemetryManager$Int6, _TelemetryManager$Int7;
|
|
39
|
+
var _TelemetryManager$Int, _TelemetryManager$Int2, _TelemetryManager$Int3, _TelemetryManager$Int4, _TelemetryManager$Int5, _TelemetryManager$Int6, _TelemetryManager$Int7, _TelemetryManager$Int8;
|
|
40
40
|
return {
|
|
41
41
|
WidgetId: ((_TelemetryManager$Int = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int === void 0 ? void 0 : _TelemetryManager$Int.widgetId) ?? "",
|
|
42
42
|
ChatId: ((_TelemetryManager$Int2 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int2 === void 0 ? void 0 : _TelemetryManager$Int2.chatId) ?? "",
|
|
43
43
|
ChannelId: ((_TelemetryManager$Int3 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int3 === void 0 ? void 0 : _TelemetryManager$Int3.channelId) ?? "lcw2.0",
|
|
44
44
|
ConversationId: ((_TelemetryManager$Int4 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int4 === void 0 ? void 0 : _TelemetryManager$Int4.conversationId) ?? "",
|
|
45
45
|
OrganizationId: ((_TelemetryManager$Int5 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int5 === void 0 ? void 0 : _TelemetryManager$Int5.orgId) ?? "",
|
|
46
|
-
|
|
47
|
-
|
|
46
|
+
OrganizationUrl: ((_TelemetryManager$Int6 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int6 === void 0 ? void 0 : _TelemetryManager$Int6.orgUrl) ?? "",
|
|
47
|
+
LCWRuntimeId: ((_TelemetryManager$Int7 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int7 === void 0 ? void 0 : _TelemetryManager$Int7.lcwRuntimeId) ?? "",
|
|
48
|
+
CurrentRequestId: ((_TelemetryManager$Int8 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int8 === void 0 ? void 0 : _TelemetryManager$Int8.currentRequestId) ?? "",
|
|
48
49
|
LogLevel: level
|
|
49
50
|
};
|
|
50
51
|
}
|
|
@@ -79,22 +80,22 @@ class TelemetryHelper {
|
|
|
79
80
|
static conformToConfigValidationContract(level, input) {
|
|
80
81
|
const payload = input.payload;
|
|
81
82
|
return TelemetryHelper.populate(level, payload, event => {
|
|
82
|
-
var _TelemetryManager$
|
|
83
|
+
var _TelemetryManager$Int9, _TelemetryManager$Int10, _TelemetryManager$Int11;
|
|
83
84
|
event.Event = payload.Event;
|
|
84
85
|
event.RequestId = payload.RequestId;
|
|
85
|
-
event.LCWVersion = (_TelemetryManager$
|
|
86
|
+
event.LCWVersion = (_TelemetryManager$Int9 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int9 === void 0 ? void 0 : _TelemetryManager$Int9.environmentVersion;
|
|
86
87
|
event.CloudType = payload.CloudType;
|
|
87
|
-
event.Domain = (_TelemetryManager$
|
|
88
|
+
event.Domain = (_TelemetryManager$Int10 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int10 === void 0 ? void 0 : _TelemetryManager$Int10.hostName;
|
|
88
89
|
event.ElapsedTimeInMilliseconds = payload.ElapsedTimeInMilliseconds;
|
|
89
90
|
event.ExceptionDetails = JSON.stringify(payload.ExceptionDetails);
|
|
90
|
-
event.Language = ((_TelemetryManager$
|
|
91
|
+
event.Language = ((_TelemetryManager$Int11 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int11 === void 0 ? void 0 : _TelemetryManager$Int11.chatWidgetLocaleLCID) || "";
|
|
91
92
|
event.Description = payload.Data;
|
|
92
93
|
});
|
|
93
94
|
}
|
|
94
95
|
static conformToLoadContract(level, input) {
|
|
95
96
|
const payload = input.payload;
|
|
96
97
|
return TelemetryHelper.populate(level, payload, event => {
|
|
97
|
-
var _TelemetryManager$
|
|
98
|
+
var _TelemetryManager$Int12, _TelemetryManager$Int13, _TelemetryManager$Int14;
|
|
98
99
|
event.Event = payload.Event;
|
|
99
100
|
event.Description = payload.Description;
|
|
100
101
|
event.ResourcePath = payload.ResourcePath;
|
|
@@ -103,17 +104,17 @@ class TelemetryHelper {
|
|
|
103
104
|
event.ChatType = payload.ChatType;
|
|
104
105
|
event.ElapsedTimeInMilliseconds = payload.ElapsedTimeInMilliseconds;
|
|
105
106
|
event.ExceptionDetails = JSON.stringify(payload.ExceptionDetails);
|
|
106
|
-
event.OCChatSDKVersion = ((_TelemetryManager$
|
|
107
|
-
event.OCChatWidgetVersion = ((_TelemetryManager$
|
|
108
|
-
event.OCChatComponentsVersion = ((_TelemetryManager$
|
|
107
|
+
event.OCChatSDKVersion = ((_TelemetryManager$Int12 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int12 === void 0 ? void 0 : _TelemetryManager$Int12.OCChatSDKVersion) ?? "";
|
|
108
|
+
event.OCChatWidgetVersion = ((_TelemetryManager$Int13 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int13 === void 0 ? void 0 : _TelemetryManager$Int13.chatWidgetVersion) ?? "";
|
|
109
|
+
event.OCChatComponentsVersion = ((_TelemetryManager$Int14 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int14 === void 0 ? void 0 : _TelemetryManager$Int14.chatComponentVersion) ?? "";
|
|
109
110
|
});
|
|
110
111
|
}
|
|
111
112
|
static conformToIC3ClientContract(level, input) {
|
|
112
113
|
const payload = input.payload;
|
|
113
114
|
return TelemetryHelper.populate(level, payload, event => {
|
|
114
|
-
var _TelemetryManager$
|
|
115
|
+
var _TelemetryManager$Int15;
|
|
115
116
|
event.Event = payload.Event;
|
|
116
|
-
event.IC3ClientVersion = (_TelemetryManager$
|
|
117
|
+
event.IC3ClientVersion = (_TelemetryManager$Int15 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int15 === void 0 ? void 0 : _TelemetryManager$Int15.IC3ClientVersion;
|
|
117
118
|
event.SubscriptionId = payload.SubscriptionId;
|
|
118
119
|
event.EndpointUrl = payload.EndpointUrl;
|
|
119
120
|
event.EndpointId = payload.EndpointId;
|
|
@@ -220,14 +221,14 @@ _defineProperty(TelemetryHelper, "logActionEvent", (logLevel, payload) => {
|
|
|
220
221
|
_omnichannelChatComponents.BroadcastService.postMessage(telemetryEvent);
|
|
221
222
|
});
|
|
222
223
|
_defineProperty(TelemetryHelper, "logSDKEvent", (logLevel, payload) => {
|
|
223
|
-
var _TelemetryManager$
|
|
224
|
+
var _TelemetryManager$Int16;
|
|
224
225
|
const telemetryEvent = {
|
|
225
226
|
eventName: (payload === null || payload === void 0 ? void 0 : payload.Event) ?? "",
|
|
226
227
|
logLevel: logLevel,
|
|
227
228
|
payload: {
|
|
228
229
|
...payload,
|
|
229
230
|
TransactionId: (0, _utils.newGuid)(),
|
|
230
|
-
RequestId: (_TelemetryManager$
|
|
231
|
+
RequestId: (_TelemetryManager$Int16 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int16 === void 0 ? void 0 : _TelemetryManager$Int16.currentRequestId
|
|
231
232
|
}
|
|
232
233
|
};
|
|
233
234
|
_omnichannelChatComponents.BroadcastService.postMessage(telemetryEvent);
|
package/lib/cjs/common/utils.js
CHANGED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
Object.defineProperty(exports, "__esModule", {
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
|
-
exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isUndefinedOrEmpty = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getWidgetEndChatEventName = exports.getWidgetCacheIdfromProps = exports.getWidgetCacheId = exports.getTimestampHourMinute = exports.getStateFromCache = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.getConversationDetailsCall = exports.getBroadcastChannelName = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.debounceLeading = exports.createTimer = exports.checkContactIdError = exports.changeLanguageCodeFormatForWebChat = exports.addDelayInMs = void 0;
|
|
6
|
+
exports.setTabIndices = exports.setFocusOnSendBox = exports.setFocusOnElement = exports.preventFocusToMoveOutOfElement = exports.parseAdaptiveCardPayload = exports.newGuid = exports.isUndefinedOrEmpty = exports.isNullOrUndefined = exports.isNullOrEmptyString = exports.getWidgetEndChatEventName = exports.getWidgetCacheIdfromProps = exports.getWidgetCacheId = exports.getTimestampHourMinute = exports.getStateFromCache = exports.getLocaleDirection = exports.getIconText = exports.getDomain = exports.getConversationDetailsCall = exports.getBroadcastChannelName = exports.findParentFocusableElementsWithoutChildContainer = exports.findAllFocusableElement = exports.extractPreChatSurveyResponseValues = exports.escapeHtml = exports.debounceLeading = exports.createTimer = exports.createFileAndDownload = exports.checkContactIdError = exports.changeLanguageCodeFormatForWebChat = exports.addDelayInMs = void 0;
|
|
7
7
|
var _Constants = require("./Constants");
|
|
8
8
|
var _TelemetryConstants = require("./telemetry/TelemetryConstants");
|
|
9
9
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
@@ -416,4 +416,19 @@ const checkContactIdError = e => {
|
|
|
416
416
|
_omnichannelChatComponents.BroadcastService.postMessage(contactIdNotFoundErrorEvent);
|
|
417
417
|
}
|
|
418
418
|
};
|
|
419
|
-
exports.checkContactIdError = checkContactIdError;
|
|
419
|
+
exports.checkContactIdError = checkContactIdError;
|
|
420
|
+
const createFileAndDownload = (fileName, blobData, mimeType) => {
|
|
421
|
+
const aElement = document.createElement("a");
|
|
422
|
+
const blob = new Blob([blobData], {
|
|
423
|
+
type: mimeType
|
|
424
|
+
});
|
|
425
|
+
const objectUrl = URL.createObjectURL(blob);
|
|
426
|
+
aElement.setAttribute(_Constants.HtmlAttributeNames.href, objectUrl);
|
|
427
|
+
aElement.setAttribute(_Constants.HtmlAttributeNames.download, fileName);
|
|
428
|
+
aElement.setAttribute(_Constants.HtmlAttributeNames.ariaHidden, "true");
|
|
429
|
+
aElement.style.display = "none";
|
|
430
|
+
document.body.appendChild(aElement);
|
|
431
|
+
aElement.click();
|
|
432
|
+
document.body.removeChild(aElement);
|
|
433
|
+
};
|
|
434
|
+
exports.createFileAndDownload = createFileAndDownload;
|
|
@@ -22,7 +22,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
22
22
|
const FooterStateful = props => {
|
|
23
23
|
var _footerProps$controlP3, _footerProps$controlP4;
|
|
24
24
|
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
25
|
-
// hideFooterDisplay - the purpose of this is to keep the footer always "active",
|
|
25
|
+
// hideFooterDisplay - the purpose of this is to keep the footer always "active",
|
|
26
26
|
// but hide it visually in certain states (e.g., loading state) and show in some other states (e.g. active state).
|
|
27
27
|
// The reason for this approach is to make sure that state variables for audio notification work correctly after minimizing
|
|
28
28
|
const {
|
|
@@ -42,7 +42,7 @@ const FooterStateful = props => {
|
|
|
42
42
|
Event: _TelemetryConstants.TelemetryEvent.DownloadTranscriptButtonClicked,
|
|
43
43
|
Description: "Download Transcript button clicked."
|
|
44
44
|
});
|
|
45
|
-
await (0, _DownloadTranscriptStateful.downloadTranscript)(chatSDK, downloadTranscriptProps
|
|
45
|
+
await (0, _DownloadTranscriptStateful.downloadTranscript)(chatSDK, downloadTranscriptProps, state);
|
|
46
46
|
} catch (ex) {
|
|
47
47
|
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
48
48
|
Event: _TelemetryConstants.TelemetryEvent.DownloadTranscriptFailed,
|
package/lib/cjs/components/footerstateful/downloadtranscriptstateful/DownloadTranscriptStateful.js
CHANGED
|
@@ -9,7 +9,9 @@ var _NotificationScenarios = require("../../webchatcontainerstateful/webchatcont
|
|
|
9
9
|
var _NotificationHandler = require("../../webchatcontainerstateful/webchatcontroller/notification/NotificationHandler");
|
|
10
10
|
var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
|
|
11
11
|
var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
|
|
12
|
+
var _createChatTranscript = _interopRequireDefault(require("../../../plugins/createChatTranscript"));
|
|
12
13
|
var _dompurify = _interopRequireDefault(require("dompurify"));
|
|
14
|
+
var _utils = require("../../../common/utils");
|
|
13
15
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
14
16
|
const processDisplayName = displayName => {
|
|
15
17
|
// if displayname matches "teamsvisitor:<some alphanumeric string>", we replace it with "Customer"
|
|
@@ -161,7 +163,7 @@ const beautifyChatTranscripts = (chatTranscripts, renderMarkDown, attachmentMess
|
|
|
161
163
|
};
|
|
162
164
|
|
|
163
165
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
164
|
-
const downloadTranscript = async (chatSDK,
|
|
166
|
+
const downloadTranscript = async (chatSDK, downloadTranscriptProps, state) => {
|
|
165
167
|
var _state$domainStates, _state$domainStates2, _state$domainStates2$;
|
|
166
168
|
// Need to keep existing request id for scenarios when trnascript is downloaded after endchat
|
|
167
169
|
const liveChatContext = {
|
|
@@ -174,18 +176,25 @@ const downloadTranscript = async (chatSDK, renderMarkDown, bannerMessageOnError,
|
|
|
174
176
|
if (typeof data === _Constants.Constants.String) {
|
|
175
177
|
data = JSON.parse(data);
|
|
176
178
|
}
|
|
179
|
+
const {
|
|
180
|
+
bannerMessageOnError,
|
|
181
|
+
renderMarkDown,
|
|
182
|
+
attachmentMessage,
|
|
183
|
+
webChatTranscript
|
|
184
|
+
} = downloadTranscriptProps;
|
|
177
185
|
if (data[_Constants.Constants.ChatMessagesJson] !== null && data[_Constants.Constants.ChatMessagesJson] !== undefined) {
|
|
178
|
-
const
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
186
|
+
const useWebChatTranscript = (0, _utils.isNullOrUndefined)(webChatTranscript === null || webChatTranscript === void 0 ? void 0 : webChatTranscript.disabled) || (webChatTranscript === null || webChatTranscript === void 0 ? void 0 : webChatTranscript.disabled) === false;
|
|
187
|
+
if (useWebChatTranscript) {
|
|
188
|
+
const transcriptOptions = {
|
|
189
|
+
...webChatTranscript
|
|
190
|
+
};
|
|
191
|
+
await (0, _createChatTranscript.default)(data[_Constants.Constants.ChatMessagesJson], chatSDK, false, transcriptOptions);
|
|
192
|
+
} else {
|
|
193
|
+
// Legacy Transcript
|
|
194
|
+
const chatTranscripts = window.btoa(encodeURIComponent(beautifyChatTranscripts(data[_Constants.Constants.ChatMessagesJson], renderMarkDown, attachmentMessage)));
|
|
195
|
+
const byteCharacters = decodeURIComponent(window.atob(chatTranscripts));
|
|
196
|
+
(0, _utils.createFileAndDownload)(_Constants.TranscriptConstants.ChatTranscriptDownloadFile, byteCharacters, "text/html;charset=utf-8");
|
|
197
|
+
}
|
|
189
198
|
} else {
|
|
190
199
|
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
191
200
|
Event: _TelemetryConstants.TelemetryEvent.DownloadTranscriptResponseNullOrUndefined,
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = void 0;
|
|
7
|
+
var _defaultWebChatContainerStatefulProps = require("../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps");
|
|
8
|
+
const createDownloadTranscriptProps = (downloadTranscriptProps, webChatStyles, webChatContainerProps) => {
|
|
9
|
+
const disableNewLineMarkdownSupport = (webChatContainerProps === null || webChatContainerProps === void 0 ? void 0 : webChatContainerProps.disableNewLineMarkdownSupport) ?? _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.disableNewLineMarkdownSupport;
|
|
10
|
+
const disableMarkdownMessageFormatting = (webChatContainerProps === null || webChatContainerProps === void 0 ? void 0 : webChatContainerProps.disableMarkdownMessageFormatting) ?? _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.disableMarkdownMessageFormatting;
|
|
11
|
+
const props = {
|
|
12
|
+
...downloadTranscriptProps,
|
|
13
|
+
webChatTranscript: {
|
|
14
|
+
...(downloadTranscriptProps === null || downloadTranscriptProps === void 0 ? void 0 : downloadTranscriptProps.webChatTranscript),
|
|
15
|
+
disableNewLineMarkdownSupport,
|
|
16
|
+
disableMarkdownMessageFormatting,
|
|
17
|
+
transcriptBackgroundColor: webChatStyles === null || webChatStyles === void 0 ? void 0 : webChatStyles.backgroundColor,
|
|
18
|
+
agentAvatarBackgroundColor: webChatStyles === null || webChatStyles === void 0 ? void 0 : webChatStyles.bubbleBackground,
|
|
19
|
+
agentAvatarFontColor: webChatStyles === null || webChatStyles === void 0 ? void 0 : webChatStyles.bubbleTextColor,
|
|
20
|
+
customerAvatarBackgroundColor: webChatStyles === null || webChatStyles === void 0 ? void 0 : webChatStyles.bubbleFromUserBackground,
|
|
21
|
+
customerAvatarFontColor: webChatStyles === null || webChatStyles === void 0 ? void 0 : webChatStyles.bubbleFromUserTextColor
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
return props;
|
|
25
|
+
};
|
|
26
|
+
var _default = createDownloadTranscriptProps;
|
|
27
|
+
exports.default = _default;
|
|
@@ -601,7 +601,15 @@ const dummyDefaultProps = {
|
|
|
601
601
|
downloadTranscriptProps: {
|
|
602
602
|
bannerMessageOnError: "Download transcript failed.",
|
|
603
603
|
renderMarkDown: undefined,
|
|
604
|
-
attachmentMessage: "The following attachment was uploaded during the conversation:"
|
|
604
|
+
attachmentMessage: "The following attachment was uploaded during the conversation:",
|
|
605
|
+
webChatTranscript: {
|
|
606
|
+
disabled: false,
|
|
607
|
+
fileName: "transcript",
|
|
608
|
+
pageTitle: "Customer Transcript",
|
|
609
|
+
attachmentMessage: "The following attachment was uploaded during the conversation: ",
|
|
610
|
+
networkOnlineMessage: "Connection restored. Please refresh the page",
|
|
611
|
+
networkOfflineMessage: "Network Error. Please make sure you are connected to the internet."
|
|
612
|
+
}
|
|
605
613
|
},
|
|
606
614
|
emailTranscriptPane: {
|
|
607
615
|
componentOverrides: {
|
|
@@ -20,6 +20,7 @@ var _CallingContainerStateful = _interopRequireDefault(require("../../callingcon
|
|
|
20
20
|
var _ChatButtonStateful = _interopRequireDefault(require("../../chatbuttonstateful/ChatButtonStateful"));
|
|
21
21
|
var _ConfirmationPaneStateful = _interopRequireDefault(require("../../confirmationpanestateful/ConfirmationPaneStateful"));
|
|
22
22
|
var _ConversationState = require("../../../contexts/common/ConversationState");
|
|
23
|
+
var _createDownloadTranscriptProps = _interopRequireDefault(require("../common/createDownloadTranscriptProps"));
|
|
23
24
|
var _DataStoreManager = require("../../../common/contextDataStore/DataStoreManager");
|
|
24
25
|
var _EmailTranscriptPaneStateful = _interopRequireDefault(require("../../emailtranscriptpanestateful/EmailTranscriptPaneStateful"));
|
|
25
26
|
var _HeaderStateful = _interopRequireDefault(require("../../headerstateful/HeaderStateful"));
|
|
@@ -57,7 +58,7 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
|
|
|
57
58
|
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; }
|
|
58
59
|
function _extends() { _extends = Object.assign ? Object.assign.bind() : function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }
|
|
59
60
|
const LiveChatWidgetStateful = props => {
|
|
60
|
-
var _props$webChatContain, _props$styleProps, _chatSDK$omnichannelC, _props$controlProps, _props$controlProps2, _state$appStates7, _props$webChatContain5, _state$appStates14, _props$webChatContain6, _props$styleProps2, _props$controlProps11, _props$controlProps12, _props$componentOverr, _props$controlProps13, _props$componentOverr2, _props$controlProps14, _props$componentOverr3, _props$controlProps15, _props$componentOverr4, _props$controlProps16, _props$componentOverr5, _props$controlProps17, _props$componentOverr6, _props$controlProps18, _props$componentOverr7, _props$controlProps19, _props$controlProps20, _props$componentOverr8, _props$controlProps21, _props$componentOverr9, _props$controlProps22, _props$componentOverr10, _props$componentOverr11, _props$componentOverr12;
|
|
61
|
+
var _props$webChatContain, _props$styleProps, _chatSDK$omnichannelC, _props$controlProps, _props$controlProps2, _state$appStates7, _props$webChatContain5, _state$appStates14, _props$webChatContain6, _props$webChatContain7, _props$styleProps2, _props$controlProps11, _props$controlProps12, _props$componentOverr, _props$controlProps13, _props$componentOverr2, _props$controlProps14, _props$componentOverr3, _props$controlProps15, _props$componentOverr4, _props$controlProps16, _props$componentOverr5, _props$controlProps17, _props$componentOverr6, _props$controlProps18, _props$componentOverr7, _props$controlProps19, _props$controlProps20, _props$componentOverr8, _props$controlProps21, _props$componentOverr9, _props$controlProps22, _props$componentOverr10, _props$componentOverr11, _props$componentOverr12;
|
|
61
62
|
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
62
63
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
63
64
|
const [adapter, setAdapter] = (0, _useChatAdapterStore.default)();
|
|
@@ -553,12 +554,11 @@ const LiveChatWidgetStateful = props => {
|
|
|
553
554
|
if (state.appStates.conversationState === ConversationState.Active &&
|
|
554
555
|
props.controlProps?.hideStartChatButton === true) {
|
|
555
556
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
556
|
-
|
|
557
|
-
window.onbeforeunload = function () {
|
|
557
|
+
window.onbeforeunload = function () {
|
|
558
558
|
const prompt = Constants.BrowserUnloadConfirmationMessage;
|
|
559
559
|
return prompt;
|
|
560
560
|
};
|
|
561
|
-
|
|
561
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
562
562
|
window.onunload = function () {
|
|
563
563
|
initiateEndChatOnBrowserUnload();
|
|
564
564
|
};
|
|
@@ -609,26 +609,30 @@ const LiveChatWidgetStateful = props => {
|
|
|
609
609
|
const confirmationPaneProps = (0, _initConfirmationPropsComposer.initConfirmationPropsComposer)(props);
|
|
610
610
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
611
611
|
const prepareEndChatRelay = () => (0, _endChat.prepareEndChat)(props, chatSDK, state, dispatch, setAdapter, setWebChatStyles, adapter, uwid.current);
|
|
612
|
+
props.downloadTranscriptProps = (0, _createDownloadTranscriptProps.default)(props.downloadTranscriptProps, {
|
|
613
|
+
..._defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.webChatStyles,
|
|
614
|
+
...((_props$webChatContain6 = props.webChatContainerProps) === null || _props$webChatContain6 === void 0 ? void 0 : _props$webChatContain6.webChatStyles)
|
|
615
|
+
}, props.webChatContainerProps);
|
|
612
616
|
return /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, /*#__PURE__*/_react2.default.createElement("style", null, `
|
|
613
617
|
::-webkit-scrollbar {
|
|
614
618
|
width: ${scrollbarProps.width};
|
|
615
619
|
}
|
|
616
|
-
|
|
620
|
+
|
|
617
621
|
::-webkit-scrollbar-track {
|
|
618
622
|
background: ${scrollbarProps.trackBackgroundColor};
|
|
619
623
|
}
|
|
620
|
-
|
|
624
|
+
|
|
621
625
|
::-webkit-scrollbar-thumb {
|
|
622
626
|
background: ${scrollbarProps.thumbBackgroundColor};
|
|
623
627
|
border-radius: ${scrollbarProps.thumbBorderRadius};
|
|
624
628
|
}
|
|
625
|
-
|
|
629
|
+
|
|
626
630
|
::-webkit-scrollbar-thumb:hover {
|
|
627
631
|
background: ${scrollbarProps.thumbHoverColor};
|
|
628
|
-
}
|
|
632
|
+
}
|
|
629
633
|
`), /*#__PURE__*/_react2.default.createElement(Composer, _extends({}, webChatProps, {
|
|
630
634
|
styleOptions: webChatStyles,
|
|
631
|
-
directLine: ((_props$
|
|
635
|
+
directLine: ((_props$webChatContain7 = props.webChatContainerProps) === null || _props$webChatContain7 === void 0 ? void 0 : _props$webChatContain7.directLine) ?? adapter ?? _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.directLine
|
|
632
636
|
}), /*#__PURE__*/_react2.default.createElement(_react.Stack, {
|
|
633
637
|
id: widgetElementId,
|
|
634
638
|
styles: generalStyles,
|
|
@@ -7,22 +7,22 @@ exports.default = exports.WebChatContainerStateful = void 0;
|
|
|
7
7
|
var _react = require("@fluentui/react");
|
|
8
8
|
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
9
9
|
var _react2 = _interopRequireWildcard(require("react"));
|
|
10
|
-
var
|
|
10
|
+
var _BotMagicCodeStore = require("./webchatcontroller/BotMagicCodeStore");
|
|
11
11
|
var _broadcastChannel = require("broadcast-channel");
|
|
12
|
+
var _botframeworkWebchat = require("botframework-webchat");
|
|
13
|
+
var _Constants = require("../../common/Constants");
|
|
12
14
|
var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
|
|
13
15
|
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
14
|
-
var _defaultMiddlewareLocalizedTexts = require("./common/defaultProps/defaultMiddlewareLocalizedTexts");
|
|
15
|
-
var _defaultWebChatContainerStatefulProps = require("./common/defaultProps/defaultWebChatContainerStatefulProps");
|
|
16
|
-
var _utils = require("../../common/utils");
|
|
17
|
-
var _ = require("../..");
|
|
18
16
|
var _WebChatActionType = require("./webchatcontroller/enums/WebChatActionType");
|
|
19
17
|
var _WebChatStoreLoader = require("./webchatcontroller/WebChatStoreLoader");
|
|
20
|
-
var _Constants = require("../../common/Constants");
|
|
21
|
-
var _BotMagicCodeStore = require("./webchatcontroller/BotMagicCodeStore");
|
|
22
18
|
var _defaultAdaptiveCardStyles = require("./common/defaultStyles/defaultAdaptiveCardStyles");
|
|
19
|
+
var _defaultMiddlewareLocalizedTexts = require("./common/defaultProps/defaultMiddlewareLocalizedTexts");
|
|
23
20
|
var _defaultReceivedMessageAnchorStyles = require("./webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultReceivedMessageAnchorStyles");
|
|
24
|
-
var _defaultUserMessageBoxStyles = require("./webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles");
|
|
25
21
|
var _defaultSystemMessageBoxStyles = require("./webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles");
|
|
22
|
+
var _defaultUserMessageBoxStyles = require("./webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles");
|
|
23
|
+
var _defaultWebChatContainerStatefulProps = require("./common/defaultProps/defaultWebChatContainerStatefulProps");
|
|
24
|
+
var _utils = require("../../common/utils");
|
|
25
|
+
var _ = require("../..");
|
|
26
26
|
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); }
|
|
27
27
|
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; }
|
|
28
28
|
const broadcastChannelMessageEvent = "message";
|
|
@@ -51,7 +51,7 @@ const createMagicCodeSuccessResponse = signin => {
|
|
|
51
51
|
};
|
|
52
52
|
};
|
|
53
53
|
const WebChatContainerStateful = props => {
|
|
54
|
-
var _props$adaptiveCardSt, _props$renderingMiddl, _props$renderingMiddl2, _props$renderingMiddl3, _props$renderingMiddl4, _props$adaptiveCardSt2, _props$renderingMiddl5, _props$renderingMiddl6, _props$renderingMiddl7, _props$renderingMiddl8;
|
|
54
|
+
var _props$adaptiveCardSt, _props$renderingMiddl, _props$renderingMiddl2, _props$renderingMiddl3, _props$renderingMiddl4, _props$adaptiveCardSt2, _props$adaptiveCardSt3, _props$adaptiveCardSt4, _props$renderingMiddl5, _props$renderingMiddl6, _props$renderingMiddl7, _props$renderingMiddl8;
|
|
55
55
|
const {
|
|
56
56
|
BasicWebChat
|
|
57
57
|
} = _botframeworkWebchat.Components;
|
|
@@ -132,7 +132,9 @@ const WebChatContainerStateful = props => {
|
|
|
132
132
|
max-width: ${(props === null || props === void 0 ? void 0 : (_props$renderingMiddl3 = props.renderingMiddlewareProps) === null || _props$renderingMiddl3 === void 0 ? void 0 : (_props$renderingMiddl4 = _props$renderingMiddl3.systemMessageBoxStyles) === null || _props$renderingMiddl4 === void 0 ? void 0 : _props$renderingMiddl4.maxWidth) ?? (_defaultSystemMessageBoxStyles.defaultSystemMessageBoxStyles === null || _defaultSystemMessageBoxStyles.defaultSystemMessageBoxStyles === void 0 ? void 0 : _defaultSystemMessageBoxStyles.defaultSystemMessageBoxStyles.maxWidth)}
|
|
133
133
|
}
|
|
134
134
|
|
|
135
|
-
div[class="ac-textBlock"]>p{color:${(props === null || props === void 0 ? void 0 : (_props$adaptiveCardSt2 = props.adaptiveCardStyles) === null || _props$adaptiveCardSt2 === void 0 ? void 0 : _props$adaptiveCardSt2.color) ?? _defaultAdaptiveCardStyles.defaultAdaptiveCardStyles.color};}
|
|
135
|
+
div[class="ac-textBlock"]>p{color:${(props === null || props === void 0 ? void 0 : (_props$adaptiveCardSt2 = props.adaptiveCardStyles) === null || _props$adaptiveCardSt2 === void 0 ? void 0 : _props$adaptiveCardSt2.color) ?? _defaultAdaptiveCardStyles.defaultAdaptiveCardStyles.color}; white-space:${(props === null || props === void 0 ? void 0 : (_props$adaptiveCardSt3 = props.adaptiveCardStyles) === null || _props$adaptiveCardSt3 === void 0 ? void 0 : _props$adaptiveCardSt3.textWhiteSpace) ?? _defaultAdaptiveCardStyles.defaultAdaptiveCardStyles.textWhiteSpace}}
|
|
136
|
+
|
|
137
|
+
.webchat__stacked-layout__content .ac-actionSet > .ac-pushButton > div {white-space: ${(props === null || props === void 0 ? void 0 : (_props$adaptiveCardSt4 = props.adaptiveCardStyles) === null || _props$adaptiveCardSt4 === void 0 ? void 0 : _props$adaptiveCardSt4.buttonWhiteSpace) ?? _defaultAdaptiveCardStyles.defaultAdaptiveCardStyles.buttonWhiteSpace} !important;}
|
|
136
138
|
|
|
137
139
|
.ms_lcw_webchat_received_message img.webchat__markdown__external-link-icon {
|
|
138
140
|
background-image : url(data:image/svg+xml;base64,PHN2ZyB2aWV3Qm94PSIzIDMgMTggMTgiICB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciPjxwYXRoIGQ9Ik03LjI1MDEgNC41MDAxN0gxMC43NDk1QzExLjE2MzcgNC41MDAxNyAxMS40OTk1IDQuODM1OTYgMTEuNDk5NSA1LjI1MDE3QzExLjQ5OTUgNS42Mjk4NiAxMS4yMTczIDUuOTQzNjYgMTAuODUxMyA1Ljk5MzMyTDEwLjc0OTUgNi4wMDAxN0g3LjI0OTc0QzYuMDcwNzkgNS45OTk2MSA1LjEwMzQ5IDYuOTA2NTYgNS4wMDc4NiA4LjA2MTEyTDUuMDAwMjggOC4yMjAwM0w1LjAwMzEyIDE2Ljc1MDdDNS4wMDM0MyAxNy45NDE1IDUuOTI4ODUgMTguOTE2MSA3LjA5OTY2IDE4Ljk5NDlMNy4yNTM3MSAxOS4wMDAxTDE1Ljc1MTggMTguOTg4NEMxNi45NDE1IDE4Ljk4NjggMTcuOTE0NSAxOC4wNjIgMTcuOTkzNSAxNi44OTIzTDE3Ljk5ODcgMTYuNzM4NFYxMy4yMzIxQzE3Ljk5ODcgMTIuODE3OSAxOC4zMzQ1IDEyLjQ4MjEgMTguNzQ4NyAxMi40ODIxQzE5LjEyODQgMTIuNDgyMSAxOS40NDIyIDEyLjc2NDMgMTkuNDkxOCAxMy4xMzAzTDE5LjQ5ODcgMTMuMjMyMVYxNi43Mzg0QzE5LjQ5ODcgMTguNzQwNyAxNy45MjkzIDIwLjM3NjkgMTUuOTUyOCAyMC40ODI5TDE1Ljc1MzggMjAuNDg4NEw3LjI1ODI3IDIwLjUwMDFMNy4wNTQ5NSAyMC40OTQ5QzUuMTQyMzkgMjAuMzk1NCAzLjYwODk1IDE4Ljg2MjcgMy41MDgzNyAxNi45NTAyTDMuNTAzMTIgMTYuNzUxMUwzLjUwMDg5IDguMjUyN0wzLjUwNTI5IDguMDUwMkMzLjYwNTM5IDYuMTM3NDkgNS4xMzg2NyA0LjYwNDQ5IDcuMDUwOTYgNC41MDUyN0w3LjI1MDEgNC41MDAxN0gxMC43NDk1SDcuMjUwMVpNMTMuNzQ4MSAzLjAwMTQ2TDIwLjMwMTggMy4wMDE5N0wyMC40MDE0IDMuMDE1NzVMMjAuNTAyMiAzLjA0MzkzTDIwLjU1OSAzLjA2ODAzQzIwLjYxMjIgMy4wOTEyMiAyMC42NjM0IDMuMTIxNjMgMjAuNzExMSAzLjE1ODg1TDIwLjc4MDQgMy4yMjE1NkwyMC44NjQxIDMuMzIwMTRMMjAuOTE4MyAzLjQxMDI1TDIwLjk1NyAzLjUwMDU3TDIwLjk3NjIgMy41NjQ3NkwyMC45ODk4IDMuNjI4NjJMMjAuOTk5MiAzLjcyMjgyTDIwLjk5OTcgMTAuMjU1NEMyMC45OTk3IDEwLjY2OTYgMjAuNjYzOSAxMS4wMDU0IDIwLjI0OTcgMTEuMDA1NEMxOS44NyAxMS4wMDU0IDE5LjU1NjIgMTAuNzIzMiAxOS41MDY1IDEwLjM1NzFMMTkuNDk5NyAxMC4yNTU0TDE5LjQ5ODkgNS41NjE0N0wxMi4yNzk3IDEyLjc4NDdDMTIuMDEzNCAxMy4wNTEgMTEuNTk2OCAxMy4wNzUzIDExLjMwMzEgMTIuODU3NUwxMS4yMTkgMTIuNzg0OUMxMC45NTI3IDEyLjUxODcgMTAuOTI4NCAxMi4xMDIxIDExLjE0NjIgMTEuODA4NEwxMS4yMTg4IDExLjcyNDNMMTguNDM2OSA0LjUwMTQ2SDEzLjc0ODFDMTMuMzY4NCA0LjUwMTQ2IDEzLjA1NDYgNC4yMTkzMSAxMy4wMDUgMy44NTMyNEwxMi45OTgxIDMuNzUxNDZDMTIuOTk4MSAzLjM3MTc3IDEzLjI4MDMgMy4wNTc5NyAxMy42NDY0IDMuMDA4MzFMMTMuNzQ4MSAzLjAwMTQ2WiIgZmlsbD0iI0ZGRkZGRiIgLz48L3N2Zz4) !important;
|
|
@@ -6,6 +6,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.defaultAdaptiveCardStyles = void 0;
|
|
7
7
|
const defaultAdaptiveCardStyles = {
|
|
8
8
|
background: "white",
|
|
9
|
-
color: "black"
|
|
9
|
+
color: "black",
|
|
10
|
+
textWhiteSpace: "normal",
|
|
11
|
+
buttonWhiteSpace: "normal"
|
|
10
12
|
};
|
|
11
13
|
exports.defaultAdaptiveCardStyles = defaultAdaptiveCardStyles;
|