@microsoft/omnichannel-chat-widget 1.0.5-main.d908c85 → 1.0.6-main.0c19ff3
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 +1 -0
- package/lib/cjs/common/telemetry/TelemetryHelper.js +19 -17
- 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/common/startChat.js +27 -12
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +36 -28
- package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +6 -0
- package/lib/cjs/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +5 -1
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +21 -11
- package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +3 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSentMessageAnchorStyles.js +10 -0
- package/lib/cjs/plugins/createChatTranscript.js +548 -0
- package/lib/esm/common/Constants.js +1 -0
- package/lib/esm/common/telemetry/TelemetryHelper.js +19 -17
- 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/common/startChat.js +27 -12
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +36 -28
- package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +6 -0
- package/lib/esm/components/proactivechatpanestateful/ProactiveChatPaneStateful.js +5 -1
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +21 -11
- package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultAdaptiveCardStyles.js +3 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSentMessageAnchorStyles.js +3 -0
- package/lib/esm/plugins/createChatTranscript.js +543 -0
- package/lib/types/common/Constants.d.ts +1 -0
- package/lib/types/common/telemetry/TelemetryHelper.d.ts +3 -3
- package/lib/types/common/telemetry/definitions/Contracts.d.ts +1 -0
- package/lib/types/common/telemetry/definitions/Payload.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/IRenderingMiddlewareProps.d.ts +1 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatProps.d.ts +1 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSentMessageAnchorStyles.d.ts +2 -0
- package/lib/types/plugins/createChatTranscript.d.ts +2 -0
- package/package.json +3 -3
|
@@ -155,6 +155,7 @@ _defineProperty(HtmlAttributeNames, "listItem", "LI");
|
|
|
155
155
|
_defineProperty(HtmlAttributeNames, "unorderedList", "UL");
|
|
156
156
|
_defineProperty(HtmlAttributeNames, "div", "div");
|
|
157
157
|
_defineProperty(HtmlAttributeNames, "aTagName", "a");
|
|
158
|
+
_defineProperty(HtmlAttributeNames, "pTagName", "p");
|
|
158
159
|
_defineProperty(HtmlAttributeNames, "noopenerTag", "noopener");
|
|
159
160
|
_defineProperty(HtmlAttributeNames, "noreferrerTag", "noreferrer");
|
|
160
161
|
_defineProperty(HtmlAttributeNames, "adaptiveCardClassName", "ac-adaptiveCard");
|
|
@@ -5,9 +5,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
5
5
|
});
|
|
6
6
|
exports.TelemetryHelper = void 0;
|
|
7
7
|
var _TelemetryConstants = require("./TelemetryConstants");
|
|
8
|
-
var _utils = require("../utils");
|
|
9
|
-
var _TelemetryManager = require("./TelemetryManager");
|
|
10
8
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
9
|
+
var _TelemetryManager = require("./TelemetryManager");
|
|
10
|
+
var _utils = require("../utils");
|
|
11
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
12
|
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
13
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); }
|
|
@@ -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,40 +80,41 @@ 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;
|
|
100
|
+
event.Description = payload.Description;
|
|
99
101
|
event.ResourcePath = payload.ResourcePath;
|
|
100
102
|
event.WidgetState = payload.WidgetState;
|
|
101
103
|
event.ChatState = payload.ChatState;
|
|
102
104
|
event.ChatType = payload.ChatType;
|
|
103
105
|
event.ElapsedTimeInMilliseconds = payload.ElapsedTimeInMilliseconds;
|
|
104
106
|
event.ExceptionDetails = JSON.stringify(payload.ExceptionDetails);
|
|
105
|
-
event.OCChatSDKVersion = ((_TelemetryManager$
|
|
106
|
-
event.OCChatWidgetVersion = ((_TelemetryManager$
|
|
107
|
-
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) ?? "";
|
|
108
110
|
});
|
|
109
111
|
}
|
|
110
112
|
static conformToIC3ClientContract(level, input) {
|
|
111
113
|
const payload = input.payload;
|
|
112
114
|
return TelemetryHelper.populate(level, payload, event => {
|
|
113
|
-
var _TelemetryManager$
|
|
115
|
+
var _TelemetryManager$Int15;
|
|
114
116
|
event.Event = payload.Event;
|
|
115
|
-
event.IC3ClientVersion = (_TelemetryManager$
|
|
117
|
+
event.IC3ClientVersion = (_TelemetryManager$Int15 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int15 === void 0 ? void 0 : _TelemetryManager$Int15.IC3ClientVersion;
|
|
116
118
|
event.SubscriptionId = payload.SubscriptionId;
|
|
117
119
|
event.EndpointUrl = payload.EndpointUrl;
|
|
118
120
|
event.EndpointId = payload.EndpointId;
|
|
@@ -219,14 +221,14 @@ _defineProperty(TelemetryHelper, "logActionEvent", (logLevel, payload) => {
|
|
|
219
221
|
_omnichannelChatComponents.BroadcastService.postMessage(telemetryEvent);
|
|
220
222
|
});
|
|
221
223
|
_defineProperty(TelemetryHelper, "logSDKEvent", (logLevel, payload) => {
|
|
222
|
-
var _TelemetryManager$
|
|
224
|
+
var _TelemetryManager$Int16;
|
|
223
225
|
const telemetryEvent = {
|
|
224
226
|
eventName: (payload === null || payload === void 0 ? void 0 : payload.Event) ?? "",
|
|
225
227
|
logLevel: logLevel,
|
|
226
228
|
payload: {
|
|
227
229
|
...payload,
|
|
228
230
|
TransactionId: (0, _utils.newGuid)(),
|
|
229
|
-
RequestId: (_TelemetryManager$
|
|
231
|
+
RequestId: (_TelemetryManager$Int16 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int16 === void 0 ? void 0 : _TelemetryManager$Int16.currentRequestId
|
|
230
232
|
}
|
|
231
233
|
};
|
|
232
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: {
|
|
@@ -61,12 +61,13 @@ const prepareStartChat = async (props, chatSDK, state, dispatch, setAdapter) =>
|
|
|
61
61
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
62
62
|
exports.prepareStartChat = prepareStartChat;
|
|
63
63
|
const setPreChatAndInitiateChat = async (chatSDK, dispatch, setAdapter, isProactiveChat, proactiveChatEnablePrechatState, state, props) => {
|
|
64
|
+
var _props$controlProps;
|
|
64
65
|
//Handle reconnect scenario
|
|
65
66
|
|
|
66
67
|
// Getting prechat Survey Context
|
|
67
68
|
const parseToJson = false;
|
|
68
69
|
const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
|
|
69
|
-
const showPrechat = isProactiveChat ? preChatSurveyResponse && proactiveChatEnablePrechatState : preChatSurveyResponse;
|
|
70
|
+
const showPrechat = isProactiveChat ? preChatSurveyResponse && proactiveChatEnablePrechatState : preChatSurveyResponse && !(props !== null && props !== void 0 && (_props$controlProps = props.controlProps) !== null && _props$controlProps !== void 0 && _props$controlProps.hidePreChatSurveyPane);
|
|
70
71
|
if (showPrechat) {
|
|
71
72
|
dispatch({
|
|
72
73
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PRE_CHAT_SURVEY_RESPONSE,
|
|
@@ -93,13 +94,13 @@ const setPreChatAndInitiateChat = async (chatSDK, dispatch, setAdapter, isProact
|
|
|
93
94
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
94
95
|
exports.setPreChatAndInitiateChat = setPreChatAndInitiateChat;
|
|
95
96
|
const initStartChat = async (chatSDK, dispatch, setAdapter, props, params, persistedState) => {
|
|
96
|
-
var _props$
|
|
97
|
+
var _props$controlProps2;
|
|
97
98
|
let isStartChatSuccessful = false;
|
|
98
99
|
const chatConfig = props === null || props === void 0 ? void 0 : props.chatConfig;
|
|
99
100
|
const getAuthToken = props === null || props === void 0 ? void 0 : props.getAuthToken;
|
|
100
|
-
const hideErrorUIPane = props === null || props === void 0 ? void 0 : (_props$
|
|
101
|
+
const hideErrorUIPane = props === null || props === void 0 ? void 0 : (_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.hideErrorUIPane;
|
|
101
102
|
try {
|
|
102
|
-
var _newAdapter$activity$, _TelemetryTimers$
|
|
103
|
+
var _newAdapter$activity$, _TelemetryTimers$Widg2;
|
|
103
104
|
//Start widget load timer
|
|
104
105
|
_TelemetryManager.TelemetryTimers.WidgetLoadTimer = (0, _utils.createTimer)();
|
|
105
106
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
@@ -175,10 +176,16 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, props, params, persi
|
|
|
175
176
|
});
|
|
176
177
|
}
|
|
177
178
|
if (persistedState) {
|
|
179
|
+
var _TelemetryTimers$Widg;
|
|
178
180
|
dispatch({
|
|
179
181
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_STATE,
|
|
180
182
|
payload: persistedState
|
|
181
183
|
});
|
|
184
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
185
|
+
Event: _TelemetryConstants.TelemetryEvent.WidgetLoadComplete,
|
|
186
|
+
Description: "Widget load complete. Persisted state retrieved",
|
|
187
|
+
ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers === null || _TelemetryManager.TelemetryTimers === void 0 ? void 0 : (_TelemetryTimers$Widg = _TelemetryManager.TelemetryTimers.WidgetLoadTimer) === null || _TelemetryTimers$Widg === void 0 ? void 0 : _TelemetryTimers$Widg.milliSecondsElapsed
|
|
188
|
+
});
|
|
182
189
|
await (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch, true);
|
|
183
190
|
return;
|
|
184
191
|
}
|
|
@@ -192,7 +199,7 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, props, params, persi
|
|
|
192
199
|
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
193
200
|
Event: _TelemetryConstants.TelemetryEvent.WidgetLoadComplete,
|
|
194
201
|
Description: "Widget load complete",
|
|
195
|
-
ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers === null || _TelemetryManager.TelemetryTimers === void 0 ? void 0 : (_TelemetryTimers$
|
|
202
|
+
ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers === null || _TelemetryManager.TelemetryTimers === void 0 ? void 0 : (_TelemetryTimers$Widg2 = _TelemetryManager.TelemetryTimers.WidgetLoadTimer) === null || _TelemetryTimers$Widg2 === void 0 ? void 0 : _TelemetryTimers$Widg2.milliSecondsElapsed
|
|
196
203
|
});
|
|
197
204
|
|
|
198
205
|
// Set post chat context in state
|
|
@@ -202,15 +209,10 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, props, params, persi
|
|
|
202
209
|
// Updating chat session detail for telemetry
|
|
203
210
|
await (0, _updateSessionDataForTelemetry.updateSessionDataForTelemetry)(chatSDK, dispatch);
|
|
204
211
|
} catch (ex) {
|
|
205
|
-
|
|
206
|
-
Event: _TelemetryConstants.TelemetryEvent.WidgetLoadFailed,
|
|
207
|
-
ExceptionDetails: {
|
|
208
|
-
Exception: `Widget load Failed: ${ex}`
|
|
209
|
-
}
|
|
210
|
-
});
|
|
211
|
-
_NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.Connection, "Start Chat Failed: " + ex);
|
|
212
|
+
var _TelemetryTimers$Widg4;
|
|
212
213
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
213
214
|
if (ex.message === _Constants.ChatSDKError.WidgetUseOutsideOperatingHour) {
|
|
215
|
+
var _TelemetryTimers$Widg3;
|
|
214
216
|
dispatch({
|
|
215
217
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_OUTSIDE_OPERATING_HOURS,
|
|
216
218
|
payload: true
|
|
@@ -219,8 +221,21 @@ const initStartChat = async (chatSDK, dispatch, setAdapter, props, params, persi
|
|
|
219
221
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
220
222
|
payload: _ConversationState.ConversationState.OutOfOffice
|
|
221
223
|
});
|
|
224
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
225
|
+
Event: _TelemetryConstants.TelemetryEvent.WidgetLoadComplete,
|
|
226
|
+
Description: "Widget load complete. Widget is OOOH.",
|
|
227
|
+
ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers === null || _TelemetryManager.TelemetryTimers === void 0 ? void 0 : (_TelemetryTimers$Widg3 = _TelemetryManager.TelemetryTimers.WidgetLoadTimer) === null || _TelemetryTimers$Widg3 === void 0 ? void 0 : _TelemetryTimers$Widg3.milliSecondsElapsed
|
|
228
|
+
});
|
|
222
229
|
return;
|
|
223
230
|
}
|
|
231
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.ERROR, {
|
|
232
|
+
Event: _TelemetryConstants.TelemetryEvent.WidgetLoadFailed,
|
|
233
|
+
ExceptionDetails: {
|
|
234
|
+
Exception: `Widget load Failed: ${ex}`
|
|
235
|
+
},
|
|
236
|
+
ElapsedTimeInMilliseconds: _TelemetryManager.TelemetryTimers === null || _TelemetryManager.TelemetryTimers === void 0 ? void 0 : (_TelemetryTimers$Widg4 = _TelemetryManager.TelemetryTimers.WidgetLoadTimer) === null || _TelemetryTimers$Widg4 === void 0 ? void 0 : _TelemetryTimers$Widg4.milliSecondsElapsed
|
|
237
|
+
});
|
|
238
|
+
_NotificationHandler.NotificationHandler.notifyError(_NotificationScenarios.NotificationScenarios.Connection, "Start Chat Failed: " + ex);
|
|
224
239
|
dispatch({
|
|
225
240
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_START_CHAT_FAILING,
|
|
226
241
|
payload: true
|
|
@@ -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,
|
|
61
|
+
var _props$webChatContain, _props$styleProps, _chatSDK$omnichannelC, _props$controlProps, _props$controlProps2, _state$appStates7, _props$webChatContain5, _state$appStates14, _props$webChatContain6, _livechatProps$webCha, _livechatProps$styleP, _livechatProps$contro, _livechatProps$contro2, _livechatProps$compon, _livechatProps$contro3, _livechatProps$compon2, _livechatProps$contro4, _livechatProps$compon3, _livechatProps$contro5, _livechatProps$compon4, _livechatProps$contro6, _livechatProps$compon5, _livechatProps$contro7, _livechatProps$compon6, _livechatProps$contro8, _livechatProps$compon7, _livechatProps$contro9, _livechatProps$contro10, _livechatProps$compon8, _livechatProps$contro11, _livechatProps$compon9, _livechatProps$contro12, _livechatProps$compon10, _livechatProps$compon11, _livechatProps$compon12;
|
|
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,56 +609,64 @@ 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
|
+
const downloadTranscriptProps = (0, _createDownloadTranscriptProps.default)(props.downloadTranscriptProps, {
|
|
613
|
+
...(_defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps === null || _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps === void 0 ? void 0 : _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.webChatStyles),
|
|
614
|
+
...((_props$webChatContain6 = props.webChatContainerProps) === null || _props$webChatContain6 === void 0 ? void 0 : _props$webChatContain6.webChatStyles)
|
|
615
|
+
}, props.webChatContainerProps);
|
|
616
|
+
const livechatProps = {
|
|
617
|
+
...props,
|
|
618
|
+
downloadTranscriptProps
|
|
619
|
+
};
|
|
612
620
|
return /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, /*#__PURE__*/_react2.default.createElement("style", null, `
|
|
613
621
|
::-webkit-scrollbar {
|
|
614
622
|
width: ${scrollbarProps.width};
|
|
615
623
|
}
|
|
616
|
-
|
|
624
|
+
|
|
617
625
|
::-webkit-scrollbar-track {
|
|
618
626
|
background: ${scrollbarProps.trackBackgroundColor};
|
|
619
627
|
}
|
|
620
|
-
|
|
628
|
+
|
|
621
629
|
::-webkit-scrollbar-thumb {
|
|
622
630
|
background: ${scrollbarProps.thumbBackgroundColor};
|
|
623
631
|
border-radius: ${scrollbarProps.thumbBorderRadius};
|
|
624
632
|
}
|
|
625
|
-
|
|
633
|
+
|
|
626
634
|
::-webkit-scrollbar-thumb:hover {
|
|
627
635
|
background: ${scrollbarProps.thumbHoverColor};
|
|
628
|
-
}
|
|
636
|
+
}
|
|
629
637
|
`), /*#__PURE__*/_react2.default.createElement(Composer, _extends({}, webChatProps, {
|
|
630
638
|
styleOptions: webChatStyles,
|
|
631
|
-
directLine: ((
|
|
639
|
+
directLine: ((_livechatProps$webCha = livechatProps.webChatContainerProps) === null || _livechatProps$webCha === void 0 ? void 0 : _livechatProps$webCha.directLine) ?? adapter ?? _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.directLine
|
|
632
640
|
}), /*#__PURE__*/_react2.default.createElement(_react.Stack, {
|
|
633
641
|
id: widgetElementId,
|
|
634
642
|
styles: generalStyles,
|
|
635
|
-
className: (
|
|
636
|
-
}, !((
|
|
637
|
-
buttonProps:
|
|
638
|
-
outOfOfficeButtonProps:
|
|
643
|
+
className: (_livechatProps$styleP = livechatProps.styleProps) === null || _livechatProps$styleP === void 0 ? void 0 : _livechatProps$styleP.className
|
|
644
|
+
}, !((_livechatProps$contro = livechatProps.controlProps) !== null && _livechatProps$contro !== void 0 && _livechatProps$contro.hideChatButton) && !((_livechatProps$contro2 = livechatProps.controlProps) !== null && _livechatProps$contro2 !== void 0 && _livechatProps$contro2.hideStartChatButton) && (0, _componentController.shouldShowChatButton)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_livechatProps$compon = livechatProps.componentOverrides) === null || _livechatProps$compon === void 0 ? void 0 : _livechatProps$compon.chatButton) || /*#__PURE__*/_react2.default.createElement(_ChatButtonStateful.default, {
|
|
645
|
+
buttonProps: livechatProps.chatButtonProps,
|
|
646
|
+
outOfOfficeButtonProps: livechatProps.outOfOfficeChatButtonProps,
|
|
639
647
|
startChat: prepareStartChatRelay
|
|
640
|
-
})), !((
|
|
641
|
-
proactiveChatProps:
|
|
648
|
+
})), !((_livechatProps$contro3 = livechatProps.controlProps) !== null && _livechatProps$contro3 !== void 0 && _livechatProps$contro3.hideProactiveChatPane) && (0, _componentController.shouldShowProactiveChatPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_livechatProps$compon2 = livechatProps.componentOverrides) === null || _livechatProps$compon2 === void 0 ? void 0 : _livechatProps$compon2.proactiveChatPane) || /*#__PURE__*/_react2.default.createElement(_ProactiveChatPaneStateful.default, {
|
|
649
|
+
proactiveChatProps: livechatProps.proactiveChatPaneProps,
|
|
642
650
|
startChat: prepareStartChatRelay
|
|
643
|
-
})), !((
|
|
644
|
-
headerProps:
|
|
645
|
-
outOfOfficeHeaderProps:
|
|
651
|
+
})), !((_livechatProps$contro4 = livechatProps.controlProps) !== null && _livechatProps$contro4 !== void 0 && _livechatProps$contro4.hideHeader) && (0, _componentController.shouldShowHeader)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_livechatProps$compon3 = livechatProps.componentOverrides) === null || _livechatProps$compon3 === void 0 ? void 0 : _livechatProps$compon3.header) || /*#__PURE__*/_react2.default.createElement(_HeaderStateful.default, {
|
|
652
|
+
headerProps: livechatProps.headerProps,
|
|
653
|
+
outOfOfficeHeaderProps: livechatProps.outOfOfficeHeaderProps,
|
|
646
654
|
endChat: endChatRelay
|
|
647
|
-
})), !((
|
|
648
|
-
loadingPaneProps:
|
|
649
|
-
startChatErrorPaneProps:
|
|
650
|
-
})), !((
|
|
651
|
-
reconnectChatProps:
|
|
655
|
+
})), !((_livechatProps$contro5 = livechatProps.controlProps) !== null && _livechatProps$contro5 !== void 0 && _livechatProps$contro5.hideLoadingPane) && (0, _componentController.shouldShowLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_livechatProps$compon4 = livechatProps.componentOverrides) === null || _livechatProps$compon4 === void 0 ? void 0 : _livechatProps$compon4.loadingPane) || /*#__PURE__*/_react2.default.createElement(_LoadingPaneStateful.default, {
|
|
656
|
+
loadingPaneProps: livechatProps.loadingPaneProps,
|
|
657
|
+
startChatErrorPaneProps: livechatProps.startChatErrorPaneProps
|
|
658
|
+
})), !((_livechatProps$contro6 = livechatProps.controlProps) !== null && _livechatProps$contro6 !== void 0 && _livechatProps$contro6.hideOutOfOfficeHoursPane) && (0, _componentController.shouldShowOutOfOfficeHoursPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_livechatProps$compon5 = livechatProps.componentOverrides) === null || _livechatProps$compon5 === void 0 ? void 0 : _livechatProps$compon5.outOfOfficeHoursPane) || /*#__PURE__*/_react2.default.createElement(_OOOHPaneStateful.default, livechatProps.outOfOfficeHoursPaneProps)), !((_livechatProps$contro7 = livechatProps.controlProps) !== null && _livechatProps$contro7 !== void 0 && _livechatProps$contro7.hideReconnectChatPane) && (0, _componentController.shouldShowReconnectChatPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_livechatProps$compon6 = livechatProps.componentOverrides) === null || _livechatProps$compon6 === void 0 ? void 0 : _livechatProps$compon6.reconnectChatPane) || /*#__PURE__*/_react2.default.createElement(_ReconnectChatPaneStateful.default, {
|
|
659
|
+
reconnectChatProps: livechatProps.reconnectChatPaneProps,
|
|
652
660
|
initStartChat: initStartChatRelay
|
|
653
|
-
})), !((
|
|
654
|
-
surveyProps:
|
|
661
|
+
})), !((_livechatProps$contro8 = livechatProps.controlProps) !== null && _livechatProps$contro8 !== void 0 && _livechatProps$contro8.hidePreChatSurveyPane) && (0, _componentController.shouldShowPreChatSurveyPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_livechatProps$compon7 = livechatProps.componentOverrides) === null || _livechatProps$compon7 === void 0 ? void 0 : _livechatProps$compon7.preChatSurveyPane) || /*#__PURE__*/_react2.default.createElement(_PreChatSurveyPaneStateful.default, {
|
|
662
|
+
surveyProps: livechatProps.preChatSurveyPaneProps,
|
|
655
663
|
initStartChat: initStartChatRelay
|
|
656
|
-
})), !((
|
|
664
|
+
})), !((_livechatProps$contro9 = livechatProps.controlProps) !== null && _livechatProps$contro9 !== void 0 && _livechatProps$contro9.hideCallingContainer) && (0, _componentController.shouldShowCallingContainer)(state) && /*#__PURE__*/_react2.default.createElement(_CallingContainerStateful.default, _extends({
|
|
657
665
|
voiceVideoCallingSdk: voiceVideoCallingSDK
|
|
658
|
-
},
|
|
666
|
+
}, livechatProps.callingContainerProps)), !((_livechatProps$contro10 = livechatProps.controlProps) !== null && _livechatProps$contro10 !== void 0 && _livechatProps$contro10.hideWebChatContainer) && (0, _componentController.shouldShowWebChatContainer)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_livechatProps$compon8 = livechatProps.componentOverrides) === null || _livechatProps$compon8 === void 0 ? void 0 : _livechatProps$compon8.webChatContainer) || /*#__PURE__*/_react2.default.createElement(_WebChatContainerStateful.default, livechatProps.webChatContainerProps)), !((_livechatProps$contro11 = livechatProps.controlProps) !== null && _livechatProps$contro11 !== void 0 && _livechatProps$contro11.hideConfirmationPane) && (0, _componentController.shouldShowConfirmationPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_livechatProps$compon9 = livechatProps.componentOverrides) === null || _livechatProps$compon9 === void 0 ? void 0 : _livechatProps$compon9.confirmationPane) || /*#__PURE__*/_react2.default.createElement(_ConfirmationPaneStateful.default, _extends({}, confirmationPaneProps, {
|
|
659
667
|
setPostChatContext: setPostChatContextRelay,
|
|
660
668
|
prepareEndChat: prepareEndChatRelay
|
|
661
|
-
}))), !((
|
|
669
|
+
}))), !((_livechatProps$contro12 = livechatProps.controlProps) !== null && _livechatProps$contro12 !== void 0 && _livechatProps$contro12.hidePostChatLoadingPane) && (0, _componentController.shouldShowPostChatLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_livechatProps$compon10 = livechatProps.componentOverrides) === null || _livechatProps$compon10 === void 0 ? void 0 : _livechatProps$compon10.postChatLoadingPane) || /*#__PURE__*/_react2.default.createElement(_PostChatLoadingPaneStateful.default, livechatProps.postChatLoadingPaneProps)), (0, _componentController.shouldShowPostChatSurveyPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_livechatProps$compon11 = livechatProps.componentOverrides) === null || _livechatProps$compon11 === void 0 ? void 0 : _livechatProps$compon11.postChatSurveyPane) || /*#__PURE__*/_react2.default.createElement(_PostChatSurveyPaneStateful.default, _extends({}, livechatProps.postChatSurveyPaneProps, livechatProps.chatSDK))), (0, _createFooter.createFooter)(livechatProps, state), (0, _componentController.shouldShowEmailTranscriptPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_livechatProps$compon12 = livechatProps.componentOverrides) === null || _livechatProps$compon12 === void 0 ? void 0 : _livechatProps$compon12.emailTranscriptPane) || /*#__PURE__*/_react2.default.createElement(_EmailTranscriptPaneStateful.default, livechatProps.emailTranscriptPane)))));
|
|
662
670
|
};
|
|
663
671
|
exports.LiveChatWidgetStateful = LiveChatWidgetStateful;
|
|
664
672
|
var _default = LiveChatWidgetStateful;
|
|
@@ -121,6 +121,12 @@ const PreChatSurveyPaneStateful = props => {
|
|
|
121
121
|
const current = children[index];
|
|
122
122
|
if (current && current.className == _Constants.HtmlAttributeNames.adaptiveCardTextBlockClassName) {
|
|
123
123
|
value = current.innerHTML;
|
|
124
|
+
if (current.childElementCount > 0) {
|
|
125
|
+
const paragraph = current.children[0];
|
|
126
|
+
if (paragraph.tagName.toLowerCase() == _Constants.HtmlAttributeNames.pTagName) {
|
|
127
|
+
value = paragraph.innerHTML;
|
|
128
|
+
}
|
|
129
|
+
}
|
|
124
130
|
}
|
|
125
131
|
if (current && current.tagName.toLowerCase() == _Constants.HtmlAttributeNames.div && current.childElementCount > 0) {
|
|
126
132
|
const input = current.children[0].children;
|
|
@@ -60,9 +60,13 @@ const ProactiveChatPaneStateful = props => {
|
|
|
60
60
|
Description: "Proactive chat accepted."
|
|
61
61
|
});
|
|
62
62
|
if (state.appStates.proactiveChatStates.proactiveChatInNewWindow) {
|
|
63
|
+
var _state$appStates, _state$appStates$proa;
|
|
63
64
|
// TODO: BroadcastService: replace with the sdk broadcast service, when in place
|
|
64
65
|
const startPopoutChatEvent = {
|
|
65
|
-
eventName: _TelemetryConstants.BroadcastEvent.ProactiveChatStartPopoutChat
|
|
66
|
+
eventName: _TelemetryConstants.BroadcastEvent.ProactiveChatStartPopoutChat,
|
|
67
|
+
payload: {
|
|
68
|
+
enablePrechat: (state === null || state === void 0 ? void 0 : (_state$appStates = state.appStates) === null || _state$appStates === void 0 ? void 0 : (_state$appStates$proa = _state$appStates.proactiveChatStates) === null || _state$appStates$proa === void 0 ? void 0 : _state$appStates$proa.proactiveChatEnablePrechat) === true
|
|
69
|
+
}
|
|
66
70
|
};
|
|
67
71
|
_omnichannelChatComponents.BroadcastService.postMessage(startPopoutChatEvent);
|
|
68
72
|
dispatch({
|