@microsoft/omnichannel-chat-widget 1.8.3-main.38c88a7 → 1.8.3-main.5668947

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.
Files changed (64) hide show
  1. package/lib/cjs/common/Constants.js +2 -0
  2. package/lib/cjs/common/telemetry/TelemetryConstants.js +4 -0
  3. package/lib/cjs/common/telemetry/TelemetryHelper.js +7 -5
  4. package/lib/cjs/components/citationpanestateful/CitationDim.js +29 -0
  5. package/lib/cjs/components/citationpanestateful/CitationPaneStateful.js +198 -0
  6. package/lib/cjs/components/citationpanestateful/common/defaultProps/defaultCitationPaneProps.js +70 -0
  7. package/lib/cjs/components/confirmationpanestateful/interfaces/IConfirmationPaneLocalizedTexts.js +1 -0
  8. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +4 -5
  9. package/lib/cjs/components/livechatwidget/common/endChat.js +37 -4
  10. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +12 -9
  11. package/lib/cjs/components/livechatwidget/common/startChat.js +4 -3
  12. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +35 -6
  13. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +89 -5
  14. package/lib/cjs/components/webchatcontainerstateful/interfaces/ICitation.js +1 -0
  15. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/citationsMiddleware.js +139 -0
  16. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/localizedStringsBotInitialsMiddleware.js +54 -0
  17. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.js +2 -2
  18. package/lib/cjs/contexts/common/LiveChatWidgetActionType.js +46 -45
  19. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +2 -0
  20. package/lib/cjs/contexts/createReducer.js +15 -0
  21. package/lib/cjs/firstresponselatency/util.js +12 -2
  22. package/lib/cjs/plugins/newMessageEventHandler.js +2 -2
  23. package/lib/esm/common/Constants.js +2 -0
  24. package/lib/esm/common/telemetry/TelemetryConstants.js +4 -0
  25. package/lib/esm/common/telemetry/TelemetryHelper.js +7 -5
  26. package/lib/esm/components/citationpanestateful/CitationDim.js +20 -0
  27. package/lib/esm/components/citationpanestateful/CitationPaneStateful.js +187 -0
  28. package/lib/esm/components/citationpanestateful/common/defaultProps/defaultCitationPaneProps.js +61 -0
  29. package/lib/esm/components/confirmationpanestateful/interfaces/IConfirmationPaneLocalizedTexts.js +1 -0
  30. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +4 -5
  31. package/lib/esm/components/livechatwidget/common/endChat.js +38 -5
  32. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +13 -10
  33. package/lib/esm/components/livechatwidget/common/startChat.js +4 -3
  34. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +35 -6
  35. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +89 -6
  36. package/lib/esm/components/webchatcontainerstateful/interfaces/ICitation.js +1 -0
  37. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/citationsMiddleware.js +133 -0
  38. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/localizedStringsBotInitialsMiddleware.js +46 -0
  39. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.js +2 -2
  40. package/lib/esm/contexts/common/LiveChatWidgetActionType.js +46 -45
  41. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +2 -0
  42. package/lib/esm/contexts/createReducer.js +15 -0
  43. package/lib/esm/firstresponselatency/util.js +9 -0
  44. package/lib/esm/plugins/newMessageEventHandler.js +3 -3
  45. package/lib/types/common/Constants.d.ts +2 -0
  46. package/lib/types/common/telemetry/TelemetryConstants.d.ts +4 -0
  47. package/lib/types/components/citationpanestateful/CitationDim.d.ts +5 -0
  48. package/lib/types/components/citationpanestateful/CitationPaneStateful.d.ts +4 -0
  49. package/lib/types/components/citationpanestateful/common/defaultProps/defaultCitationPaneProps.d.ts +11 -0
  50. package/lib/types/components/citationpanestateful/interfaces/ICitationPaneStatefulProps.d.ts +10 -0
  51. package/lib/types/components/confirmationpanestateful/common/defaultProps/defaultConfirmationPaneLocalizedTexts.d.ts +1 -1
  52. package/lib/types/components/confirmationpanestateful/interfaces/IConfirmationPaneStatefulProps.d.ts +1 -1
  53. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +5 -1
  54. package/lib/types/components/webchatcontainerstateful/interfaces/ICitation.d.ts +12 -0
  55. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/citationsMiddleware.d.ts +4 -0
  56. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/localizedStringsBotInitialsMiddleware.d.ts +5 -0
  57. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware.d.ts +2 -2
  58. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +1 -0
  59. package/lib/types/contexts/common/LiveChatWidgetActionType.d.ts +46 -45
  60. package/lib/types/firstresponselatency/util.d.ts +1 -0
  61. package/package.json +4 -3
  62. /package/lib/cjs/components/{confirmationpanestateful/interfaces/IConfirmationPaneLocalizedText.js → citationpanestateful/interfaces/ICitationPaneStatefulProps.js} +0 -0
  63. /package/lib/esm/components/{confirmationpanestateful/interfaces/IConfirmationPaneLocalizedText.js → citationpanestateful/interfaces/ICitationPaneStatefulProps.js} +0 -0
  64. /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";
@@ -195,6 +196,7 @@ exports.TelemetryEvent = TelemetryEvent;
195
196
  TelemetryEvent["ProcessingSanitizationMiddlewareFailed"] = "ProcessingSanitizationMiddlewareFailed";
196
197
  TelemetryEvent["FormatTagsMiddlewareJSONStringifyFailed"] = "FormatTagsMiddlewareJSONStringifyFailed";
197
198
  TelemetryEvent["AttachmentUploadValidatorMiddlewareFailed"] = "AttachmentUploadValidatorMiddlewareFailed";
199
+ TelemetryEvent["CitationMiddlewareFailed"] = "CitationMiddlewareFailed";
198
200
  TelemetryEvent["QueuePositionMessageRecieved"] = "QueuePositionMessageRecieved";
199
201
  TelemetryEvent["AverageWaitTimeMessageRecieved"] = "AverageWaitTimeMessageRecieved";
200
202
  TelemetryEvent["DataMaskingRuleApplied"] = "DataMaskingRuleApplied";
@@ -279,7 +281,9 @@ exports.TelemetryEvent = TelemetryEvent;
279
281
  TelemetryEvent["UXLCWChatButtonLoadingStart"] = "UXLCWChatButtonLoadingStart";
280
282
  TelemetryEvent["UXLCWChatButtonLoadingCompleted"] = "UXLCWChatButtonLoadingCompleted";
281
283
  TelemetryEvent["UXConfirmationPaneStart"] = "UXConfirmationPaneStart";
284
+ TelemetryEvent["UXCitationPaneStart"] = "UXCitationPaneStart";
282
285
  TelemetryEvent["UXConfirmationPaneCompleted"] = "UXConfirmationPaneCompleted";
286
+ TelemetryEvent["UXCitationPaneCompleted"] = "UXCitationPaneCompleted";
283
287
  TelemetryEvent["UXLiveChatWidgetStart"] = "UXLiveChatWidgetStart";
284
288
  TelemetryEvent["UXLiveChatWidgetCompleted"] = "UXLiveChatWidgetCompleted";
285
289
  TelemetryEvent["AppInsightsInitialized"] = "AppInsightsInitialized";
@@ -236,11 +236,13 @@ let TelemetryHelper = /*#__PURE__*/function () {
236
236
  }, {
237
237
  key: "postTelemetryEvent",
238
238
  value: function postTelemetryEvent(eventName, logLevel, payload) {
239
+ var _TelemetryManager$Int16;
239
240
  const telemetryEvent = {
240
241
  eventName,
241
242
  logLevel,
242
243
  payload: {
243
- ...payload
244
+ ...payload,
245
+ runtimeId: (_TelemetryManager$Int16 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int16 === void 0 ? void 0 : _TelemetryManager$Int16.lcwRuntimeId
244
246
  }
245
247
  };
246
248
  _omnichannelChatComponents.BroadcastService.postMessage(telemetryEvent);
@@ -267,11 +269,11 @@ _defineProperty(TelemetryHelper, "logActionEvent", (logLevel, payload) => {
267
269
  TelemetryHelper.postTelemetryEvent((payload === null || payload === void 0 ? void 0 : payload.Event) ?? "", logLevel, payload);
268
270
  });
269
271
  _defineProperty(TelemetryHelper, "logSDKEvent", (logLevel, payload) => {
270
- var _TelemetryManager$Int16;
272
+ var _TelemetryManager$Int17;
271
273
  TelemetryHelper.postTelemetryEvent((payload === null || payload === void 0 ? void 0 : payload.Event) ?? "", logLevel, {
272
274
  ...payload,
273
275
  TransactionId: (0, _utils.newGuid)(),
274
- RequestId: (_TelemetryManager$Int16 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int16 === void 0 ? void 0 : _TelemetryManager$Int16.currentRequestId
276
+ RequestId: (_TelemetryManager$Int17 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int17 === void 0 ? void 0 : _TelemetryManager$Int17.currentRequestId
275
277
  });
276
278
  });
277
279
  _defineProperty(TelemetryHelper, "logConfigDataEvent", (logLevel, payload) => {
@@ -306,12 +308,12 @@ _defineProperty(TelemetryHelper, "logFacadeChatSDKEventToAllTelemetry", (logLeve
306
308
  });
307
309
  });
308
310
  _defineProperty(TelemetryHelper, "logSDKEventToAllTelemetry", (logLevel, payload) => {
309
- var _TelemetryManager$Int17;
311
+ var _TelemetryManager$Int18;
310
312
  TelemetryHelper.postTelemetryEvent((payload === null || payload === void 0 ? void 0 : payload.Event) ?? "", logLevel, {
311
313
  ...{
312
314
  ...payload,
313
315
  TransactionId: (0, _utils.newGuid)(),
314
- RequestId: (_TelemetryManager$Int17 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int17 === void 0 ? void 0 : _TelemetryManager$Int17.currentRequestId
316
+ RequestId: (_TelemetryManager$Int18 = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int18 === void 0 ? void 0 : _TelemetryManager$Int18.currentRequestId
315
317
  },
316
318
  LogToAll: true
317
319
  });
@@ -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,198 @@
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
+ controlProps: controlProps,
193
+ styleProps: mergedStyleProps
194
+ })));
195
+ };
196
+ exports.CitationPaneStateful = CitationPaneStateful;
197
+ var _default = CitationPaneStateful;
198
+ exports.default = _default;
@@ -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;
@@ -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
- let isConversationalSurveyEnabled = state.appStates.isConversationalSurveyEnabled;
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,27 @@ 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
+ dispatch({
162
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CHAT_DISCONNECT_EVENT_RECEIVED,
163
+ payload: true
164
+ });
165
+ _TelemetryHelper.TelemetryHelper.logActionEvent(_TelemetryConstants.LogLevel.INFO, {
166
+ Event: _TelemetryConstants.TelemetryEvent.ChatDisconnectThreadEventReceived,
167
+ Description: "Checking conversation details upon endChat. Chat disconnected.",
168
+ CustomProperties: {
169
+ conversationDetails
170
+ }
171
+ });
172
+ isSessionEnded = true;
173
+ }
174
+ }
156
175
  const endChatOptionalParameters = {
157
- isSessionEnded: inMemoryState === null || inMemoryState === void 0 ? void 0 : (_inMemoryState$appSta = inMemoryState.appStates) === null || _inMemoryState$appSta === void 0 ? void 0 : _inMemoryState$appSta.chatDisconnectEventReceived
176
+ isSessionEnded
158
177
  };
159
178
  try {
160
179
  _TelemetryHelper.TelemetryHelper.logSDKEvent(_TelemetryConstants.LogLevel.INFO, {
@@ -217,7 +236,7 @@ const endChat = async (props, facadeChatSDK, state, dispatch, setAdapter, setWeb
217
236
  payload: undefined
218
237
  });
219
238
  // Always allow to close the chat for embedded mode irrespective of end chat errors
220
- closeChatWidget(dispatch);
239
+ closeChatWidget(dispatch, setWebChatStyles, props);
221
240
  facadeChatSDK.destroy();
222
241
  }
223
242
  }
@@ -305,6 +324,10 @@ const closeChatStateCleanUp = dispatch => {
305
324
  proactiveChatInNewWindow: false
306
325
  }
307
326
  });
327
+ dispatch({
328
+ type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CITATIONS,
329
+ payload: {}
330
+ });
308
331
 
309
332
  // Clear live chat context only if chat widget is fully closed to support transcript calls after sessionclose is called
310
333
  dispatch({
@@ -350,13 +373,23 @@ const endVoiceVideoCallIfOngoing = async (facadeChatSDK, dispatch) => {
350
373
  }, callId);
351
374
  }
352
375
  };
376
+
377
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
353
378
  exports.endVoiceVideoCallIfOngoing = endVoiceVideoCallIfOngoing;
354
- const closeChatWidget = dispatch => {
379
+ const closeChatWidget = (dispatch, setWebChatStyles, props) => {
380
+ var _props$webChatContain2, _props$webChatContain3;
355
381
  // Embedded chat
356
382
  dispatch({
357
383
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_CONVERSATION_STATE,
358
384
  payload: _ConversationState.ConversationState.Closed
359
385
  });
386
+
387
+ // if customer is setting the hideSendbox, we should not alter its value
388
+ if ((props === null || props === void 0 ? void 0 : (_props$webChatContain2 = props.webChatContainerProps) === null || _props$webChatContain2 === void 0 ? void 0 : (_props$webChatContain3 = _props$webChatContain2.webChatStyles) === null || _props$webChatContain3 === void 0 ? void 0 : _props$webChatContain3.hideSendBox) === true) return;
389
+ setWebChatStyles(styles => ({
390
+ ...styles,
391
+ hideSendBox: false
392
+ }));
360
393
  };
361
394
 
362
395
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
@@ -7,6 +7,8 @@ exports.initWebChatComposer = void 0;
7
7
  var _Constants = require("../../../common/Constants");
8
8
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
9
9
  var _utils = require("../../../common/utils");
10
+ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
11
+ var _ConversationState = require("../../../contexts/common/ConversationState");
10
12
  var _dompurify = _interopRequireDefault(require("dompurify"));
11
13
  var _HyperlinkTextOverrideRenderer = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/markdownrenderers/HyperlinkTextOverrideRenderer"));
12
14
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
@@ -18,35 +20,35 @@ var _activityMiddleware = require("../../webchatcontainerstateful/webchatcontrol
18
20
  var _attachmentMiddleware = require("../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/attachmentMiddleware");
19
21
  var _attachmentUploadValidatorMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/attachmentUploadValidatorMiddleware"));
20
22
  var _avatarMiddleware = require("../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/avatarMiddleware");
23
+ var _callActionMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/callActionMiddleware"));
21
24
  var _cardActionMiddleware = require("../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/cardActionMiddleware");
25
+ var _citationsMiddleware = require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/citationsMiddleware");
22
26
  var _conversationEndMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/conversationEndMiddleware"));
27
+ var _customEventMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/customEventMiddleware"));
23
28
  var _dataMaskingMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/dataMaskingMiddleware"));
24
29
  var _createMarkdown = require("./createMarkdown");
25
30
  var _maxMessageSizeValidator = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/maxMessageSizeValidator"));
26
31
  var _messageSequenceIdOverrideMiddleware = require("../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageSequenceIdOverrideMiddleware");
27
32
  var _messageTimestampMiddleware = require("../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/messageTimestampMiddleware");
33
+ var _queueOverflowHandlerMiddleware = require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware");
28
34
  var _botframeworkWebchat = require("botframework-webchat");
29
35
  var _toastMiddleware = require("../../webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/toastMiddleware");
30
36
  var _WebChatLogger = require("../../webchatcontainerstateful/webchatcontroller/webchattelemetry/WebChatLogger");
31
37
  var _defaultAttachmentProps = require("../../webchatcontainerstateful/common/defaultProps/defaultAttachmentProps");
32
38
  var _defaultMiddlewareLocalizedTexts = require("../../webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts");
33
39
  var _defaultWebChatContainerStatefulProps = require("../../webchatcontainerstateful/common/defaultProps/defaultWebChatContainerStatefulProps");
40
+ var _createReducer = require("../../../contexts/createReducer");
34
41
  var _omnichannelChatSdk = require("@microsoft/omnichannel-chat-sdk");
35
42
  var _gifUploadMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/gifUploadMiddleware"));
36
43
  var _htmlPlayerMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlPlayerMiddleware"));
37
44
  var _htmlTextMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/htmlTextMiddleware"));
38
45
  var _preProcessingMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/preProcessingMiddleware"));
39
46
  var _sanitizationMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/sanitizationMiddleware"));
40
- var _callActionMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/callActionMiddleware"));
41
- var _customEventMiddleware = _interopRequireDefault(require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/customEventMiddleware"));
42
- var _ConversationState = require("../../../contexts/common/ConversationState");
43
- var _createReducer = require("../../../contexts/createReducer");
44
- var _queueOverflowHandlerMiddleware = require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/queueOverflowHandlerMiddleware");
45
- var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components");
47
+ var _localizedStringsBotInitialsMiddleware = require("../../webchatcontainerstateful/webchatcontroller/middlewares/storemiddlewares/localizedStringsBotInitialsMiddleware");
46
48
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
47
49
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
48
50
  const initWebChatComposer = (props, state, dispatch, facadeChatSDK, endChat) => {
49
- var _props$webChatContain, _props$webChatContain2, _props$webChatContain3, _props$webChatContain4, _props$webChatContain5, _props$webChatContain6, _state$domainStates$l4, _state$domainStates$l5, _props$webChatContain11, _props$webChatContain12, _state$domainStates$r, _state$domainStates$r2, _props$webChatContain13, _props$webChatContain14, _state$domainStates$r3, _state$domainStates$r4, _props$webChatContain15, _props$webChatContain16, _defaultWebChatContai, _props$webChatContain17, _props$webChatContain18, _props$webChatContain19, _props$webChatContain20, _state$domainStates$r5, _state$domainStates$r6, _props$webChatContain21, _props$webChatContain22, _defaultWebChatContai2, _props$webChatContain23, _props$webChatContain24, _defaultWebChatContai3, _props$webChatContain25, _props$webChatContain26;
51
+ var _props$webChatContain, _props$webChatContain2, _props$webChatContain3, _props$webChatContain4, _props$webChatContain5, _props$webChatContain6, _state$domainStates$l4, _state$domainStates$l5, _props$webChatContain11, _props$webChatContain12, _state$domainStates$r, _state$domainStates$r2, _props$webChatContain13, _props$webChatContain14, _state$domainStates$r3, _state$domainStates$r4, _props$webChatContain15, _props$webChatContain16, _defaultWebChatContai, _props$webChatContain17, _props$webChatContain18, _props$webChatContain19, _props$webChatContain20, _state$domainStates$r5, _state$domainStates$r6, _props$webChatContain21, _props$webChatContain22, _defaultWebChatContai2, _props$webChatContain23, _props$webChatContain24, _defaultWebChatContai3, _props$webChatContain25, _props$webChatContain26, _props$webChatContain27, _props$webChatContain28;
50
52
  // Add a hook to make all links open a new window
51
53
  postDomPurifyActivities();
52
54
  const localizedTexts = {
@@ -121,7 +123,7 @@ const initWebChatComposer = (props, state, dispatch, facadeChatSDK, endChat) =>
121
123
  };
122
124
  webChatStore = (0, _botframeworkWebchat.createStore)({},
123
125
  //initial state
124
- _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, _gifUploadMiddleware.default, _htmlPlayerMiddleware.default, (0, _htmlTextMiddleware.default)(honorsTargetInHTMLLinks), (0, _maxMessageSizeValidator.default)(localizedTexts), _sanitizationMiddleware.default, (0, _callActionMiddleware.default)(),
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)(),
125
127
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
126
128
  ...(((_props$webChatContain7 = props.webChatContainerProps) === null || _props$webChatContain7 === void 0 ? void 0 : _props$webChatContain7.storeMiddlewares) ?? []));
127
129
  _WebChatStoreLoader.WebChatStoreLoader.store = webChatStore;
@@ -175,7 +177,8 @@ const initWebChatComposer = (props, state, dispatch, facadeChatSDK, endChat) =>
175
177
  onTelemetry: (0, _WebChatLogger.createWebChatTelemetry)(),
176
178
  cardActionMiddleware: (0, _cardActionMiddleware.createCardActionMiddleware)(((_props$webChatContain25 = props.webChatContainerProps) === null || _props$webChatContain25 === void 0 ? void 0 : _props$webChatContain25.botMagicCode) || undefined),
177
179
  sendTypingIndicator: true,
178
- ...((_props$webChatContain26 = props.webChatContainerProps) === null || _props$webChatContain26 === void 0 ? void 0 : _props$webChatContain26.webChatProps)
180
+ overrideLocalizedStrings: (0, _localizedStringsBotInitialsMiddleware.getOverriddenLocalizedStrings)((_props$webChatContain26 = props.webChatContainerProps) === null || _props$webChatContain26 === void 0 ? void 0 : (_props$webChatContain27 = _props$webChatContain26.webChatProps) === null || _props$webChatContain27 === void 0 ? void 0 : _props$webChatContain27.overrideLocalizedStrings),
181
+ ...((_props$webChatContain28 = props.webChatContainerProps) === null || _props$webChatContain28 === void 0 ? void 0 : _props$webChatContain28.webChatProps)
179
182
  };
180
183
  return webChatProps;
181
184
  };
@@ -6,6 +6,7 @@ Object.defineProperty(exports, "__esModule", {
6
6
  exports.setPreChatAndInitiateChat = exports.prepareStartChat = exports.initStartChat = exports.checkIfConversationStillValid = void 0;
7
7
  var _TelemetryConstants = require("../../../common/telemetry/TelemetryConstants");
8
8
  var _Constants = require("../../../common/Constants");
9
+ var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
9
10
  var _utils = require("../../../common/utils");
10
11
  var _reconnectChatHelper = require("./reconnectChatHelper");
11
12
  var _startChatErrorHandler = require("./startChatErrorHandler");
@@ -14,7 +15,6 @@ var _omnichannelChatComponents = require("@microsoft/omnichannel-chat-components
14
15
  var _ConversationState = require("../../../contexts/common/ConversationState");
15
16
  var _LiveChatWidgetActionType = require("../../../contexts/common/LiveChatWidgetActionType");
16
17
  var _TelemetryHelper = require("../../../common/telemetry/TelemetryHelper");
17
- var _TelemetryManager = require("../../../common/telemetry/TelemetryManager");
18
18
  var _endChat = require("./endChat");
19
19
  var _createAdapter = require("./createAdapter");
20
20
  var _newMessageEventHandler = require("../../../plugins/newMessageEventHandler");
@@ -137,7 +137,7 @@ const setPreChatAndInitiateChat = async (facadeChatSDK, dispatch, setAdapter, is
137
137
  * This is because a new change to control OOH as closed event when a widget is coming from chat.
138
138
  */
139
139
  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$;
140
+ var _state$domainStates5, _state$domainStates5$, _state$domainStates6, _state$domainStates6$, _TelemetryManager$Int;
141
141
  dispatch({
142
142
  type: _LiveChatWidgetActionType.LiveChatWidgetActionType.SET_MINIMIZED,
143
143
  payload: false
@@ -147,7 +147,8 @@ const setPreChatAndInitiateChat = async (facadeChatSDK, dispatch, setAdapter, is
147
147
  eventName: _TelemetryConstants.BroadcastEvent.MaximizeChat,
148
148
  payload: {
149
149
  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
- 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
150
+ 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$Int = _TelemetryManager.TelemetryManager.InternalTelemetryData) === null || _TelemetryManager$Int === void 0 ? void 0 : _TelemetryManager$Int.lcwRuntimeId
151
152
  }
152
153
  });
153
154
  }