@microsoft/omnichannel-chat-widget 0.1.0-main.bf74329 → 0.1.0-main.c1bbb91
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/assets/Icons.js +4 -2
- package/lib/cjs/common/Constants.js +24 -4
- package/lib/cjs/common/KeyCodes.js +3 -1
- package/lib/cjs/common/contextDataStore/DataStoreManager.js +3 -1
- package/lib/cjs/common/storage/default/defaultCacheManager.js +5 -3
- package/lib/cjs/common/storage/default/defaultClientDataStoreProvider.js +15 -6
- package/lib/cjs/common/telemetry/TelemetryConstants.js +12 -5
- package/lib/cjs/common/telemetry/TelemetryHelper.js +7 -2
- package/lib/cjs/common/telemetry/TelemetryManager.js +3 -1
- package/lib/cjs/components/callingcontainerstateful/CallingContainerStateful.js +2 -2
- package/lib/cjs/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
- package/lib/cjs/components/confirmationpanestateful/ConfirmationPaneStateful.js +1 -1
- package/lib/cjs/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +1 -1
- package/lib/cjs/components/headerstateful/HeaderStateful.js +6 -4
- package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +3 -1
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +3 -1
- package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +3 -1
- package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +3 -1
- package/lib/cjs/components/livechatwidget/common/Deferred.js +3 -1
- package/lib/cjs/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +14 -0
- package/lib/cjs/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +67 -16
- package/lib/cjs/components/livechatwidget/common/endChat.js +42 -2
- package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +13 -19
- package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +75 -114
- package/lib/cjs/components/livechatwidget/common/startChat.js +162 -45
- package/lib/cjs/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
- package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +152 -116
- package/lib/cjs/components/loadingpanestateful/LoadingPaneStateful.js +22 -2
- package/lib/cjs/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +57 -0
- package/lib/cjs/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +2 -2
- package/lib/cjs/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
- package/lib/cjs/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +4 -0
- package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +3 -1
- package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +3 -1
- package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -0
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +1 -3
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +1 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +1 -1
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +5 -6
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +2 -14
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +2 -11
- package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +12 -1
- package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +29 -27
- package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +6 -3
- package/lib/cjs/contexts/createReducer.js +19 -2
- package/lib/cjs/controller/componentController.js +1 -1
- package/lib/cjs/hooks/useDebounce.js +28 -0
- package/lib/cjs/hooks/useWindowDimensions.js +30 -0
- package/lib/cjs/plugins/newMessageEventHandler.js +4 -0
- package/lib/esm/assets/Icons.js +2 -1
- package/lib/esm/common/Constants.js +21 -3
- package/lib/esm/common/KeyCodes.js +3 -1
- package/lib/esm/common/contextDataStore/DataStoreManager.js +3 -1
- package/lib/esm/common/storage/default/defaultCacheManager.js +5 -3
- package/lib/esm/common/storage/default/defaultClientDataStoreProvider.js +15 -6
- package/lib/esm/common/telemetry/TelemetryConstants.js +12 -5
- package/lib/esm/common/telemetry/TelemetryHelper.js +7 -2
- package/lib/esm/common/telemetry/TelemetryManager.js +3 -1
- package/lib/esm/components/callingcontainerstateful/CallingContainerStateful.js +2 -2
- package/lib/esm/components/chatbuttonstateful/common/styleProps/defaultOutOfOfficeChatButtonStyleProps.js +3 -0
- package/lib/esm/components/confirmationpanestateful/ConfirmationPaneStateful.js +1 -1
- package/lib/esm/components/emailtranscriptpanestateful/EmailTranscriptPaneStateful.js +1 -1
- package/lib/esm/components/headerstateful/HeaderStateful.js +6 -4
- package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +3 -1
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +3 -1
- package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +3 -1
- package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +3 -1
- package/lib/esm/components/livechatwidget/common/Deferred.js +3 -1
- package/lib/esm/components/livechatwidget/common/defaultProps/defaultScrollBarProps.js +7 -0
- package/lib/esm/components/livechatwidget/common/defaultProps/dummyDefaultProps.js +67 -16
- package/lib/esm/components/livechatwidget/common/endChat.js +42 -2
- package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +13 -19
- package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +72 -109
- package/lib/esm/components/livechatwidget/common/startChat.js +161 -45
- package/lib/esm/components/livechatwidget/interfaces/IScrollBarProps.js +1 -0
- package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +153 -117
- package/lib/esm/components/loadingpanestateful/LoadingPaneStateful.js +22 -2
- package/lib/esm/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.js +50 -0
- package/lib/esm/components/prechatsurveypanestateful/PreChatSurveyPaneStateful.js +2 -2
- package/lib/esm/components/prechatsurveypanestateful/common/defaultStyles/defaultGeneralPreChatSurveyPaneStyleProps.js +1 -1
- package/lib/esm/components/reconnectchatpanestateful/ReconnectChatPaneStateful.js +4 -0
- package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +3 -1
- package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +3 -1
- package/lib/esm/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js +2 -0
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +3 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +3 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +1 -3
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware.js +2 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultSystemMessageBoxStyles.js +1 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultUserMessageBoxStyles.js +1 -1
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +5 -6
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +2 -14
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +2 -11
- package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware.js +12 -1
- package/lib/esm/contexts/common/LiveChatWidgetActionType.js +29 -27
- package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +6 -3
- package/lib/esm/contexts/createReducer.js +19 -2
- package/lib/esm/controller/componentController.js +1 -1
- package/lib/esm/hooks/useDebounce.js +22 -0
- package/lib/esm/hooks/useWindowDimensions.js +23 -0
- package/lib/esm/plugins/newMessageEventHandler.js +4 -0
- package/lib/types/assets/Icons.d.ts +1 -0
- package/lib/types/common/Constants.d.ts +14 -0
- package/lib/types/common/storage/default/defaultCacheManager.d.ts +1 -1
- package/lib/types/common/storage/default/defaultClientDataStoreProvider.d.ts +1 -1
- package/lib/types/common/telemetry/TelemetryConstants.d.ts +11 -4
- package/lib/types/common/telemetry/definitions/Contracts.d.ts +4 -4
- package/lib/types/common/telemetry/definitions/Payload.d.ts +1 -0
- package/lib/types/common/telemetry/interfaces/ITelemetryConfig.d.ts +4 -0
- package/lib/types/components/livechatwidget/common/defaultProps/defaultScrollBarProps.d.ts +2 -0
- package/lib/types/components/livechatwidget/common/reconnectChatHelper.d.ts +5 -7
- package/lib/types/components/livechatwidget/common/startChat.d.ts +5 -4
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetControlProps.d.ts +3 -1
- package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +2 -0
- package/lib/types/components/livechatwidget/interfaces/IScrollBarProps.d.ts +22 -0
- package/lib/types/components/loadingpanestateful/common/errorUIStyleProps/errorUILoadingPaneStyleProps.d.ts +2 -0
- package/lib/types/components/reconnectchatpanestateful/interfaces/IReconnectChatPaneStatefulProps.d.ts +0 -1
- package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.d.ts +1 -1
- package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +2 -1
- package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +29 -27
- package/lib/types/hooks/useDebounce.d.ts +3 -0
- package/lib/types/hooks/useWindowDimensions.d.ts +4 -0
- package/package.json +3 -3
|
@@ -8,16 +8,18 @@ var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants"
|
|
|
8
8
|
var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
|
|
9
9
|
var _react = require("@fluentui/react");
|
|
10
10
|
var _react2 = _interopRequireWildcard(require("react"));
|
|
11
|
-
var _utils = require("../../../common/utils");
|
|
12
|
-
var _reconnectChatHelper = require("../common/reconnectChatHelper");
|
|
13
11
|
var _startChat = require("../common/startChat");
|
|
12
|
+
var _utils = require("../../../common/utils");
|
|
13
|
+
var _endChat = require("../common/endChat");
|
|
14
14
|
var _componentController = require("../../../controller/componentController");
|
|
15
|
+
var _ActivityStreamHandler = require("../common/ActivityStreamHandler");
|
|
15
16
|
var _CallingContainerStateful = _interopRequireDefault(require("../../callingcontainerstateful/CallingContainerStateful"));
|
|
16
17
|
var _ChatButtonStateful = _interopRequireDefault(require("../../chatbuttonstateful/ChatButtonStateful"));
|
|
17
18
|
var _botframeworkWebchat = require("botframework-webchat");
|
|
18
19
|
var _ConfirmationPaneStateful = _interopRequireDefault(require("../../confirmationpanestateful/ConfirmationPaneStateful"));
|
|
19
20
|
var _ConversationState = require("../../../contexts/common/ConversationState");
|
|
20
21
|
var _DataStoreManager = require("../../../common/contextDataStore/DataStoreManager");
|
|
22
|
+
var _Constants = require("../../../common/Constants");
|
|
21
23
|
var _EmailTranscriptPaneStateful = _interopRequireDefault(require("../../emailtranscriptpanestateful/EmailTranscriptPaneStateful"));
|
|
22
24
|
var _HeaderStateful = _interopRequireDefault(require("../../headerstateful/HeaderStateful"));
|
|
23
25
|
var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
|
|
@@ -33,22 +35,21 @@ var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
|
|
|
33
35
|
var _WebChatContainerStateful = _interopRequireDefault(require("../../webchatcontainerstateful/WebChatContainerStateful"));
|
|
34
36
|
var _createFooter = require("../common/createFooter");
|
|
35
37
|
var _createInternetConnectionChangeHandler = require("../common/createInternetConnectionChangeHandler");
|
|
38
|
+
var _defaultClientDataStoreProvider = require("../../../common/storage/default/defaultClientDataStoreProvider");
|
|
39
|
+
var _defaultScrollBarProps = require("../common/defaultProps/defaultScrollBarProps");
|
|
36
40
|
var _defaultWebChatContainerStatefulProps = require("../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps");
|
|
37
41
|
var _disposeTelemetryLoggers = require("../common/disposeTelemetryLoggers");
|
|
38
|
-
var _endChat = require("../common/endChat");
|
|
39
42
|
var _getGeneralStylesForButton = require("../common/getGeneralStylesForButton");
|
|
40
43
|
var _initCallingSdk = require("../common/initCallingSdk");
|
|
41
44
|
var _initConfirmationPropsComposer = require("../common/initConfirmationPropsComposer");
|
|
42
45
|
var _initWebChatComposer = require("../common/initWebChatComposer");
|
|
46
|
+
var _defaultCacheManager = require("../../../common/storage/default/defaultCacheManager");
|
|
43
47
|
var _registerTelemetryLoggers = require("../common/registerTelemetryLoggers");
|
|
44
48
|
var _setPostChatContextAndLoadSurvey = require("../common/setPostChatContextAndLoadSurvey");
|
|
45
49
|
var _startProactiveChat = require("../common/startProactiveChat");
|
|
46
50
|
var _useChatAdapterStore = _interopRequireDefault(require("../../../hooks/useChatAdapterStore"));
|
|
47
51
|
var _useChatContextStore = _interopRequireDefault(require("../../../hooks/useChatContextStore"));
|
|
48
52
|
var _useChatSDKStore = _interopRequireDefault(require("../../../hooks/useChatSDKStore"));
|
|
49
|
-
var _ActivityStreamHandler = require("../common/ActivityStreamHandler");
|
|
50
|
-
var _defaultCacheManager = require("../../../common/storage/default/defaultCacheManager");
|
|
51
|
-
var _defaultClientDataStoreProvider = require("../../../common/storage/default/defaultClientDataStoreProvider");
|
|
52
53
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
53
54
|
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); }
|
|
54
55
|
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; }
|
|
@@ -75,38 +76,79 @@ const LiveChatWidgetStateful = props => {
|
|
|
75
76
|
const generalStyles = {
|
|
76
77
|
root: Object.assign({}, (0, _getGeneralStylesForButton.getGeneralStylesForButton)(state), (_props$styleProps = props.styleProps) === null || _props$styleProps === void 0 ? void 0 : _props$styleProps.generalStyles)
|
|
77
78
|
};
|
|
79
|
+
|
|
80
|
+
//Scrollbar styles
|
|
81
|
+
const scrollbarProps = Object.assign({}, _defaultScrollBarProps.defaultScrollBarProps, props === null || props === void 0 ? void 0 : props.scrollBarProps);
|
|
78
82
|
const broadcastServiceChannelName = (0, _utils.getBroadcastChannelName)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC === void 0 ? void 0 : _chatSDK$omnichannelC.widgetId, ((_props$controlProps = props.controlProps) === null || _props$controlProps === void 0 ? void 0 : _props$controlProps.widgetInstanceId) ?? "");
|
|
79
83
|
(0, _omnichannelChatComponents.BroadcastServiceInitialize)(broadcastServiceChannelName);
|
|
80
84
|
_TelemetryManager.TelemetryTimers.LcwLoadToChatButtonTimer = (0, _utils.createTimer)();
|
|
81
85
|
const widgetElementId = ((_props$controlProps2 = props.controlProps) === null || _props$controlProps2 === void 0 ? void 0 : _props$controlProps2.id) || "oc-lcw";
|
|
82
86
|
const currentMessageCountRef = (0, _react2.useRef)(0);
|
|
83
87
|
let widgetStateEventName = "";
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
88
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
89
|
+
let optionalParams;
|
|
90
|
+
let activeCachedChatExist = false;
|
|
91
|
+
const setOptionalParams = () => {
|
|
92
|
+
var _state$appStates, _state$domainStates;
|
|
93
|
+
if (!(0, _utils.isUndefinedOrEmpty)((_state$appStates = state.appStates) === null || _state$appStates === void 0 ? void 0 : _state$appStates.reconnectId)) {
|
|
94
|
+
activeCachedChatExist = true;
|
|
95
|
+
optionalParams = {
|
|
96
|
+
reconnectId: state.appStates.reconnectId
|
|
97
|
+
};
|
|
98
|
+
} else if (!(0, _utils.isUndefinedOrEmpty)((_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : _state$domainStates.liveChatContext)) {
|
|
99
|
+
var _state$domainStates2;
|
|
100
|
+
activeCachedChatExist = true;
|
|
101
|
+
optionalParams = {
|
|
102
|
+
liveChatContext: (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.liveChatContext
|
|
103
|
+
};
|
|
104
|
+
} else {
|
|
105
|
+
activeCachedChatExist = false;
|
|
106
|
+
optionalParams = {};
|
|
107
|
+
}
|
|
108
|
+
};
|
|
93
109
|
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
110
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
111
|
+
const startChat = async (props, localState) => {
|
|
112
|
+
let isChatValid = false;
|
|
113
|
+
|
|
114
|
+
//Start a chat from cache/reconnectid
|
|
115
|
+
if (activeCachedChatExist === true) {
|
|
116
|
+
var _state$domainStates3, _state$domainStates3$;
|
|
117
|
+
dispatch({
|
|
118
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
119
|
+
payload: _ConversationState.ConversationState.Loading
|
|
120
|
+
});
|
|
121
|
+
if (localState) {
|
|
122
|
+
localState.appStates.conversationState = _ConversationState.ConversationState.Loading;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
//Check if conversation state is not in wrapup or closed state
|
|
126
|
+
isChatValid = await (0, _startChat.checkIfConversationStillValid)(chatSDK, props, (_state$domainStates3 = state.domainStates) === null || _state$domainStates3 === void 0 ? void 0 : (_state$domainStates3$ = _state$domainStates3.liveChatContext) === null || _state$domainStates3$ === void 0 ? void 0 : _state$domainStates3$.requestId, dispatch);
|
|
127
|
+
if (isChatValid === true) {
|
|
128
|
+
await (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, props, optionalParams);
|
|
129
|
+
return;
|
|
130
|
+
}
|
|
131
|
+
}
|
|
132
|
+
if (isChatValid === false) {
|
|
133
|
+
if (localState) {
|
|
134
|
+
await (0, _startChat.setPreChatAndInitiateChat)(chatSDK, dispatch, setAdapter, undefined, undefined, localState, props);
|
|
135
|
+
return;
|
|
136
|
+
} else {
|
|
137
|
+
dispatch({
|
|
138
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
139
|
+
payload: _ConversationState.ConversationState.Closed
|
|
140
|
+
});
|
|
141
|
+
}
|
|
97
142
|
}
|
|
98
|
-
//Message for clearing window[popouTab]
|
|
99
|
-
_omnichannelChatComponents.BroadcastService.postMessage({
|
|
100
|
-
eventName: _TelemetryConstants.BroadcastEvent.ClosePopoutWindow
|
|
101
|
-
});
|
|
102
143
|
};
|
|
103
144
|
(0, _react2.useEffect)(() => {
|
|
104
|
-
var _props$
|
|
145
|
+
var _props$controlProps5, _props$controlProps6, _props$controlProps7, _props$chatConfig, _props$chatConfig$Liv, _props$controlProps9, _props$chatConfig2, _props$chatConfig2$Ch;
|
|
105
146
|
// Add default localStorage support for widget
|
|
106
147
|
if (props.contextDataStore === undefined) {
|
|
107
|
-
var _chatSDK$omnichannelC2, _chatSDK$omnichannelC3, _props$
|
|
108
|
-
|
|
109
|
-
_DataStoreManager.DataStoreManager.clientDataStore = (0, _defaultClientDataStoreProvider.defaultClientDataStoreProvider)();
|
|
148
|
+
var _props$controlProps3, _chatSDK$omnichannelC2, _chatSDK$omnichannelC3, _props$controlProps4;
|
|
149
|
+
const cacheTtlInMins = (props === null || props === void 0 ? void 0 : (_props$controlProps3 = props.controlProps) === null || _props$controlProps3 === void 0 ? void 0 : _props$controlProps3.cacheTtlInMins) ?? _Constants.Constants.CacheTtlInMinutes;
|
|
150
|
+
_DataStoreManager.DataStoreManager.clientDataStore = (0, _defaultClientDataStoreProvider.defaultClientDataStoreProvider)(cacheTtlInMins);
|
|
151
|
+
(0, _defaultCacheManager.registerBroadcastServiceForLocalStorage)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC2 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC2 === void 0 ? void 0 : _chatSDK$omnichannelC2.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC3 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC3 === void 0 ? void 0 : _chatSDK$omnichannelC3.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps4 = props.controlProps) === null || _props$controlProps4 === void 0 ? void 0 : _props$controlProps4.widgetInstanceId) ?? "", cacheTtlInMins);
|
|
110
152
|
} else {
|
|
111
153
|
_DataStoreManager.DataStoreManager.clientDataStore = props.contextDataStore;
|
|
112
154
|
}
|
|
@@ -117,117 +159,55 @@ const LiveChatWidgetStateful = props => {
|
|
|
117
159
|
payload: widgetElementId
|
|
118
160
|
});
|
|
119
161
|
dispatch({
|
|
120
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.
|
|
121
|
-
payload: ((_props$
|
|
162
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_START_CHAT_BUTTON_DISPLAY,
|
|
163
|
+
payload: ((_props$controlProps5 = props.controlProps) === null || _props$controlProps5 === void 0 ? void 0 : _props$controlProps5.hideStartChatButton) || false
|
|
122
164
|
});
|
|
123
165
|
dispatch({
|
|
124
166
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_E2VV_ENABLED,
|
|
125
167
|
payload: false
|
|
126
168
|
});
|
|
127
|
-
if ((_props$
|
|
128
|
-
var _props$
|
|
169
|
+
if ((_props$controlProps6 = props.controlProps) !== null && _props$controlProps6 !== void 0 && _props$controlProps6.widgetInstanceId && !(0, _utils.isNullOrEmptyString)((_props$controlProps7 = props.controlProps) === null || _props$controlProps7 === void 0 ? void 0 : _props$controlProps7.widgetInstanceId)) {
|
|
170
|
+
var _props$controlProps8;
|
|
129
171
|
dispatch({
|
|
130
172
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_WIDGET_INSTANCE_ID,
|
|
131
|
-
payload: (_props$
|
|
173
|
+
payload: (_props$controlProps8 = props.controlProps) === null || _props$controlProps8 === void 0 ? void 0 : _props$controlProps8.widgetInstanceId
|
|
132
174
|
});
|
|
133
175
|
}
|
|
134
|
-
(
|
|
135
|
-
sdkCreated
|
|
136
|
-
|
|
137
|
-
|
|
176
|
+
if (((_props$chatConfig = props.chatConfig) === null || _props$chatConfig === void 0 ? void 0 : (_props$chatConfig$Liv = _props$chatConfig.LiveWSAndLiveChatEngJoin) === null || _props$chatConfig$Liv === void 0 ? void 0 : _props$chatConfig$Liv.msdyn_callingoptions) !== _Constants.E2VVOptions.NoCalling) {
|
|
177
|
+
(0, _initCallingSdk.initCallingSdk)(chatSDK, setVoiceVideoCallingSDK).then(sdkCreated => {
|
|
178
|
+
sdkCreated && dispatch({
|
|
179
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_E2VV_ENABLED,
|
|
180
|
+
payload: true
|
|
181
|
+
});
|
|
138
182
|
});
|
|
139
|
-
}
|
|
183
|
+
}
|
|
140
184
|
|
|
141
185
|
// Initialize global dir
|
|
142
|
-
const globalDir = ((_props$
|
|
186
|
+
const globalDir = ((_props$controlProps9 = props.controlProps) === null || _props$controlProps9 === void 0 ? void 0 : _props$controlProps9.dir) ?? (0, _utils.getLocaleDirection)((_props$chatConfig2 = props.chatConfig) === null || _props$chatConfig2 === void 0 ? void 0 : (_props$chatConfig2$Ch = _props$chatConfig2.ChatWidgetLanguage) === null || _props$chatConfig2$Ch === void 0 ? void 0 : _props$chatConfig2$Ch.msdyn_localeid);
|
|
143
187
|
dispatch({
|
|
144
188
|
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_GLOBAL_DIR,
|
|
145
189
|
payload: globalDir
|
|
146
190
|
});
|
|
147
|
-
|
|
148
|
-
var _props$reconnectChatP2, _props$reconnectChatP3;
|
|
149
|
-
(0, _reconnectChatHelper.startUnauthenticatedReconnectChat)(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, (_props$reconnectChatP2 = props.reconnectChatPaneProps) === null || _props$reconnectChatP2 === void 0 ? void 0 : _props$reconnectChatP2.isReconnectEnabled, (_props$reconnectChatP3 = props.reconnectChatPaneProps) === null || _props$reconnectChatP3 === void 0 ? void 0 : _props$reconnectChatP3.reconnectId, _startChat.initStartChat);
|
|
150
|
-
return;
|
|
151
|
-
}
|
|
191
|
+
setOptionalParams();
|
|
152
192
|
|
|
153
|
-
//
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
const isAuthenticationSettingsEnabled = (_props$chatConfig2 = props.chatConfig) !== null && _props$chatConfig2 !== void 0 && (_props$chatConfig2$Li = _props$chatConfig2.LiveChatConfigAuthSettings) !== null && _props$chatConfig2$Li !== void 0 && _props$chatConfig2$Li.msdyn_javascriptclientfunction ? true : false;
|
|
157
|
-
if (!state.appStates.skipChatButtonRendering && state.appStates.conversationState === _ConversationState.ConversationState.Active && isAuthenticationSettingsEnabled === true && (_props$reconnectChatP4 = props.reconnectChatPaneProps) !== null && _props$reconnectChatP4 !== void 0 && _props$reconnectChatP4.isReconnectEnabled) {
|
|
158
|
-
(0, _reconnectChatHelper.getReconnectIdForAuthenticatedChat)(props, chatSDK).then(authReconnectId => {
|
|
159
|
-
if (authReconnectId && !state.appStates.reconnectId) {
|
|
160
|
-
dispatch({
|
|
161
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
|
|
162
|
-
payload: authReconnectId
|
|
163
|
-
});
|
|
164
|
-
dispatch({
|
|
165
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
166
|
-
payload: _ConversationState.ConversationState.ReconnectChat
|
|
167
|
-
});
|
|
168
|
-
}
|
|
169
|
-
});
|
|
170
|
-
return;
|
|
171
|
-
}
|
|
172
|
-
if (!state.appStates.skipChatButtonRendering && !(0, _utils.isUndefinedOrEmpty)((_state$domainStates = state.domainStates) === null || _state$domainStates === void 0 ? void 0 : _state$domainStates.liveChatContext) && state.appStates.conversationState === _ConversationState.ConversationState.Active) {
|
|
173
|
-
var _state$domainStates2;
|
|
174
|
-
const optionalParams = {
|
|
175
|
-
liveChatContext: (_state$domainStates2 = state.domainStates) === null || _state$domainStates2 === void 0 ? void 0 : _state$domainStates2.liveChatContext
|
|
176
|
-
};
|
|
177
|
-
(0, _startChat.initStartChat)(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, optionalParams);
|
|
178
|
-
return;
|
|
193
|
+
// Unauth chat
|
|
194
|
+
if (state.appStates.hideStartChatButton === false) {
|
|
195
|
+
startChat(props);
|
|
179
196
|
}
|
|
180
|
-
|
|
181
|
-
// All other case should show start chat button, skipChatButtonRendering will take care of it own
|
|
182
|
-
dispatch({
|
|
183
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
184
|
-
payload: _ConversationState.ConversationState.Closed
|
|
185
|
-
});
|
|
186
197
|
}, []);
|
|
187
198
|
|
|
188
199
|
// useEffect for when skip chat button rendering
|
|
189
200
|
(0, _react2.useEffect)(() => {
|
|
190
|
-
if (state.appStates.
|
|
191
|
-
var _props$reconnectChatP5;
|
|
201
|
+
if (state.appStates.hideStartChatButton === true) {
|
|
192
202
|
_omnichannelChatComponents.BroadcastService.postMessage({
|
|
193
203
|
eventName: _TelemetryConstants.BroadcastEvent.ChatInitiated
|
|
194
204
|
});
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
(0, _reconnectChatHelper.handleUnauthenticatedReconnectChat)(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, (_props$reconnectChatP6 = props.reconnectChatPaneProps) === null || _props$reconnectChatP6 === void 0 ? void 0 : _props$reconnectChatP6.isReconnectEnabled, (_props$reconnectChatP7 = props.reconnectChatPaneProps) === null || _props$reconnectChatP7 === void 0 ? void 0 : _props$reconnectChatP7.reconnectId, _startChat.initStartChat, (_props$reconnectChatP8 = props.reconnectChatPaneProps) === null || _props$reconnectChatP8 === void 0 ? void 0 : _props$reconnectChatP8.redirectInSameWindow);
|
|
198
|
-
} else {
|
|
199
|
-
(0, _reconnectChatHelper.getReconnectIdForAuthenticatedChat)(props, chatSDK).then(authReconnectId => {
|
|
200
|
-
if (authReconnectId && !state.appStates.reconnectId) {
|
|
201
|
-
dispatch({
|
|
202
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
|
|
203
|
-
payload: authReconnectId
|
|
204
|
-
});
|
|
205
|
-
dispatch({
|
|
206
|
-
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
|
|
207
|
-
payload: _ConversationState.ConversationState.ReconnectChat
|
|
208
|
-
});
|
|
209
|
-
} else {
|
|
210
|
-
var _state$domainStates3;
|
|
211
|
-
const chatStartedSkippingChatButtonRendering = {
|
|
212
|
-
eventName: _TelemetryConstants.BroadcastEvent.StartChatSkippingChatButtonRendering
|
|
213
|
-
};
|
|
214
|
-
_omnichannelChatComponents.BroadcastService.postMessage(chatStartedSkippingChatButtonRendering);
|
|
215
|
-
if (!(0, _utils.isUndefinedOrEmpty)((_state$domainStates3 = state.domainStates) === null || _state$domainStates3 === void 0 ? void 0 : _state$domainStates3.liveChatContext) && state.appStates.conversationState === _ConversationState.ConversationState.Active) {
|
|
216
|
-
var _state$domainStates4;
|
|
217
|
-
const optionalParams = {
|
|
218
|
-
liveChatContext: (_state$domainStates4 = state.domainStates) === null || _state$domainStates4 === void 0 ? void 0 : _state$domainStates4.liveChatContext
|
|
219
|
-
};
|
|
220
|
-
(0, _startChat.initStartChat)(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter, optionalParams);
|
|
221
|
-
} else {
|
|
222
|
-
(0, _startChat.setPreChatAndInitiateChat)(chatSDK, props.chatConfig, props.getAuthToken, dispatch, setAdapter);
|
|
223
|
-
}
|
|
224
|
-
}
|
|
225
|
-
});
|
|
226
|
-
}
|
|
205
|
+
//Pass the state to avoid getting stale state
|
|
206
|
+
startChat(props, state);
|
|
227
207
|
}
|
|
228
|
-
}, [state.appStates.
|
|
208
|
+
}, [state.appStates.hideStartChatButton]);
|
|
229
209
|
|
|
230
|
-
// useEffect for
|
|
210
|
+
// useEffect for custom context
|
|
231
211
|
(0, _react2.useEffect)(() => {
|
|
232
212
|
var _chatSDK$omnichannelC8, _chatSDK$omnichannelC9, _props$controlProps12;
|
|
233
213
|
// Add the custom context on receiving the SetCustomContext event
|
|
@@ -304,7 +284,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
304
284
|
|
|
305
285
|
// End chat
|
|
306
286
|
_omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.InitiateEndChat).subscribe(async () => {
|
|
307
|
-
if (state.appStates.
|
|
287
|
+
if (state.appStates.hideStartChatButton === false) {
|
|
308
288
|
var _chatSDK$omnichannelC6, _chatSDK$omnichannelC7, _props$controlProps11;
|
|
309
289
|
// This is to ensure to get latest state from cache in multitab
|
|
310
290
|
const persistedState = (0, _utils.getStateFromCache)(chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC6 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC6 === void 0 ? void 0 : _chatSDK$omnichannelC6.orgId, chatSDK === null || chatSDK === void 0 ? void 0 : (_chatSDK$omnichannelC7 = chatSDK.omnichannelConfig) === null || _chatSDK$omnichannelC7 === void 0 ? void 0 : _chatSDK$omnichannelC7.widgetId, (props === null || props === void 0 ? void 0 : (_props$controlProps11 = props.controlProps) === null || _props$controlProps11 === void 0 ? void 0 : _props$controlProps11.widgetInstanceId) ?? "");
|
|
@@ -345,6 +325,26 @@ const LiveChatWidgetStateful = props => {
|
|
|
345
325
|
payload: msg === null || msg === void 0 ? void 0 : msg.payload
|
|
346
326
|
});
|
|
347
327
|
});
|
|
328
|
+
|
|
329
|
+
// Reset state variables
|
|
330
|
+
_omnichannelChatComponents.BroadcastService.getMessageByEventName(_TelemetryConstants.BroadcastEvent.RaiseErrorEvent).subscribe(() => {
|
|
331
|
+
dispatch({
|
|
332
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONFIG,
|
|
333
|
+
payload: undefined
|
|
334
|
+
});
|
|
335
|
+
dispatch({
|
|
336
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CUSTOM_CONTEXT,
|
|
337
|
+
payload: undefined
|
|
338
|
+
});
|
|
339
|
+
dispatch({
|
|
340
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_TOKEN,
|
|
341
|
+
payload: undefined
|
|
342
|
+
});
|
|
343
|
+
dispatch({
|
|
344
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_LIVE_CHAT_CONTEXT,
|
|
345
|
+
payload: undefined
|
|
346
|
+
});
|
|
347
|
+
});
|
|
348
348
|
return () => {
|
|
349
349
|
(0, _disposeTelemetryLoggers.disposeTelemetryLoggers)();
|
|
350
350
|
};
|
|
@@ -417,7 +417,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
417
417
|
// Ghost chat scenarios
|
|
418
418
|
/* COMMENTING THIS CODE FOR PARITY WITH OLD LCW
|
|
419
419
|
if (state.appStates.conversationState === ConversationState.Active &&
|
|
420
|
-
props.controlProps?.
|
|
420
|
+
props.controlProps?.hideStartChatButton === true) {
|
|
421
421
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
422
422
|
|
|
423
423
|
window.onbeforeunload = function () {
|
|
@@ -439,6 +439,25 @@ const LiveChatWidgetStateful = props => {
|
|
|
439
439
|
};
|
|
440
440
|
_omnichannelChatComponents.BroadcastService.postMessage(chatWidgetStateChangeEvent);
|
|
441
441
|
}, [state]);
|
|
442
|
+
const initiateEndChatOnBrowserUnload = () => {
|
|
443
|
+
var _DataStoreManager$cli;
|
|
444
|
+
_TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
|
|
445
|
+
Event: _TelemetryConstants.TelemetryEvent.BrowserUnloadEventStarted,
|
|
446
|
+
Description: "Browser unload event received."
|
|
447
|
+
});
|
|
448
|
+
(0, _endChat.endChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, false, false, false);
|
|
449
|
+
// Clean local storage
|
|
450
|
+
(_DataStoreManager$cli = _DataStoreManager.DataStoreManager.clientDataStore) === null || _DataStoreManager$cli === void 0 ? void 0 : _DataStoreManager$cli.removeData(widgetStateEventName, "localStorage");
|
|
451
|
+
|
|
452
|
+
//Dispose calling instance
|
|
453
|
+
if (voiceVideoCallingSDK) {
|
|
454
|
+
voiceVideoCallingSDK === null || voiceVideoCallingSDK === void 0 ? void 0 : voiceVideoCallingSDK.close();
|
|
455
|
+
}
|
|
456
|
+
//Message for clearing window[popouTab]
|
|
457
|
+
_omnichannelChatComponents.BroadcastService.postMessage({
|
|
458
|
+
eventName: _TelemetryConstants.BroadcastEvent.ClosePopoutWindow
|
|
459
|
+
});
|
|
460
|
+
};
|
|
442
461
|
const webChatProps = (0, _initWebChatComposer.initWebChatComposer)(props, chatSDK, state, dispatch, setWebChatStyles);
|
|
443
462
|
const setPostChatContextRelay = () => (0, _setPostChatContextAndLoadSurvey.setPostChatContextAndLoadSurvey)(chatSDK, dispatch);
|
|
444
463
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
@@ -447,16 +466,33 @@ const LiveChatWidgetStateful = props => {
|
|
|
447
466
|
const prepareEndChatRelay = (adapter, state) => (0, _endChat.prepareEndChat)(props, chatSDK, setAdapter, setWebChatStyles, dispatch, adapter, state);
|
|
448
467
|
const prepareStartChatRelay = () => (0, _startChat.prepareStartChat)(props, chatSDK, state, dispatch, setAdapter);
|
|
449
468
|
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
450
|
-
const initStartChatRelay = (optionalParams, persistedState) => (0, _startChat.initStartChat)(chatSDK,
|
|
469
|
+
const initStartChatRelay = (optionalParams, persistedState) => (0, _startChat.initStartChat)(chatSDK, dispatch, setAdapter, props, optionalParams, persistedState);
|
|
451
470
|
const confirmationPaneProps = (0, _initConfirmationPropsComposer.initConfirmationPropsComposer)(props);
|
|
452
|
-
return /*#__PURE__*/_react2.default.createElement(
|
|
471
|
+
return /*#__PURE__*/_react2.default.createElement(_react2.default.Fragment, null, /*#__PURE__*/_react2.default.createElement("style", null, `
|
|
472
|
+
::-webkit-scrollbar {
|
|
473
|
+
width: ${scrollbarProps.width};
|
|
474
|
+
}
|
|
475
|
+
|
|
476
|
+
::-webkit-scrollbar-track {
|
|
477
|
+
background: ${scrollbarProps.trackBackgroundColor};
|
|
478
|
+
}
|
|
479
|
+
|
|
480
|
+
::-webkit-scrollbar-thumb {
|
|
481
|
+
background: ${scrollbarProps.thumbBackgroundColor};
|
|
482
|
+
border-radius: ${scrollbarProps.thumbBorderRadius};
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
::-webkit-scrollbar-thumb:hover {
|
|
486
|
+
background: ${scrollbarProps.thumbHoverColor};
|
|
487
|
+
}
|
|
488
|
+
`), /*#__PURE__*/_react2.default.createElement(Composer, _extends({}, webChatProps, {
|
|
453
489
|
styleOptions: webChatStyles,
|
|
454
490
|
directLine: ((_props$webChatContain4 = props.webChatContainerProps) === null || _props$webChatContain4 === void 0 ? void 0 : _props$webChatContain4.directLine) ?? adapter ?? _defaultWebChatContainerStatefulProps.defaultWebChatContainerStatefulProps.directLine
|
|
455
491
|
}), /*#__PURE__*/_react2.default.createElement(_react.Stack, {
|
|
456
492
|
id: widgetElementId,
|
|
457
493
|
styles: generalStyles,
|
|
458
494
|
className: (_props$styleProps2 = props.styleProps) === null || _props$styleProps2 === void 0 ? void 0 : _props$styleProps2.className
|
|
459
|
-
}, !((_props$controlProps14 = props.controlProps) !== null && _props$controlProps14 !== void 0 && _props$controlProps14.hideChatButton) && !((_props$controlProps15 = props.controlProps) !== null && _props$controlProps15 !== void 0 && _props$controlProps15.
|
|
495
|
+
}, !((_props$controlProps14 = props.controlProps) !== null && _props$controlProps14 !== void 0 && _props$controlProps14.hideChatButton) && !((_props$controlProps15 = props.controlProps) !== null && _props$controlProps15 !== void 0 && _props$controlProps15.hideStartChatButton) && (0, _componentController.shouldShowChatButton)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr = props.componentOverrides) === null || _props$componentOverr === void 0 ? void 0 : _props$componentOverr.chatButton) || /*#__PURE__*/_react2.default.createElement(_ChatButtonStateful.default, {
|
|
460
496
|
buttonProps: props.chatButtonProps,
|
|
461
497
|
outOfOfficeButtonProps: props.outOfOfficeChatButtonProps,
|
|
462
498
|
startChat: prepareStartChatRelay
|
|
@@ -478,7 +514,7 @@ const LiveChatWidgetStateful = props => {
|
|
|
478
514
|
}, props.callingContainerProps)), !((_props$controlProps23 = props.controlProps) !== null && _props$controlProps23 !== void 0 && _props$controlProps23.hideWebChatContainer) && (0, _componentController.shouldShowWebChatContainer)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr8 = props.componentOverrides) === null || _props$componentOverr8 === void 0 ? void 0 : _props$componentOverr8.webChatContainer) || /*#__PURE__*/_react2.default.createElement(_WebChatContainerStateful.default, props.webChatContainerProps)), !((_props$controlProps24 = props.controlProps) !== null && _props$controlProps24 !== void 0 && _props$controlProps24.hideConfirmationPane) && (0, _componentController.shouldShowConfirmationPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr9 = props.componentOverrides) === null || _props$componentOverr9 === void 0 ? void 0 : _props$componentOverr9.confirmationPane) || /*#__PURE__*/_react2.default.createElement(_ConfirmationPaneStateful.default, _extends({}, confirmationPaneProps, {
|
|
479
515
|
setPostChatContext: setPostChatContextRelay,
|
|
480
516
|
prepareEndChat: prepareEndChatRelay
|
|
481
|
-
}))), !((_props$controlProps25 = props.controlProps) !== null && _props$controlProps25 !== void 0 && _props$controlProps25.hidePostChatLoadingPane) && (0, _componentController.shouldShowPostChatLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr10 = props.componentOverrides) === null || _props$componentOverr10 === void 0 ? void 0 : _props$componentOverr10.postChatLoadingPane) || /*#__PURE__*/_react2.default.createElement(_PostChatLoadingPaneStateful.default, props.postChatLoadingPaneProps)), (0, _componentController.shouldShowPostChatSurveyPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr11 = props.componentOverrides) === null || _props$componentOverr11 === void 0 ? void 0 : _props$componentOverr11.postChatSurveyPane) || /*#__PURE__*/_react2.default.createElement(_PostChatSurveyPaneStateful.default, _extends({}, props.postChatSurveyPaneProps, props.chatSDK))), (0, _createFooter.createFooter)(props, state), (0, _componentController.shouldShowEmailTranscriptPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr12 = props.componentOverrides) === null || _props$componentOverr12 === void 0 ? void 0 : _props$componentOverr12.emailTranscriptPane) || /*#__PURE__*/_react2.default.createElement(_EmailTranscriptPaneStateful.default, props.emailTranscriptPane))));
|
|
517
|
+
}))), !((_props$controlProps25 = props.controlProps) !== null && _props$controlProps25 !== void 0 && _props$controlProps25.hidePostChatLoadingPane) && (0, _componentController.shouldShowPostChatLoadingPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr10 = props.componentOverrides) === null || _props$componentOverr10 === void 0 ? void 0 : _props$componentOverr10.postChatLoadingPane) || /*#__PURE__*/_react2.default.createElement(_PostChatLoadingPaneStateful.default, props.postChatLoadingPaneProps)), (0, _componentController.shouldShowPostChatSurveyPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr11 = props.componentOverrides) === null || _props$componentOverr11 === void 0 ? void 0 : _props$componentOverr11.postChatSurveyPane) || /*#__PURE__*/_react2.default.createElement(_PostChatSurveyPaneStateful.default, _extends({}, props.postChatSurveyPaneProps, props.chatSDK))), (0, _createFooter.createFooter)(props, state), (0, _componentController.shouldShowEmailTranscriptPane)(state) && ((0, _omnichannelChatComponents.decodeComponentString)((_props$componentOverr12 = props.componentOverrides) === null || _props$componentOverr12 === void 0 ? void 0 : _props$componentOverr12.emailTranscriptPane) || /*#__PURE__*/_react2.default.createElement(_EmailTranscriptPaneStateful.default, props.emailTranscriptPane)))));
|
|
482
518
|
};
|
|
483
519
|
exports.LiveChatWidgetStateful = LiveChatWidgetStateful;
|
|
484
520
|
var _default = LiveChatWidgetStateful;
|
|
@@ -11,6 +11,8 @@ var _TelemetryHelper = require("../../common/telemetry/TelemetryHelper");
|
|
|
11
11
|
var _defaultgeneralLoadingPaneStyleProps = require("./common/defaultStyleProps/defaultgeneralLoadingPaneStyleProps");
|
|
12
12
|
var _utils = require("../../common/utils");
|
|
13
13
|
var _useChatContextStore = _interopRequireDefault(require("../../hooks/useChatContextStore"));
|
|
14
|
+
var _useWindowDimensions = _interopRequireDefault(require("../../hooks/useWindowDimensions"));
|
|
15
|
+
var _errorUILoadingPaneStyleProps = require("./common/errorUIStyleProps/errorUILoadingPaneStyleProps");
|
|
14
16
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
15
17
|
function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
|
|
16
18
|
function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
|
|
@@ -22,11 +24,27 @@ const LoadingPaneStateful = props => {
|
|
|
22
24
|
...props.styleProps,
|
|
23
25
|
generalStyleProps: generalStyleProps
|
|
24
26
|
};
|
|
27
|
+
const errorUIStyleProps = {
|
|
28
|
+
..._errorUILoadingPaneStyleProps.errorUILoadingPaneStyleProps
|
|
29
|
+
};
|
|
25
30
|
const controlProps = {
|
|
26
31
|
id: "oc-lcw-loading-pane",
|
|
27
32
|
dir: state.domainStates.globalDir,
|
|
28
33
|
...props.controlProps
|
|
29
34
|
};
|
|
35
|
+
const errorUIControlProps = {
|
|
36
|
+
id: "oc-lcw-alert-pane",
|
|
37
|
+
dir: state.domainStates.globalDir,
|
|
38
|
+
titleText: "Chat is failing to load.",
|
|
39
|
+
subtitleText: "Please Close the chat and try again.",
|
|
40
|
+
hideSpinner: true,
|
|
41
|
+
hideSpinnerText: true,
|
|
42
|
+
...props.controlProps
|
|
43
|
+
};
|
|
44
|
+
const {
|
|
45
|
+
height,
|
|
46
|
+
width
|
|
47
|
+
} = (0, _useWindowDimensions.default)();
|
|
30
48
|
|
|
31
49
|
// Move focus to the first button
|
|
32
50
|
(0, _react.useEffect)(() => {
|
|
@@ -41,8 +59,10 @@ const LoadingPaneStateful = props => {
|
|
|
41
59
|
}, []);
|
|
42
60
|
return /*#__PURE__*/_react.default.createElement(_omnichannelChatComponents.LoadingPane, {
|
|
43
61
|
componentOverrides: props.componentOverrides,
|
|
44
|
-
controlProps: controlProps,
|
|
45
|
-
styleProps: styleProps
|
|
62
|
+
controlProps: state.appStates.isStartChatFailing ? errorUIControlProps : controlProps,
|
|
63
|
+
styleProps: state.appStates.isStartChatFailing ? errorUIStyleProps : styleProps,
|
|
64
|
+
windowWidth: width,
|
|
65
|
+
windowHeight: height
|
|
46
66
|
});
|
|
47
67
|
};
|
|
48
68
|
exports.LoadingPaneStateful = LoadingPaneStateful;
|
|
@@ -0,0 +1,57 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.errorUILoadingPaneStyleProps = void 0;
|
|
7
|
+
var _react = require("@fluentui/react");
|
|
8
|
+
var _Icons = require("../../../../assets/Icons");
|
|
9
|
+
const errorUILoadingPaneStyleProps = {
|
|
10
|
+
generalStyleProps: {
|
|
11
|
+
position: "initial",
|
|
12
|
+
width: "100%",
|
|
13
|
+
height: "100%",
|
|
14
|
+
left: "0%",
|
|
15
|
+
top: "0%",
|
|
16
|
+
borderRadius: "0 0 4px 4px",
|
|
17
|
+
borderWidth: "0px",
|
|
18
|
+
backgroundColor: "#FFFFFF"
|
|
19
|
+
},
|
|
20
|
+
titleStyleProps: {
|
|
21
|
+
fontFamily: "'Segoe UI',Arial,sans-serif",
|
|
22
|
+
fontWeight: "normal",
|
|
23
|
+
fontSize: "18px",
|
|
24
|
+
color: "#36454F",
|
|
25
|
+
textAlign: "center",
|
|
26
|
+
display: "flex",
|
|
27
|
+
order: 2,
|
|
28
|
+
alignSelf: "auto"
|
|
29
|
+
},
|
|
30
|
+
subtitleStyleProps: {
|
|
31
|
+
fontFamily: "'Segoe UI',Arial,sans-serif",
|
|
32
|
+
fontWeight: "normal",
|
|
33
|
+
fontSize: "18px",
|
|
34
|
+
color: "#36454F",
|
|
35
|
+
textAlign: "center",
|
|
36
|
+
display: "flex",
|
|
37
|
+
order: 3,
|
|
38
|
+
alignSelf: "auto"
|
|
39
|
+
},
|
|
40
|
+
iconStyleProps: {
|
|
41
|
+
display: "flex",
|
|
42
|
+
order: 1,
|
|
43
|
+
alignSelf: "auto",
|
|
44
|
+
backgroundColor: "#FFFFFF",
|
|
45
|
+
boxShadow: "#FFFFFF 0px 0px 0px 0px",
|
|
46
|
+
margin: "0px 0px 0px 0px"
|
|
47
|
+
},
|
|
48
|
+
iconImageProps: {
|
|
49
|
+
src: _Icons.AlertIcon,
|
|
50
|
+
imageFit: _react.ImageFit.center,
|
|
51
|
+
width: "86px",
|
|
52
|
+
height: "86px",
|
|
53
|
+
shouldFadeIn: false,
|
|
54
|
+
shouldStartVisible: true
|
|
55
|
+
}
|
|
56
|
+
};
|
|
57
|
+
exports.errorUILoadingPaneStyleProps = errorUILoadingPaneStyleProps;
|
|
@@ -77,7 +77,7 @@ const PreChatSurveyPaneStateful = props => {
|
|
|
77
77
|
let optionalParams = {};
|
|
78
78
|
|
|
79
79
|
//Connect to Active chats and chat is not popout
|
|
80
|
-
if (persistedState && !(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai = persistedState.domainStates) === null || _persistedState$domai === void 0 ? void 0 : _persistedState$domai.liveChatContext) && (persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$appSt = persistedState.appStates) === null || _persistedState$appSt === void 0 ? void 0 : _persistedState$appSt.conversationState) === _ConversationState.ConversationState.Active &&
|
|
80
|
+
if (persistedState && !(0, _utils.isUndefinedOrEmpty)(persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai = persistedState.domainStates) === null || _persistedState$domai === void 0 ? void 0 : _persistedState$domai.liveChatContext) && (persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$appSt = persistedState.appStates) === null || _persistedState$appSt === void 0 ? void 0 : _persistedState$appSt.conversationState) === _ConversationState.ConversationState.Active && state.appStates.hideStartChatButton === false) {
|
|
81
81
|
var _persistedState$domai2;
|
|
82
82
|
optionalParams = {
|
|
83
83
|
liveChatContext: persistedState === null || persistedState === void 0 ? void 0 : (_persistedState$domai2 = persistedState.domainStates) === null || _persistedState$domai2 === void 0 ? void 0 : _persistedState$domai2.liveChatContext
|
|
@@ -120,7 +120,7 @@ const PreChatSurveyPaneStateful = props => {
|
|
|
120
120
|
}
|
|
121
121
|
if (current && current.tagName.toLowerCase() == _Constants.HtmlAttributeNames.div && current.childElementCount > 0) {
|
|
122
122
|
const input = current.children[0].children;
|
|
123
|
-
if (input
|
|
123
|
+
if ((input === null || input === void 0 ? void 0 : input.length) > 0 && input[0].className != _Constants.HtmlAttributeNames.adaptiveCardToggleInputClassName && input[0].className != _Constants.HtmlAttributeNames.adaptiveCardActionSetClassName) {
|
|
124
124
|
input[0].setAttribute(_Constants.HtmlAttributeNames.ariaLabel, value);
|
|
125
125
|
}
|
|
126
126
|
}
|
|
@@ -7,7 +7,7 @@ exports.defaultGeneralPreChatSurveyPaneStyleProps = void 0;
|
|
|
7
7
|
const defaultGeneralPreChatSurveyPaneStyleProps = {
|
|
8
8
|
borderStyle: "solid",
|
|
9
9
|
borderRadius: "inherit",
|
|
10
|
-
borderWidth: "
|
|
10
|
+
borderWidth: "0px",
|
|
11
11
|
backgroundColor: "#FFFFFF",
|
|
12
12
|
borderColor: "#F1F1F1",
|
|
13
13
|
overflowY: "auto",
|
|
@@ -35,6 +35,10 @@ const ReconnectChatPaneStateful = props => {
|
|
|
35
35
|
};
|
|
36
36
|
await initStartChat(optionalParams);
|
|
37
37
|
} else {
|
|
38
|
+
dispatch({
|
|
39
|
+
type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_RECONNECT_ID,
|
|
40
|
+
payload: undefined
|
|
41
|
+
});
|
|
38
42
|
const parseToJson = false;
|
|
39
43
|
const preChatSurveyResponse = await chatSDK.getPreChatSurvey(parseToJson);
|
|
40
44
|
if (preChatSurveyResponse) {
|
|
@@ -10,7 +10,9 @@ var _botframeworkDirectlinejs = require("botframework-directlinejs");
|
|
|
10
10
|
var _rxjs = require("rxjs");
|
|
11
11
|
var _Observable = require("rxjs/Observable");
|
|
12
12
|
var _omnichannelChatSdk = require("@microsoft/omnichannel-chat-sdk");
|
|
13
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
13
|
+
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; }
|
|
14
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
15
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
14
16
|
class MockAdapter {
|
|
15
17
|
constructor() {
|
|
16
18
|
_defineProperty(this, "activityObserver", void 0);
|
|
@@ -6,7 +6,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
6
6
|
exports.MockChatSDK = void 0;
|
|
7
7
|
var _mockadapter = _interopRequireDefault(require("./mockadapter"));
|
|
8
8
|
function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
|
|
9
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
9
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
10
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
11
|
+
function _toPrimitive(input, hint) { if (typeof input !== "object" || input === null) return input; var prim = input[Symbol.toPrimitive]; if (prim !== undefined) { var res = prim.call(input, hint || "default"); if (typeof res !== "object") return res; throw new TypeError("@@toPrimitive must return a primitive value."); } return (hint === "string" ? String : Number)(input); }
|
|
10
12
|
class MockChatSDK {
|
|
11
13
|
constructor() {
|
|
12
14
|
_defineProperty(this, "sleep", ms => new Promise(r => setTimeout(r, ms)));
|
package/lib/cjs/components/webchatcontainerstateful/common/utils/FileAttachmentIconManager.js
CHANGED
|
@@ -12,6 +12,7 @@ const FileAttachmentIconMap = {
|
|
|
12
12
|
"aac": _Icons.AudioIcon,
|
|
13
13
|
"aiff": _Icons.AudioIcon,
|
|
14
14
|
"alac": _Icons.AudioIcon,
|
|
15
|
+
"amr": _Icons.AudioIcon,
|
|
15
16
|
"avchd": _Icons.VideoIcon,
|
|
16
17
|
"avi": _Icons.VideoIcon,
|
|
17
18
|
"bmp": _Icons.ImageIcon,
|
|
@@ -50,6 +51,7 @@ const FileAttachmentIconMap = {
|
|
|
50
51
|
"vsdx": _Icons.VisioIcon,
|
|
51
52
|
"wav": _Icons.AudioIcon,
|
|
52
53
|
"webm": _Icons.VideoIcon,
|
|
54
|
+
"webp": _Icons.ImageIcon,
|
|
53
55
|
"wma": _Icons.AudioIcon,
|
|
54
56
|
"wmv": _Icons.VideoIcon,
|
|
55
57
|
"xls": _Icons.ExcelIcon,
|
|
@@ -4,7 +4,9 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.BotMagicCodeStore = void 0;
|
|
7
|
-
function _defineProperty(obj, key, value) { if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
7
|
+
function _defineProperty(obj, key, value) { key = _toPropertyKey(key); if (key in obj) { Object.defineProperty(obj, key, { value: value, enumerable: true, configurable: true, writable: true }); } else { obj[key] = value; } return obj; }
|
|
8
|
+
function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
|
|
9
|
+
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); }
|
|
8
10
|
class BotMagicCodeStore {}
|
|
9
11
|
exports.BotMagicCodeStore = BotMagicCodeStore;
|
|
10
12
|
_defineProperty(BotMagicCodeStore, "botOAuthSignInId", "");
|