@microsoft/omnichannel-chat-widget 1.8.3-main.ec1328d → 1.8.3
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 +2 -0
- package/lib/cjs/common/telemetry/TelemetryConstants.js +3 -0
- package/lib/cjs/components/citationpanestateful/CitationDim.js +29 -0
- package/lib/cjs/components/citationpanestateful/CitationPaneStateful.js +199 -0
- package/lib/cjs/components/citationpanestateful/common/defaultProps/defaultCitationPaneProps.js +70 -0
- package/lib/cjs/components/confirmationpanestateful/interfaces/IConfirmationPaneLocalizedTexts.js +1 -0
- package/lib/cjs/components/livechatwidget/LiveChatWidget.js +4 -4
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +4 -5
- package/lib/cjs/components/livechatwidget/common/endChat.js +21 -2
- package/lib/cjs/components/livechatwidget/common/getMockChatSDKIfApplicable.js +4 -3
- package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +1 -1
- package/lib/cjs/components/livechatwidget/common/overridePropsOnMockIfApplicable.js +2 -1
- package/lib/cjs/components/livechatwidget/common/startChat.js +5 -4
- package/lib/cjs/components/livechatwidget/interfaces/IMockProps.js +8 -2
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +29 -5
- package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +96 -11
- package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatAdapter.js +43 -14
- package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatSDK.js +6 -1
- package/lib/cjs/components/webchatcontainerstateful/common/defaultStyles/defaultWebChatStyles.js +1 -1
- package/lib/cjs/components/webchatcontainerstateful/common/utils/chatAdapterUtils.js +36 -2
- package/lib/cjs/components/webchatcontainerstateful/common/utils/fontUtils.js +28 -0
- package/lib/cjs/components/webchatcontainerstateful/interfaces/ICitation.js +1 -0
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAvatarTextStyles.js +1 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageStyles.js +1 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/citationsMiddleware.js +97 -30
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.js +2 -2
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +46 -45
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +2 -0
- package/lib/cjs/contexts/createReducer.js +15 -0
- package/lib/cjs/index.js +9 -1
- package/lib/esm/common/Constants.js +2 -0
- package/lib/esm/common/telemetry/TelemetryConstants.js +3 -0
- package/lib/esm/components/citationpanestateful/CitationDim.js +20 -0
- package/lib/esm/components/citationpanestateful/CitationPaneStateful.js +188 -0
- package/lib/esm/components/citationpanestateful/common/defaultProps/defaultCitationPaneProps.js +61 -0
- package/lib/esm/components/confirmationpanestateful/interfaces/IConfirmationPaneLocalizedTexts.js +1 -0
- package/lib/esm/components/livechatwidget/LiveChatWidget.js +4 -4
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +4 -5
- package/lib/esm/components/livechatwidget/common/endChat.js +22 -3
- package/lib/esm/components/livechatwidget/common/getMockChatSDKIfApplicable.js +4 -3
- package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +1 -1
- package/lib/esm/components/livechatwidget/common/overridePropsOnMockIfApplicable.js +2 -1
- package/lib/esm/components/livechatwidget/common/startChat.js +5 -4
- package/lib/esm/components/livechatwidget/interfaces/IMockProps.js +3 -3
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +29 -5
- package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +96 -12
- package/lib/esm/components/webchatcontainerstateful/common/DesignerChatAdapter.js +43 -14
- package/lib/esm/components/webchatcontainerstateful/common/DesignerChatSDK.js +6 -1
- package/lib/esm/components/webchatcontainerstateful/common/defaultStyles/defaultWebChatStyles.js +1 -1
- package/lib/esm/components/webchatcontainerstateful/common/utils/chatAdapterUtils.js +32 -0
- package/lib/esm/components/webchatcontainerstateful/common/utils/fontUtils.js +21 -0
- package/lib/esm/components/webchatcontainerstateful/interfaces/ICitation.js +1 -0
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultAvatarTextStyles.js +1 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageStyles.js +1 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/citationsMiddleware.js +98 -30
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.js +2 -2
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +46 -45
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +2 -0
- package/lib/esm/contexts/createReducer.js +15 -0
- package/lib/esm/index.js +1 -0
- package/lib/types/common/Constants.d.ts +2 -0
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +3 -0
- package/lib/types/components/citationpanestateful/CitationDim.d.ts +5 -0
- package/lib/types/components/citationpanestateful/CitationPaneStateful.d.ts +4 -0
- package/lib/types/components/citationpanestateful/common/defaultProps/defaultCitationPaneProps.d.ts +11 -0
- package/lib/types/components/citationpanestateful/interfaces/ICitationPaneStatefulProps.d.ts +19 -0
- package/lib/types/components/confirmationpanestateful/common/defaultProps/defaultConfirmationPaneLocalizedTexts.d.ts +1 -1
- package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulProps.d.ts +1 -1
- package/lib/types/components/livechatwidget/common/getMockChatSDKIfApplicable.d.ts +2 -1
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +3 -1
- package/lib/types/components/livechatwidget/interfaces/IMockProps.d.ts +5 -3
- package/lib/types/components/webchatcontainerstateful/common/DesignerChatAdapter.d.ts +4 -2
- package/lib/types/components/webchatcontainerstateful/common/DesignerChatSDK.d.ts +5 -0
- package/lib/types/components/webchatcontainerstateful/common/utils/chatAdapterUtils.d.ts +6 -1
- package/lib/types/components/webchatcontainerstateful/common/utils/fontUtils.d.ts +10 -0
- package/lib/types/components/webchatcontainerstateful/interfaces/ICitation.d.ts +12 -0
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/citationsMiddleware.d.ts +3 -4
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.d.ts +2 -2
- package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +1 -0
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +46 -45
- package/lib/types/index.d.ts +1 -0
- package/package.json +2 -2
- /package/lib/cjs/components/{confirmationpanestateful/interfaces/IConfirmationPaneLocalizedText.js → citationpanestateful/interfaces/ICitationPaneStatefulProps.js} +0 -0
- /package/lib/esm/components/{confirmationpanestateful/interfaces/IConfirmationPaneLocalizedText.js → citationpanestateful/interfaces/ICitationPaneStatefulProps.js} +0 -0
- /package/lib/types/components/confirmationpanestateful/interfaces/{IConfirmationPaneLocalizedText.d.ts → IConfirmationPaneLocalizedTexts.d.ts} +0 -0
|
@@ -196,6 +196,8 @@ _defineProperty(HtmlAttributeNames, "adaptiveCardClassName", "ac-adaptiveCard");
|
|
|
196
196
|
_defineProperty(HtmlAttributeNames, "adaptiveCardTextBlockClassName", "ac-textBlock");
|
|
197
197
|
_defineProperty(HtmlAttributeNames, "adaptiveCardToggleInputClassName", "ac-toggleInput");
|
|
198
198
|
_defineProperty(HtmlAttributeNames, "adaptiveCardActionSetClassName", "ac-actionSet");
|
|
199
|
+
_defineProperty(HtmlAttributeNames, "ocwCitationPaneClassName", "ocw-citation-pane");
|
|
200
|
+
_defineProperty(HtmlAttributeNames, "ocwCitationPaneTitle", "Citation");
|
|
199
201
|
let WebChatMiddlewareConstants = /*#__PURE__*/_createClass(function WebChatMiddlewareConstants() {
|
|
200
202
|
_classCallCheck(this, WebChatMiddlewareConstants);
|
|
201
203
|
});
|
|
@@ -154,6 +154,7 @@ exports.TelemetryEvent = TelemetryEvent;
|
|
|
154
154
|
TelemetryEvent["EmailTranscriptLoaded"] = "EmailTranscriptLoaded";
|
|
155
155
|
TelemetryEvent["OutOfOfficePaneLoaded"] = "OutOfOfficePaneLoaded";
|
|
156
156
|
TelemetryEvent["ConfirmationPaneLoaded"] = "ConfirmationPaneLoaded";
|
|
157
|
+
TelemetryEvent["CitationPaneLoaded"] = "CitationPaneLoaded";
|
|
157
158
|
TelemetryEvent["ProactiveChatPaneLoaded"] = "ProactiveChatPaneLoaded";
|
|
158
159
|
TelemetryEvent["ReconnectChatPaneLoaded"] = "ReconnectChatPaneLoaded";
|
|
159
160
|
TelemetryEvent["HeaderCloseButtonClicked"] = "HeaderCloseButtonClicked";
|
|
@@ -280,7 +281,9 @@ exports.TelemetryEvent = TelemetryEvent;
|
|
|
280
281
|
TelemetryEvent["UXLCWChatButtonLoadingStart"] = "UXLCWChatButtonLoadingStart";
|
|
281
282
|
TelemetryEvent["UXLCWChatButtonLoadingCompleted"] = "UXLCWChatButtonLoadingCompleted";
|
|
282
283
|
TelemetryEvent["UXConfirmationPaneStart"] = "UXConfirmationPaneStart";
|
|
284
|
+
TelemetryEvent["UXCitationPaneStart"] = "UXCitationPaneStart";
|
|
283
285
|
TelemetryEvent["UXConfirmationPaneCompleted"] = "UXConfirmationPaneCompleted";
|
|
286
|
+
TelemetryEvent["UXCitationPaneCompleted"] = "UXCitationPaneCompleted";
|
|
284
287
|
TelemetryEvent["UXLiveChatWidgetStart"] = "UXLiveChatWidgetStart";
|
|
285
288
|
TelemetryEvent["UXLiveChatWidgetCompleted"] = "UXLiveChatWidgetCompleted";
|
|
286
289
|
TelemetryEvent["AppInsightsInitialized"] = "AppInsightsInitialized";
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.CitationDim = void 0;
|
|
7
|
+
var _react = _interopRequireDefault(require("react"));
|
|
8
|
+
var _reactDom = _interopRequireDefault(require("react-dom"));
|
|
9
|
+
var _DimLayer = require("../dimlayer/DimLayer");
|
|
10
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
11
|
+
const CONTAINER_SELECTOR = ".webchat__stacked-layout_container";
|
|
12
|
+
const CitationDim = _ref => {
|
|
13
|
+
let {
|
|
14
|
+
brightness = "0.2"
|
|
15
|
+
} = _ref;
|
|
16
|
+
const container = document.querySelector(CONTAINER_SELECTOR);
|
|
17
|
+
if (!container) return null;
|
|
18
|
+
return /*#__PURE__*/_reactDom.default.createPortal( /*#__PURE__*/_react.default.createElement("div", {
|
|
19
|
+
style: {
|
|
20
|
+
position: "absolute",
|
|
21
|
+
inset: 0
|
|
22
|
+
}
|
|
23
|
+
}, /*#__PURE__*/_react.default.createElement(_DimLayer.DimLayer, {
|
|
24
|
+
brightness: brightness
|
|
25
|
+
})), container);
|
|
26
|
+
};
|
|
27
|
+
exports.CitationDim = CitationDim;
|
|
28
|
+
var _default = CitationDim;
|
|
29
|
+
exports.default = _default;
|
|
@@ -0,0 +1,199 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.default = exports.CitationPaneStateful = void 0;
|
|
7
|
+
var _TelemetryConstants = require("../../common/telemetry/TelemetryConstants");
|
|
8
|
+
var _react = _interopRequireWildcard(require("react"));
|
|
9
|
+
var _utils = require("../../common/utils");
|
|
10
|
+
var _CitationDim = _interopRequireDefault(require("./CitationDim"));
|
|
11
|
+
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
12
|
+
var _Constants = require("../../common/Constants");
|
|
13
|
+
var _LiveChatWidgetActionType = require("../../contexts/common/LiveChatWidgetActionType");
|
|
14
|
+
var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
15
|
+
var _defaultCitationPaneProps = require("./common/defaultProps/defaultCitationPaneProps");
|
|
16
|
+
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
17
|
+
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
18
|
+
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); }
|
|
19
|
+
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; }
|
|
20
|
+
let uiTimer;
|
|
21
|
+
const CitationPaneStateful = props => {
|
|
22
|
+
var _props$styleProps3;
|
|
23
|
+
(0, _react.useEffect)(() => {
|
|
24
|
+
uiTimer = (0, _utils.createTimer)();
|
|
25
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
26
|
+
Event: _TelemetryConstants.TelemetryEvent.UXCitationPaneStart
|
|
27
|
+
});
|
|
28
|
+
}, []);
|
|
29
|
+
const initialTabIndexMap = new Map();
|
|
30
|
+
let elements = [];
|
|
31
|
+
|
|
32
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
33
|
+
const [state, dispatch] = (0, _useChatContextStore.default)();
|
|
34
|
+
|
|
35
|
+
// Use props.id if provided, otherwise fall back to default
|
|
36
|
+
const controlId = props.id || _Constants.HtmlAttributeNames.ocwCitationPaneClassName;
|
|
37
|
+
|
|
38
|
+
// Pane style computed to match the webchat widget container bounds so the pane
|
|
39
|
+
// stays within the widget and scrolls only vertically. We also track an
|
|
40
|
+
// "isReady" flag so we don't render the pane contents until the style is
|
|
41
|
+
// computed — this prevents a transient render that can appear as a flicker.
|
|
42
|
+
const [paneStyle, setPaneStyle] = (0, _react.useState)(null);
|
|
43
|
+
const [isReady, setIsReady] = (0, _react.useState)(false);
|
|
44
|
+
|
|
45
|
+
// Move focus to the container
|
|
46
|
+
(0, _react.useEffect)(() => {
|
|
47
|
+
(0, _utils.preventFocusToMoveOutOfElement)(controlId);
|
|
48
|
+
const focusableElements = (0, _utils.findAllFocusableElement)(`#${controlId}`);
|
|
49
|
+
requestAnimationFrame(() => {
|
|
50
|
+
if (focusableElements && focusableElements.length > 0 && focusableElements[0]) {
|
|
51
|
+
focusableElements[0].focus({
|
|
52
|
+
preventScroll: true
|
|
53
|
+
});
|
|
54
|
+
}
|
|
55
|
+
});
|
|
56
|
+
elements = (0, _utils.findParentFocusableElementsWithoutChildContainer)(controlId);
|
|
57
|
+
(0, _utils.setTabIndices)(elements, initialTabIndexMap, false);
|
|
58
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
59
|
+
Event: _TelemetryConstants.TelemetryEvent.CitationPaneLoaded
|
|
60
|
+
});
|
|
61
|
+
_TelemetryHelper.TelemetryHelper.logLoadingEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
62
|
+
Event: _TelemetryConstants.TelemetryEvent.UXCitationPaneCompleted,
|
|
63
|
+
ElapsedTimeInMilliseconds: uiTimer.milliSecondsElapsed
|
|
64
|
+
});
|
|
65
|
+
}, []);
|
|
66
|
+
|
|
67
|
+
// Compute the widget bounds and set pane style accordingly (95% of widget size
|
|
68
|
+
// and centered inside the widget). If the widget container can't be found,
|
|
69
|
+
// fall back to the default pane styles from defaultCitationPaneProps.
|
|
70
|
+
(0, _react.useEffect)(() => {
|
|
71
|
+
const compute = () => {
|
|
72
|
+
var _props$styleProps2;
|
|
73
|
+
try {
|
|
74
|
+
const container = document.querySelector(".webchat__stacked-layout_container");
|
|
75
|
+
if (container) {
|
|
76
|
+
var _props$styleProps;
|
|
77
|
+
const rect = container.getBoundingClientRect();
|
|
78
|
+
const widthPx = Math.round(rect.width * 0.95);
|
|
79
|
+
const heightPx = Math.round(rect.height * 0.95);
|
|
80
|
+
const leftPx = Math.round(rect.left + (rect.width - widthPx) / 2);
|
|
81
|
+
const topPx = Math.round(rect.top + (rect.height - heightPx) / 2);
|
|
82
|
+
// Clone defaults and remove transform so explicit left/top pixel
|
|
83
|
+
// coordinates are respected and the pane stays within the
|
|
84
|
+
// widget bounds.
|
|
85
|
+
const base = Object.assign({}, _defaultCitationPaneProps.defaultCitationPaneStyles.pane);
|
|
86
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
87
|
+
if (base && base.transform) {
|
|
88
|
+
// remove centering transform when we compute exact pixel coords
|
|
89
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
90
|
+
delete base.transform;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
// Merge user styles first, then computed positioning to ensure proper positioning
|
|
94
|
+
const computedStyle = {
|
|
95
|
+
left: `${leftPx}px`,
|
|
96
|
+
top: `${topPx}px`,
|
|
97
|
+
width: `${widthPx}px`,
|
|
98
|
+
height: `${heightPx}px`
|
|
99
|
+
};
|
|
100
|
+
|
|
101
|
+
// Apply user styles first, then override with computed positioning
|
|
102
|
+
const generalProps = (_props$styleProps = props.styleProps) === null || _props$styleProps === void 0 ? void 0 : _props$styleProps.generalStyleProps;
|
|
103
|
+
const userStyles = generalProps && typeof generalProps === "object" ? Object.assign({}, generalProps) : {};
|
|
104
|
+
// Remove positioning properties from user styles that would interfere
|
|
105
|
+
delete userStyles.position;
|
|
106
|
+
delete userStyles.left;
|
|
107
|
+
delete userStyles.top;
|
|
108
|
+
delete userStyles.width;
|
|
109
|
+
delete userStyles.height;
|
|
110
|
+
setPaneStyle(Object.assign({}, base, userStyles, computedStyle));
|
|
111
|
+
// Make the pane visible after the next paint to avoid layout
|
|
112
|
+
// flashes on initial mount.
|
|
113
|
+
requestAnimationFrame(() => setIsReady(true));
|
|
114
|
+
return;
|
|
115
|
+
}
|
|
116
|
+
} catch (e) {
|
|
117
|
+
// ignore
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
// fallback - merge defaults with user-provided styles but preserve positioning
|
|
121
|
+
const generalProps = (_props$styleProps2 = props.styleProps) === null || _props$styleProps2 === void 0 ? void 0 : _props$styleProps2.generalStyleProps;
|
|
122
|
+
const userStyles = generalProps && typeof generalProps === "object" ? Object.assign({}, generalProps) : {};
|
|
123
|
+
// Remove positioning properties from user styles for fallback
|
|
124
|
+
delete userStyles.position;
|
|
125
|
+
delete userStyles.left;
|
|
126
|
+
delete userStyles.top;
|
|
127
|
+
delete userStyles.width;
|
|
128
|
+
delete userStyles.height;
|
|
129
|
+
const fallbackStyle = Object.assign({}, _defaultCitationPaneProps.defaultCitationPaneStyles.pane, userStyles);
|
|
130
|
+
setPaneStyle(fallbackStyle);
|
|
131
|
+
requestAnimationFrame(() => setIsReady(true));
|
|
132
|
+
};
|
|
133
|
+
compute();
|
|
134
|
+
window.addEventListener("resize", compute);
|
|
135
|
+
return () => window.removeEventListener("resize", compute);
|
|
136
|
+
}, [(_props$styleProps3 = props.styleProps) === null || _props$styleProps3 === void 0 ? void 0 : _props$styleProps3.generalStyleProps]);
|
|
137
|
+
const handleClose = () => {
|
|
138
|
+
if (props.onClose) props.onClose();
|
|
139
|
+
dispatch({
|
|
140
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_PREVIOUS_FOCUSED_ELEMENT_ID,
|
|
141
|
+
payload: null
|
|
142
|
+
});
|
|
143
|
+
(0, _utils.setTabIndices)(elements, initialTabIndexMap, true);
|
|
144
|
+
};
|
|
145
|
+
|
|
146
|
+
// Merge a safe style object for the container and cast to CSSProperties to satisfy TS
|
|
147
|
+
const baseStyle = Object.assign({
|
|
148
|
+
position: "relative"
|
|
149
|
+
}, paneStyle ?? {
|
|
150
|
+
position: "fixed"
|
|
151
|
+
});
|
|
152
|
+
|
|
153
|
+
// If paneStyle hasn't been computed yet, render the DimLayer so clicks
|
|
154
|
+
// still close overlays but hide the pane itself to avoid flashes.
|
|
155
|
+
const hiddenStyle = {
|
|
156
|
+
visibility: isReady ? "visible" : "hidden",
|
|
157
|
+
pointerEvents: isReady ? "auto" : "none"
|
|
158
|
+
};
|
|
159
|
+
|
|
160
|
+
// Default wrapper styles - these control the positioning container
|
|
161
|
+
const defaultWrapperStyles = {
|
|
162
|
+
display: "flex",
|
|
163
|
+
flexDirection: "column",
|
|
164
|
+
zIndex: 10001
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
// Wrapper styles for the positioning container
|
|
168
|
+
const wrapperStyles = Object.assign({}, baseStyle, hiddenStyle, defaultWrapperStyles);
|
|
169
|
+
|
|
170
|
+
// Merge the computed positioning styles with user's generalStyleProps for the CitationPane
|
|
171
|
+
const mergedStyleProps = props.styleProps ? {
|
|
172
|
+
...props.styleProps,
|
|
173
|
+
generalStyleProps: Object.assign({}, props.styleProps.generalStyleProps)
|
|
174
|
+
} : undefined;
|
|
175
|
+
const controlProps = {
|
|
176
|
+
id: controlId,
|
|
177
|
+
dir: state.domainStates.globalDir,
|
|
178
|
+
titleText: props.title,
|
|
179
|
+
contentHtml: props.contentHtml,
|
|
180
|
+
brightnessValueOnDim: "0.2",
|
|
181
|
+
// Default brightness
|
|
182
|
+
onClose: handleClose,
|
|
183
|
+
...(props === null || props === void 0 ? void 0 : props.controlProps) // User props override defaults
|
|
184
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
185
|
+
};
|
|
186
|
+
|
|
187
|
+
return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement(_CitationDim.default, {
|
|
188
|
+
brightness: controlProps.brightnessValueOnDim
|
|
189
|
+
}), /*#__PURE__*/_react.default.createElement("div", {
|
|
190
|
+
style: wrapperStyles
|
|
191
|
+
}, /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.CitationPane, {
|
|
192
|
+
componentOverrides: props === null || props === void 0 ? void 0 : props.componentOverrides,
|
|
193
|
+
controlProps: controlProps,
|
|
194
|
+
styleProps: mergedStyleProps
|
|
195
|
+
})));
|
|
196
|
+
};
|
|
197
|
+
exports.CitationPaneStateful = CitationPaneStateful;
|
|
198
|
+
var _default = CitationPaneStateful;
|
|
199
|
+
exports.default = _default;
|
package/lib/cjs/components/citationpanestateful/common/defaultProps/defaultCitationPaneProps.js
ADDED
|
@@ -0,0 +1,70 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.defaultCitationPaneStyles = exports.defaultCitationContentCSS = exports.default = void 0;
|
|
7
|
+
const defaultCitationPaneStyles = {
|
|
8
|
+
pane: {
|
|
9
|
+
position: "fixed",
|
|
10
|
+
left: "50%",
|
|
11
|
+
top: "18%",
|
|
12
|
+
transform: "translateX(-50%)",
|
|
13
|
+
background: "#fff",
|
|
14
|
+
width: "85%",
|
|
15
|
+
height: "85%",
|
|
16
|
+
overflowY: "auto",
|
|
17
|
+
overflowX: "hidden",
|
|
18
|
+
padding: 16,
|
|
19
|
+
borderRadius: 6,
|
|
20
|
+
zIndex: 10001,
|
|
21
|
+
boxSizing: "border-box"
|
|
22
|
+
}
|
|
23
|
+
};
|
|
24
|
+
exports.defaultCitationPaneStyles = defaultCitationPaneStyles;
|
|
25
|
+
const defaultCitationContentCSS = controlId => `
|
|
26
|
+
#${controlId} .citation-content {
|
|
27
|
+
flex: 1;
|
|
28
|
+
min-height: 0; /* allow flex child to scroll */
|
|
29
|
+
overflow-y: auto;
|
|
30
|
+
overflow-x: auto;
|
|
31
|
+
margin-bottom: 12px;
|
|
32
|
+
white-space: normal; /* wrap normal text */
|
|
33
|
+
word-break: break-word;
|
|
34
|
+
-webkit-overflow-scrolling: touch;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
#${controlId} .citation-content pre,
|
|
38
|
+
#${controlId} .citation-content code {
|
|
39
|
+
white-space: pre; /* preserve formatting */
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
#${controlId} .citation-content table {
|
|
43
|
+
width: 100%;
|
|
44
|
+
border-collapse: collapse;
|
|
45
|
+
margin-bottom: 12px;
|
|
46
|
+
table-layout: auto;
|
|
47
|
+
overflow-x: auto;
|
|
48
|
+
display: block;
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
#${controlId} .citation-content table th,
|
|
52
|
+
#${controlId} .citation-content table td {
|
|
53
|
+
padding: 8px 12px;
|
|
54
|
+
border: 1px solid rgba(0,0,0,0.08);
|
|
55
|
+
text-align: left;
|
|
56
|
+
vertical-align: top;
|
|
57
|
+
word-break: break-word;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
#${controlId} .citation-content img {
|
|
61
|
+
max-width: 100%;
|
|
62
|
+
height: auto;
|
|
63
|
+
}
|
|
64
|
+
`;
|
|
65
|
+
exports.defaultCitationContentCSS = defaultCitationContentCSS;
|
|
66
|
+
var _default = {
|
|
67
|
+
defaultCitationPaneStyles,
|
|
68
|
+
defaultCitationContentCSS
|
|
69
|
+
};
|
|
70
|
+
exports.default = _default;
|
package/lib/cjs/components/confirmationpanestateful/interfaces/IConfirmationPaneLocalizedTexts.js
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";
|
|
@@ -22,13 +22,13 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
|
|
|
22
22
|
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); }
|
|
23
23
|
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; }
|
|
24
24
|
const LiveChatWidget = props => {
|
|
25
|
-
var _props$
|
|
25
|
+
var _props$featureConfigP, _props$chatConfig, _props$chatConfig$Liv, _props$chatConfig2, _props$chatConfig2$Li;
|
|
26
26
|
const reducer = (0, _createReducer.createReducer)();
|
|
27
27
|
const [state, dispatch] = (0, _react.useReducer)(reducer, (0, _LiveChatWidgetContextInitialState.getLiveChatWidgetContextInitialState)(props));
|
|
28
28
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
29
29
|
const [adapter, setAdapter] = (0, _react.useState)(undefined);
|
|
30
30
|
const [facadeChatSDK, setFacadeChatSDK] = (0, _react.useState)(undefined);
|
|
31
|
-
const chatSDK = (0, _getMockChatSDKIfApplicable.getMockChatSDKIfApplicable)(props.chatSDK, props === null || props === void 0 ? void 0 :
|
|
31
|
+
const chatSDK = (0, _getMockChatSDKIfApplicable.getMockChatSDKIfApplicable)(props.chatSDK, props === null || props === void 0 ? void 0 : props.mock);
|
|
32
32
|
const disableReauthentication = ((_props$featureConfigP = props.featureConfigProps) === null || _props$featureConfigP === void 0 ? void 0 : _props$featureConfigP.disableReauthentication) === true;
|
|
33
33
|
(0, _overridePropsOnMockIfApplicable.default)(props);
|
|
34
34
|
if (!props.chatConfig) {
|
|
@@ -38,14 +38,14 @@ const LiveChatWidget = props => {
|
|
|
38
38
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
39
39
|
const isAuthenticatedChat = !!((_props$chatConfig = props.chatConfig) !== null && _props$chatConfig !== void 0 && (_props$chatConfig$Liv = _props$chatConfig.LiveChatConfigAuthSettings) !== null && _props$chatConfig$Liv !== void 0 && _props$chatConfig$Liv.msdyn_javascriptclientfunction) || (0, _liveChatConfigUtils.isPersistentChatEnabled)((_props$chatConfig2 = props.chatConfig) === null || _props$chatConfig2 === void 0 ? void 0 : (_props$chatConfig2$Li = _props$chatConfig2.LiveWSAndLiveChatEngJoin) === null || _props$chatConfig2$Li === void 0 ? void 0 : _props$chatConfig2$Li.msdyn_conversationmode);
|
|
40
40
|
if (!facadeChatSDK) {
|
|
41
|
-
var _props$
|
|
41
|
+
var _props$mock;
|
|
42
42
|
setFacadeChatSDK(new _FacadeChatSDK.FacadeChatSDK({
|
|
43
43
|
"chatSDK": chatSDK,
|
|
44
44
|
"chatConfig": props.chatConfig,
|
|
45
45
|
"isAuthenticated": isAuthenticatedChat,
|
|
46
46
|
"getAuthToken": props === null || props === void 0 ? void 0 : props.getAuthToken,
|
|
47
47
|
//when type is not undefined, it means the SDK is mocked
|
|
48
|
-
"isSDKMocked": !(0, _utils.isNullOrUndefined)(props === null || props === void 0 ? void 0 : (_props$
|
|
48
|
+
"isSDKMocked": !(0, _utils.isNullOrUndefined)(props === null || props === void 0 ? void 0 : (_props$mock = props.mock) === null || _props$mock === void 0 ? void 0 : _props$mock.type)
|
|
49
49
|
}, disableReauthentication));
|
|
50
50
|
}
|
|
51
51
|
(0, _react.useEffect)(() => {
|
package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js
CHANGED
|
@@ -17,7 +17,6 @@ function _toPrimitive(input, hint) { if (typeof input !== "object" || input ===
|
|
|
17
17
|
const supportedSignInCardContentTypes = ["application/vnd.microsoft.card.signin", "application/vnd.microsoft.card.oauth"];
|
|
18
18
|
const botOauthUrlRegex = /[\S]+.botframework.com\/api\/oauth\/signin\?signin=([\S]+)/;
|
|
19
19
|
const delay = t => new Promise(resolve => setTimeout(resolve, t));
|
|
20
|
-
let response;
|
|
21
20
|
const extractSignInId = signInUrl => {
|
|
22
21
|
const result = botOauthUrlRegex.exec(signInUrl);
|
|
23
22
|
if (result && result[1]) {
|
|
@@ -53,20 +52,20 @@ const fetchBotAuthConfig = async (retries, interval) => {
|
|
|
53
52
|
eventName: _TelemetryConstants.BroadcastEvent.BotAuthConfigRequest
|
|
54
53
|
};
|
|
55
54
|
_omnichannelChatComponents.BroadcastService.postMessage(botAuthConfigRequestEvent);
|
|
55
|
+
let response;
|
|
56
56
|
const listener = _omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.BotAuthConfigResponse).subscribe(data => {
|
|
57
57
|
var _data$payload, _data$payload2;
|
|
58
58
|
response = ((_data$payload = data.payload) === null || _data$payload === void 0 ? void 0 : _data$payload.response) !== undefined ? (_data$payload2 = data.payload) === null || _data$payload2 === void 0 ? void 0 : _data$payload2.response : response;
|
|
59
59
|
listener.unsubscribe();
|
|
60
60
|
});
|
|
61
|
-
if (response !== undefined) {
|
|
62
|
-
//return response;
|
|
63
|
-
return response;
|
|
64
|
-
}
|
|
65
61
|
if (retries === 1) {
|
|
66
62
|
// Base Case
|
|
67
63
|
throw new Error();
|
|
68
64
|
}
|
|
69
65
|
await delay(interval);
|
|
66
|
+
if (response !== undefined) {
|
|
67
|
+
return response;
|
|
68
|
+
}
|
|
70
69
|
return await fetchBotAuthConfig(--retries, interval);
|
|
71
70
|
};
|
|
72
71
|
let BotAuthActivitySubscriber = /*#__PURE__*/function () {
|
|
@@ -44,7 +44,7 @@ const prepareEndChat = async (props, facadeChatSDK, state, dispatch, setAdapter,
|
|
|
44
44
|
}
|
|
45
45
|
|
|
46
46
|
// Use Case: If ended by Agent, stay chat in InActive state
|
|
47
|
-
|
|
47
|
+
const isConversationalSurveyEnabled = state.appStates.isConversationalSurveyEnabled;
|
|
48
48
|
if (isConversationalSurveyEnabled && ((state === null || state === void 0 ? void 0 : (_state$appStates2 = state.appStates) === null || _state$appStates2 === void 0 ? void 0 : _state$appStates2.conversationEndedBy) === _Constants.ConversationEndEntity.Agent || (state === null || state === void 0 ? void 0 : (_state$appStates3 = state.appStates) === null || _state$appStates3 === void 0 ? void 0 : _state$appStates3.conversationEndedBy) === _Constants.ConversationEndEntity.Bot)) {
|
|
49
49
|
dispatch({
|
|
50
50
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
@@ -153,8 +153,23 @@ const endChat = async (props, facadeChatSDK, state, dispatch, setAdapter, setWeb
|
|
|
153
153
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.GET_IN_MEMORY_STATE,
|
|
154
154
|
payload: null
|
|
155
155
|
});
|
|
156
|
+
let isSessionEnded = inMemoryState === null || inMemoryState === void 0 ? void 0 : (_inMemoryState$appSta = inMemoryState.appStates) === null || _inMemoryState$appSta === void 0 ? void 0 : _inMemoryState$appSta.chatDisconnectEventReceived;
|
|
157
|
+
if (!isSessionEnded) {
|
|
158
|
+
// double check by fetching the latest conversation details
|
|
159
|
+
const conversationDetails = await (0, _utils.getConversationDetailsCall)(facadeChatSDK);
|
|
160
|
+
if ((conversationDetails === null || conversationDetails === void 0 ? void 0 : conversationDetails.state) === _Constants.LiveWorkItemState.WrapUp || (conversationDetails === null || conversationDetails === void 0 ? void 0 : conversationDetails.state) === _Constants.LiveWorkItemState.Closed) {
|
|
161
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
162
|
+
Event: _TelemetryConstants.TelemetryEvent.ChatDisconnectThreadEventReceived,
|
|
163
|
+
Description: "Checking conversation details upon endChat. Chat disconnected.",
|
|
164
|
+
CustomProperties: {
|
|
165
|
+
conversationDetails
|
|
166
|
+
}
|
|
167
|
+
});
|
|
168
|
+
isSessionEnded = true;
|
|
169
|
+
}
|
|
170
|
+
}
|
|
156
171
|
const endChatOptionalParameters = {
|
|
157
|
-
isSessionEnded
|
|
172
|
+
isSessionEnded
|
|
158
173
|
};
|
|
159
174
|
try {
|
|
160
175
|
_TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
@@ -305,6 +320,10 @@ const closeChatStateCleanUp = dispatch => {
|
|
|
305
320
|
proactiveChatInNewWindow: false
|
|
306
321
|
}
|
|
307
322
|
});
|
|
323
|
+
dispatch({
|
|
324
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CITATIONS,
|
|
325
|
+
payload: {}
|
|
326
|
+
});
|
|
308
327
|
|
|
309
328
|
// Clear live chat context only if chat widget is fully closed to support transcript calls after sessionclose is called
|
|
310
329
|
dispatch({
|
|
@@ -8,14 +8,15 @@ var _DemoChatSDK = require("../../webchatcontainerstateful/common/DemoChatSDK");
|
|
|
8
8
|
var _DesignerChatSDK = require("../../webchatcontainerstateful/common/DesignerChatSDK");
|
|
9
9
|
var _mockchatsdk = require("../../webchatcontainerstateful/common/mockchatsdk");
|
|
10
10
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
11
|
-
const getMockChatSDKIfApplicable = (chatSDK,
|
|
12
|
-
if (type) {
|
|
13
|
-
switch (type.toLowerCase()) {
|
|
11
|
+
const getMockChatSDKIfApplicable = (chatSDK, mockProps) => {
|
|
12
|
+
if (mockProps !== null && mockProps !== void 0 && mockProps.type) {
|
|
13
|
+
switch (mockProps.type.toLowerCase()) {
|
|
14
14
|
case "demo":
|
|
15
15
|
chatSDK = new _DemoChatSDK.DemoChatSDK();
|
|
16
16
|
break;
|
|
17
17
|
case "designer":
|
|
18
18
|
chatSDK = new _DesignerChatSDK.DesignerChatSDK();
|
|
19
|
+
chatSDK.mockMessages = mockProps === null || mockProps === void 0 ? void 0 : mockProps.mockMessages;
|
|
19
20
|
break;
|
|
20
21
|
default:
|
|
21
22
|
chatSDK = new _mockchatsdk.MockChatSDK();
|
|
@@ -123,7 +123,7 @@ const initWebChatComposer = (props, state, dispatch, facadeChatSDK, endChat) =>
|
|
|
123
123
|
};
|
|
124
124
|
webChatStore = (0, _botframeworkWebchat.createStore)({},
|
|
125
125
|
//initial state
|
|
126
|
-
_preProcessingMiddleware.default, _attachmentProcessingMiddleware.default, (0, _attachmentUploadValidatorMiddleware.default)((_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : _state$domainStates$l.allowedFileExtensions, (_state$domainStates$l2 = state.domainStates.liveChatConfig) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.maxUploadFileSize, localizedTexts), (0, _customEventMiddleware.default)(_omnichannelChatComponents.BroadcastService), (0, _queueOverflowHandlerMiddleware.createQueueOverflowMiddleware)(state, dispatch), (0, _channelDataMiddleware.default)(addConversationalSurveyTagsCallback), (0, _conversationEndMiddleware.default)(conversationEndCallback, startConversationalSurveyCallback, endConversationalSurveyCallback), (0, _dataMaskingMiddleware.default)((_state$domainStates$l3 = state.domainStates.liveChatConfig) === null || _state$domainStates$l3 === void 0 ? void 0 : _state$domainStates$l3.DataMaskingInfo), _messageTimestampMiddleware.createMessageTimeStampMiddleware, _messageSequenceIdOverrideMiddleware.createMessageSequenceIdOverrideMiddleware, _citationsMiddleware.createCitationsMiddleware, _gifUploadMiddleware.default, _htmlPlayerMiddleware.default, (0, _htmlTextMiddleware.default)(honorsTargetInHTMLLinks), (0, _maxMessageSizeValidator.default)(localizedTexts), _sanitizationMiddleware.default, (0, _callActionMiddleware.default)(), (0, _localizedStringsBotInitialsMiddleware.localizedStringsBotInitialsMiddleware)(),
|
|
126
|
+
_preProcessingMiddleware.default, _attachmentProcessingMiddleware.default, (0, _attachmentUploadValidatorMiddleware.default)((_state$domainStates$l = state.domainStates.liveChatConfig) === null || _state$domainStates$l === void 0 ? void 0 : _state$domainStates$l.allowedFileExtensions, (_state$domainStates$l2 = state.domainStates.liveChatConfig) === null || _state$domainStates$l2 === void 0 ? void 0 : _state$domainStates$l2.maxUploadFileSize, localizedTexts), (0, _customEventMiddleware.default)(_omnichannelChatComponents.BroadcastService), (0, _queueOverflowHandlerMiddleware.createQueueOverflowMiddleware)(state, dispatch), (0, _channelDataMiddleware.default)(addConversationalSurveyTagsCallback), (0, _conversationEndMiddleware.default)(conversationEndCallback, startConversationalSurveyCallback, endConversationalSurveyCallback), (0, _dataMaskingMiddleware.default)((_state$domainStates$l3 = state.domainStates.liveChatConfig) === null || _state$domainStates$l3 === void 0 ? void 0 : _state$domainStates$l3.DataMaskingInfo), _messageTimestampMiddleware.createMessageTimeStampMiddleware, _messageSequenceIdOverrideMiddleware.createMessageSequenceIdOverrideMiddleware, (0, _citationsMiddleware.createCitationsMiddleware)(state, dispatch), _gifUploadMiddleware.default, _htmlPlayerMiddleware.default, (0, _htmlTextMiddleware.default)(honorsTargetInHTMLLinks), (0, _maxMessageSizeValidator.default)(localizedTexts), _sanitizationMiddleware.default, (0, _callActionMiddleware.default)(), (0, _localizedStringsBotInitialsMiddleware.localizedStringsBotInitialsMiddleware)(),
|
|
127
127
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
128
128
|
...(((_props$webChatContain7 = props.webChatContainerProps) === null || _props$webChatContain7 === void 0 ? void 0 : _props$webChatContain7.storeMiddlewares) ?? []));
|
|
129
129
|
_WebChatStoreLoader.WebChatStoreLoader.store = webChatStore;
|
|
@@ -7,6 +7,7 @@ exports.default = void 0;
|
|
|
7
7
|
const overridePropsOnMockIfApplicable = props => {
|
|
8
8
|
var _props$mock, _props$mock2;
|
|
9
9
|
if (props !== null && props !== void 0 && (_props$mock = props.mock) !== null && _props$mock !== void 0 && _props$mock.type && (props === null || props === void 0 ? void 0 : (_props$mock2 = props.mock) === null || _props$mock2 === void 0 ? void 0 : _props$mock2.type.toLowerCase()) === "designer") {
|
|
10
|
+
var _props$mock3, _props$mock3$mockMess;
|
|
10
11
|
if (!props.webChatContainerProps) {
|
|
11
12
|
props.webChatContainerProps = {};
|
|
12
13
|
}
|
|
@@ -22,7 +23,7 @@ const overridePropsOnMockIfApplicable = props => {
|
|
|
22
23
|
props.webChatContainerProps = {
|
|
23
24
|
...props.webChatContainerProps,
|
|
24
25
|
webChatProps: {
|
|
25
|
-
disabled:
|
|
26
|
+
disabled: !(props !== null && props !== void 0 && (_props$mock3 = props.mock) !== null && _props$mock3 !== void 0 && (_props$mock3$mockMess = _props$mock3.mockMessages) !== null && _props$mock3$mockMess !== void 0 && _props$mock3$mockMess.length),
|
|
26
27
|
...props.webChatContainerProps.webChatProps,
|
|
27
28
|
overrideLocalizedStrings: {
|
|
28
29
|
TEXT_INPUT_PLACEHOLDER: "Send a message . . .",
|
|
@@ -105,7 +105,7 @@ const setPreChatAndInitiateChat = async (facadeChatSDK, dispatch, setAdapter, is
|
|
|
105
105
|
|
|
106
106
|
// If minimized, maximize the chat, if the state is missing, consider it as minimized
|
|
107
107
|
if ((state === null || state === void 0 ? void 0 : state.appStates.isMinimized) === undefined || (state === null || state === void 0 ? void 0 : (_state$appStates = state.appStates) === null || _state$appStates === void 0 ? void 0 : _state$appStates.isMinimized) === true) {
|
|
108
|
-
var _state$domainStates3, _state$domainStates3$, _state$domainStates4, _state$domainStates4
|
|
108
|
+
var _state$domainStates3, _state$domainStates3$, _state$domainStates4, _state$domainStates4$, _TelemetryManager$Int;
|
|
109
109
|
dispatch({
|
|
110
110
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
|
|
111
111
|
payload: false
|
|
@@ -116,7 +116,8 @@ const setPreChatAndInitiateChat = async (facadeChatSDK, dispatch, setAdapter, is
|
|
|
116
116
|
eventName: _TelemetryConstants.BroadcastEvent.MaximizeChat,
|
|
117
117
|
payload: {
|
|
118
118
|
height: state === null || state === void 0 ? void 0 : (_state$domainStates3 = state.domainStates) === null || _state$domainStates3 === void 0 ? void 0 : (_state$domainStates3$ = _state$domainStates3.widgetSize) === null || _state$domainStates3$ === void 0 ? void 0 : _state$domainStates3$.height,
|
|
119
|
-
width: state === null || state === void 0 ? void 0 : (_state$domainStates4 = state.domainStates) === null || _state$domainStates4 === void 0 ? void 0 : (_state$domainStates4$ = _state$domainStates4.widgetSize) === null || _state$domainStates4$ === void 0 ? void 0 : _state$domainStates4$.width
|
|
119
|
+
width: state === null || state === void 0 ? void 0 : (_state$domainStates4 = state.domainStates) === null || _state$domainStates4 === void 0 ? void 0 : (_state$domainStates4$ = _state$domainStates4.widgetSize) === null || _state$domainStates4$ === void 0 ? void 0 : _state$domainStates4$.width,
|
|
120
|
+
runtimeId: _TelemetryManager.TelemetryManager === null || _TelemetryManager.TelemetryManager === void 0 ? void 0 : (_TelemetryManager$Int = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int === void 0 ? void 0 : _TelemetryManager$Int.lcwRuntimeId
|
|
120
121
|
}
|
|
121
122
|
});
|
|
122
123
|
}
|
|
@@ -137,7 +138,7 @@ const setPreChatAndInitiateChat = async (facadeChatSDK, dispatch, setAdapter, is
|
|
|
137
138
|
* This is because a new change to control OOH as closed event when a widget is coming from chat.
|
|
138
139
|
*/
|
|
139
140
|
if ((state === null || state === void 0 ? void 0 : state.appStates.isMinimized) === undefined || (state === null || state === void 0 ? void 0 : (_state$appStates2 = state.appStates) === null || _state$appStates2 === void 0 ? void 0 : _state$appStates2.isMinimized) === true) {
|
|
140
|
-
var _state$domainStates5, _state$domainStates5$, _state$domainStates6, _state$domainStates6$, _TelemetryManager$
|
|
141
|
+
var _state$domainStates5, _state$domainStates5$, _state$domainStates6, _state$domainStates6$, _TelemetryManager$Int2;
|
|
141
142
|
dispatch({
|
|
142
143
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
|
|
143
144
|
payload: false
|
|
@@ -148,7 +149,7 @@ const setPreChatAndInitiateChat = async (facadeChatSDK, dispatch, setAdapter, is
|
|
|
148
149
|
payload: {
|
|
149
150
|
height: state === null || state === void 0 ? void 0 : (_state$domainStates5 = state.domainStates) === null || _state$domainStates5 === void 0 ? void 0 : (_state$domainStates5$ = _state$domainStates5.widgetSize) === null || _state$domainStates5$ === void 0 ? void 0 : _state$domainStates5$.height,
|
|
150
151
|
width: state === null || state === void 0 ? void 0 : (_state$domainStates6 = state.domainStates) === null || _state$domainStates6 === void 0 ? void 0 : (_state$domainStates6$ = _state$domainStates6.widgetSize) === null || _state$domainStates6$ === void 0 ? void 0 : _state$domainStates6$.width,
|
|
151
|
-
runtimeId: _TelemetryManager.TelemetryManager === null || _TelemetryManager.TelemetryManager === void 0 ? void 0 : (_TelemetryManager$
|
|
152
|
+
runtimeId: _TelemetryManager.TelemetryManager === null || _TelemetryManager.TelemetryManager === void 0 ? void 0 : (_TelemetryManager$Int2 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int2 === void 0 ? void 0 : _TelemetryManager$Int2.lcwRuntimeId
|
|
152
153
|
}
|
|
153
154
|
});
|
|
154
155
|
}
|
|
@@ -1,7 +1,13 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
|
|
3
|
-
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.LiveChatWidgetMockType = void 0;
|
|
7
|
+
let LiveChatWidgetMockType;
|
|
8
|
+
exports.LiveChatWidgetMockType = LiveChatWidgetMockType;
|
|
4
9
|
(function (LiveChatWidgetMockType) {
|
|
5
10
|
LiveChatWidgetMockType["Test"] = "Test";
|
|
6
11
|
LiveChatWidgetMockType["Demo"] = "Demo";
|
|
7
|
-
|
|
12
|
+
LiveChatWidgetMockType["Designer"] = "Designer";
|
|
13
|
+
})(LiveChatWidgetMockType || (exports.LiveChatWidgetMockType = LiveChatWidgetMockType = {}));
|
|
@@ -488,7 +488,8 @@ const LiveChatWidgetStateful = props => {
|
|
|
488
488
|
eventName: _TelemetryConstants.BroadcastEvent.MaximizeChat,
|
|
489
489
|
payload: {
|
|
490
490
|
height: inMemoryState === null || inMemoryState === void 0 ? void 0 : (_inMemoryState$domain = inMemoryState.domainStates) === null || _inMemoryState$domain === void 0 ? void 0 : (_inMemoryState$domain2 = _inMemoryState$domain.widgetSize) === null || _inMemoryState$domain2 === void 0 ? void 0 : _inMemoryState$domain2.height,
|
|
491
|
-
width: inMemoryState === null || inMemoryState === void 0 ? void 0 : (_inMemoryState$domain3 = inMemoryState.domainStates) === null || _inMemoryState$domain3 === void 0 ? void 0 : (_inMemoryState$domain4 = _inMemoryState$domain3.widgetSize) === null || _inMemoryState$domain4 === void 0 ? void 0 : _inMemoryState$domain4.width
|
|
491
|
+
width: inMemoryState === null || inMemoryState === void 0 ? void 0 : (_inMemoryState$domain3 = inMemoryState.domainStates) === null || _inMemoryState$domain3 === void 0 ? void 0 : (_inMemoryState$domain4 = _inMemoryState$domain3.widgetSize) === null || _inMemoryState$domain4 === void 0 ? void 0 : _inMemoryState$domain4.width,
|
|
492
|
+
lcwRuntimeId: _TelemetryManager.TelemetryManager.InternalTelemetryData.lcwRuntimeId
|
|
492
493
|
}
|
|
493
494
|
});
|
|
494
495
|
return;
|
|
@@ -876,23 +877,46 @@ const LiveChatWidgetStateful = props => {
|
|
|
876
877
|
|
|
877
878
|
// WebChat's Composer can only be rendered if a directLine object is defined
|
|
878
879
|
return directLine && /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, /*#__PURE__*/_react2.default.createElement("style", null, `
|
|
879
|
-
::-webkit-scrollbar {
|
|
880
|
+
#oc-lcw .webchat__basic-transcript__scrollable::-webkit-scrollbar {
|
|
880
881
|
width: ${scrollbarProps.width};
|
|
881
882
|
}
|
|
882
883
|
|
|
883
|
-
::-webkit-scrollbar-track {
|
|
884
|
+
#oc-lcw .webchat__basic-transcript__scrollable::-webkit-scrollbar-track {
|
|
884
885
|
background: ${scrollbarProps.trackBackgroundColor};
|
|
885
886
|
}
|
|
886
887
|
|
|
887
|
-
::-webkit-scrollbar-thumb {
|
|
888
|
+
#oc-lcw .webchat__basic-transcript__scrollable::-webkit-scrollbar-thumb {
|
|
888
889
|
background: ${scrollbarProps.thumbBackgroundColor};
|
|
889
890
|
border-radius: ${scrollbarProps.thumbBorderRadius};
|
|
890
891
|
}
|
|
891
892
|
|
|
892
|
-
::-webkit-scrollbar-thumb:hover {
|
|
893
|
+
#oc-lcw .webchat__basic-transcript__scrollable::-webkit-scrollbar-thumb:hover {
|
|
893
894
|
background: ${scrollbarProps.thumbHoverColor};
|
|
894
895
|
}
|
|
895
896
|
|
|
897
|
+
/* High Contrast mode support - optimized for all variants */
|
|
898
|
+
@media (prefers-contrast: high), (-ms-high-contrast: active), (forced-colors: active) {
|
|
899
|
+
#oc-lcw .webchat__basic-transcript__scrollable::-webkit-scrollbar-track {
|
|
900
|
+
background: Canvas !important;
|
|
901
|
+
border: 1px solid CanvasText !important;
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
#oc-lcw .webchat__basic-transcript__scrollable::-webkit-scrollbar-thumb {
|
|
905
|
+
background: CanvasText !important;
|
|
906
|
+
border: 1px solid Canvas !important;
|
|
907
|
+
min-height: 20px !important;
|
|
908
|
+
}
|
|
909
|
+
|
|
910
|
+
#oc-lcw .webchat__basic-transcript__scrollable::-webkit-scrollbar-thumb:hover {
|
|
911
|
+
background: Highlight !important;
|
|
912
|
+
border: 1px solid CanvasText !important;
|
|
913
|
+
}
|
|
914
|
+
|
|
915
|
+
#oc-lcw .webchat__basic-transcript__scrollable::-webkit-scrollbar-corner {
|
|
916
|
+
background: Canvas !important;
|
|
917
|
+
}
|
|
918
|
+
}
|
|
919
|
+
|
|
896
920
|
.webchat__basic-transcript__activity-markdown-body > :last-child {
|
|
897
921
|
margin-bottom: 0px;
|
|
898
922
|
}
|