@microsoft/omnichannel-chat-widget 1.8.3 → 1.8.4-main.7bdb634

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 (89) hide show
  1. package/lib/cjs/common/Constants.js +4 -0
  2. package/lib/cjs/common/facades/FacadeChatSDK.js +6 -0
  3. package/lib/cjs/common/telemetry/TelemetryConstants.js +31 -0
  4. package/lib/cjs/common/utils/SecureEventBus.js +307 -0
  5. package/lib/cjs/common/utils/dispatchCustomEvent.js +25 -0
  6. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/AddActivitySubscriber.js +127 -0
  7. package/lib/cjs/components/livechatwidget/common/ChatWidgetEvents.js +15 -0
  8. package/lib/cjs/components/livechatwidget/common/PersistentConversationHandler.js +284 -0
  9. package/lib/cjs/components/livechatwidget/common/createAdapter.js +2 -0
  10. package/lib/cjs/components/livechatwidget/common/defaultProps/defaultPersistentChatHistoryProps.js +18 -0
  11. package/lib/cjs/components/livechatwidget/common/endChat.js +7 -1
  12. package/lib/cjs/components/livechatwidget/common/initWebChatComposer.js +7 -5
  13. package/lib/cjs/components/livechatwidget/interfaces/IPersistentChatHistoryProps.js +1 -0
  14. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +31 -5
  15. package/lib/cjs/components/webchatcontainerstateful/common/activities/botActivity.js +14 -0
  16. package/lib/cjs/components/webchatcontainerstateful/common/activities/conversationDividerActivity.js +17 -0
  17. package/lib/cjs/components/webchatcontainerstateful/common/activityConverters/convertPersistentChatHistoryMessageToActivity.js +97 -0
  18. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts.js +2 -1
  19. package/lib/cjs/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +1 -1
  20. package/lib/cjs/components/webchatcontainerstateful/hooks/usePersistentChatHistory.js +59 -0
  21. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatEventSubscribers.js +122 -0
  22. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/Constants.js +10 -0
  23. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/ConversationDividerActivity.js +18 -0
  24. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LazyLoadActivity.js +1038 -0
  25. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LoadInlineBannerActivity.js +34 -0
  26. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +44 -0
  27. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +16 -2
  28. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultInLineBannerStyle.js +20 -0
  29. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +2 -2
  30. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/HistoryMessageTimestamp.js +59 -0
  31. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +4 -3
  32. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +2 -2
  33. package/lib/esm/common/Constants.js +4 -0
  34. package/lib/esm/common/facades/FacadeChatSDK.js +6 -0
  35. package/lib/esm/common/telemetry/TelemetryConstants.js +31 -0
  36. package/lib/esm/common/utils/SecureEventBus.js +328 -0
  37. package/lib/esm/common/utils/dispatchCustomEvent.js +18 -0
  38. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/AddActivitySubscriber.js +120 -0
  39. package/lib/esm/components/livechatwidget/common/ChatWidgetEvents.js +8 -0
  40. package/lib/esm/components/livechatwidget/common/PersistentConversationHandler.js +277 -0
  41. package/lib/esm/components/livechatwidget/common/createAdapter.js +2 -0
  42. package/lib/esm/components/livechatwidget/common/defaultProps/defaultPersistentChatHistoryProps.js +11 -0
  43. package/lib/esm/components/livechatwidget/common/endChat.js +7 -1
  44. package/lib/esm/components/livechatwidget/common/initWebChatComposer.js +7 -5
  45. package/lib/esm/components/livechatwidget/interfaces/IPersistentChatHistoryProps.js +1 -0
  46. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +34 -5
  47. package/lib/esm/components/webchatcontainerstateful/common/activities/botActivity.js +7 -0
  48. package/lib/esm/components/webchatcontainerstateful/common/activities/conversationDividerActivity.js +9 -0
  49. package/lib/esm/components/webchatcontainerstateful/common/activityConverters/convertPersistentChatHistoryMessageToActivity.js +90 -0
  50. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultMiddlewareLocalizedTexts.js +2 -1
  51. package/lib/esm/components/webchatcontainerstateful/common/defaultProps/defaultWebChatStatefulProps.js +2 -2
  52. package/lib/esm/components/webchatcontainerstateful/hooks/usePersistentChatHistory.js +51 -0
  53. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatEventSubscribers.js +115 -0
  54. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/Constants.js +3 -0
  55. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/ConversationDividerActivity.js +10 -0
  56. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LazyLoadActivity.js +1060 -0
  57. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LoadInlineBannerActivity.js +25 -0
  58. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityMiddleware.js +42 -0
  59. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.js +13 -0
  60. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultInLineBannerStyle.js +13 -0
  61. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +1 -1
  62. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/HistoryMessageTimestamp.js +52 -0
  63. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/NotDeliveredTimestamp.js +2 -2
  64. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/SendingTimestamp.js +1 -1
  65. package/lib/types/common/Constants.d.ts +3 -0
  66. package/lib/types/common/facades/FacadeChatSDK.d.ts +3 -1
  67. package/lib/types/common/telemetry/TelemetryConstants.d.ts +30 -2
  68. package/lib/types/common/utils/SecureEventBus.d.ts +159 -0
  69. package/lib/types/common/utils/dispatchCustomEvent.d.ts +2 -0
  70. package/lib/types/components/livechatwidget/common/ActivitySubscriber/AddActivitySubscriber.d.ts +45 -0
  71. package/lib/types/components/livechatwidget/common/ChatWidgetEvents.d.ts +7 -0
  72. package/lib/types/components/livechatwidget/common/PersistentConversationHandler.d.ts +28 -0
  73. package/lib/types/components/livechatwidget/common/defaultProps/defaultPersistentChatHistoryProps.d.ts +2 -0
  74. package/lib/types/components/livechatwidget/interfaces/ILiveChatWidgetProps.d.ts +2 -0
  75. package/lib/types/components/livechatwidget/interfaces/IPersistentChatHistoryProps.d.ts +7 -0
  76. package/lib/types/components/webchatcontainerstateful/common/activities/botActivity.d.ts +7 -0
  77. package/lib/types/components/webchatcontainerstateful/common/activities/conversationDividerActivity.d.ts +10 -0
  78. package/lib/types/components/webchatcontainerstateful/common/activityConverters/convertPersistentChatHistoryMessageToActivity.d.ts +2 -0
  79. package/lib/types/components/webchatcontainerstateful/hooks/usePersistentChatHistory.d.ts +4 -0
  80. package/lib/types/components/webchatcontainerstateful/webchatcontroller/WebChatEventSubscribers.d.ts +7 -0
  81. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/Constants.d.ts +3 -0
  82. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/ConversationDividerActivity.d.ts +4 -0
  83. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LazyLoadActivity.d.ts +326 -0
  84. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activities/LoadInlineBannerActivity.d.ts +8 -0
  85. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/activityStatusMiddleware.d.ts +1 -0
  86. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/defaultStyles/defaultInLineBannerStyle.d.ts +2 -0
  87. package/lib/types/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/HistoryMessageTimestamp.d.ts +2 -0
  88. package/lib/types/contexts/common/ILiveChatWidgetLocalizedTexts.d.ts +1 -0
  89. package/package.json +2 -2
@@ -0,0 +1,34 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _react = _interopRequireWildcard(require("react"));
8
+ var _defaultInLineBannerStyle = require("../defaultStyles/defaultInLineBannerStyle");
9
+ var _defaultMiddlewareLocalizedTexts = require("../../../../common/defaultProps/defaultMiddlewareLocalizedTexts");
10
+ var _mergeStyles = require("@fluentui/merge-styles");
11
+ 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); }
12
+ 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; }
13
+ const LoadInlineBannerActivity = _ref => {
14
+ let {
15
+ webChatContainerProps,
16
+ persistentChatHistory,
17
+ id
18
+ } = _ref;
19
+ const localizedTexts = (0, _react.useMemo)(() => ({
20
+ ..._defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts,
21
+ ...(webChatContainerProps === null || webChatContainerProps === void 0 ? void 0 : webChatContainerProps.localizedTexts)
22
+ }), [webChatContainerProps === null || webChatContainerProps === void 0 ? void 0 : webChatContainerProps.localizedTexts]);
23
+ const bannerStyle = (0, _mergeStyles.mergeStyles)(persistentChatHistory === null || persistentChatHistory === void 0 ? void 0 : persistentChatHistory.bannerStyle, _defaultInLineBannerStyle.defaultInlineBannerStyle);
24
+ return /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("div", {
25
+ id: id,
26
+ className: bannerStyle,
27
+ role: "status",
28
+ "aria-live": "polite",
29
+ "aria-label": localizedTexts.PREVIOUS_MESSAGES_LOADING,
30
+ "aria-busy": "true"
31
+ }, localizedTexts.PREVIOUS_MESSAGES_LOADING));
32
+ };
33
+ var _default = LoadInlineBannerActivity;
34
+ exports.default = _default;
@@ -4,8 +4,10 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.createActivityMiddleware = void 0;
7
+ var _LazyLoadActivity = _interopRequireWildcard(require("./activities/LazyLoadActivity"));
7
8
  var _TelemetryConstants = require("../../../../../common/telemetry/TelemetryConstants");
8
9
  var _Constants = require("../../../../../common/Constants");
10
+ var _ConversationDividerActivity = _interopRequireDefault(require("./activities/ConversationDividerActivity"));
9
11
  var _DirectLineActivityType = require("../../enums/DirectLineActivityType");
10
12
  var _DirectLineSenderRole = require("../../enums/DirectLineSenderRole");
11
13
  var _react = _interopRequireDefault(require("react"));
@@ -14,6 +16,10 @@ var _defaultSystemMessageStyles = require("./defaultStyles/defaultSystemMessageS
14
16
  var _defaultUserMessageStyles = require("./defaultStyles/defaultUserMessageStyles");
15
17
  var _utils = require("../../../../../common/utils");
16
18
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
19
+ 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); }
20
+ 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; }
21
+ /* eslint-disable @typescript-eslint/no-explicit-any */
22
+ /* eslint-disable react/display-name */
17
23
  /******
18
24
  * ActivityMiddleware
19
25
  *
@@ -24,6 +30,7 @@ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { de
24
30
  ******/
25
31
 
26
32
  const loggedSystemMessages = new Array();
33
+ let lastRenderedAt = 0; // Track last rendered receivedAt timestamp for deduplication
27
34
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
28
35
  const handleSystemMessage = (next, args, card, renderMarkdown, systemMessageStyleProps) => {
29
36
  var _card$activity, _card$activity$channe, _card$activity$channe2, _card$activity2, _card$activity2$chann, _card$activity3, _card$activity3$chann, _card$activity3$chann2, _card$activity4, _card$activity4$chann, _card$activity5, _card$activity5$chann, _card$nextVisibleActi, _card$nextVisibleActi2, _card$activity6, _card$activity6$chann, _card$activity7, _card$nextVisibleActi3, _card$activity8;
@@ -88,6 +95,43 @@ const createActivityMiddleware = (renderMarkdown, systemMessageStyleProps, userM
88
95
  if (isTagIncluded(card, _Constants.Constants.systemMessageTag)) {
89
96
  return handleSystemMessage(next, args, card, renderMarkdown, systemMessageStyleProps);
90
97
  }
98
+ if (isTagIncluded(card, _Constants.Constants.persistentChatHistoryMessagePullTriggerTag)) {
99
+ var _card$activity9, _card$activity9$chann, _card$activity9$chann2;
100
+ // Safety check: if this is a new chat session and flag is false, auto-correct it
101
+ if (!_LazyLoadActivity.LazyLoadHandler.hasMoreHistoryAvailable) {
102
+ _LazyLoadActivity.LazyLoadHandler.setHasMoreHistoryAvailable(true);
103
+ }
104
+ const receivedAt = card === null || card === void 0 ? void 0 : (_card$activity9 = card.activity) === null || _card$activity9 === void 0 ? void 0 : (_card$activity9$chann = _card$activity9.channelData) === null || _card$activity9$chann === void 0 ? void 0 : (_card$activity9$chann2 = _card$activity9$chann.webChat) === null || _card$activity9$chann2 === void 0 ? void 0 : _card$activity9$chann2.receivedAt;
105
+ if (receivedAt < lastRenderedAt) {
106
+ card.activity = null;
107
+ return () => false;
108
+ }
109
+ lastRenderedAt = receivedAt;
110
+
111
+ // Return a function that checks availability at render time
112
+ return () => {
113
+ // Double-check at render time in case history availability changed
114
+ if (!_LazyLoadActivity.LazyLoadHandler.hasMoreHistoryAvailable) {
115
+ return null;
116
+ }
117
+ return /*#__PURE__*/_react.default.createElement(_LazyLoadActivity.default, null);
118
+ };
119
+ }
120
+ if (isTagIncluded(card, _Constants.Constants.persistentChatHistoryMessageTag)) {
121
+ const userMessageStyles = {
122
+ ..._defaultUserMessageStyles.defaultUserMessageStyles,
123
+ ...userMessageStyleProps
124
+ };
125
+ return function () {
126
+ return /*#__PURE__*/_react.default.createElement("div", {
127
+ className: card.activity.from.role === _DirectLineSenderRole.DirectLineSenderRole.User ? _Constants.Constants.sentMessageClassName : _Constants.Constants.receivedMessageClassName,
128
+ style: userMessageStyles
129
+ }, next(...args)(...arguments));
130
+ };
131
+ }
132
+ if (isTagIncluded(card, _Constants.Constants.conversationDividerTag)) {
133
+ return /*#__PURE__*/_react.default.createElement(_ConversationDividerActivity.default, null);
134
+ }
91
135
  if (card.activity.text && card.activity.type === _DirectLineActivityType.DirectLineActivityType.Message) {
92
136
  if (!card.activity.channelData.isHtmlEncoded && card.activity.channelId === _Constants.Constants.webchatChannelId) {
93
137
  card.activity.text = (0, _utils.escapeHtml)(card.activity.text);
@@ -3,9 +3,10 @@
3
3
  Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
- exports.activityStatusMiddleware = void 0;
6
+ exports.createActivityStatusMiddleware = exports.activityStatusMiddleware = void 0;
7
7
  var _Constants = require("../../../../../common/Constants");
8
8
  var _DeliveredTimestamp = require("./timestamps/DeliveredTimestamp");
9
+ var _HistoryMessageTimestamp = require("./timestamps/HistoryMessageTimestamp");
9
10
  var _NotDeliveredTimestamp = require("./timestamps/NotDeliveredTimestamp");
10
11
  var _react = _interopRequireDefault(require("react"));
11
12
  var _SendStatus = require("../../enums/SendStatus");
@@ -32,6 +33,11 @@ const activityStatusMiddleware = () => next => args => {
32
33
  current_role = role,
33
34
  current_timestamp = timestamp;
34
35
  let sameTimestampGroupTemp = sameTimestampGroup;
36
+ if (tags !== null && tags !== void 0 && tags.includes(_Constants.Constants.persistentChatHistoryMessageTag)) {
37
+ return /*#__PURE__*/_react.default.createElement(_HistoryMessageTimestamp.HistoryMessageTimestamp, {
38
+ args: args
39
+ });
40
+ }
35
41
  if (args[_Constants.WebChatMiddlewareConstants.nextVisibleActivity]) {
36
42
  const {
37
43
  nextVisibleActivity: {
@@ -41,6 +47,7 @@ const activityStatusMiddleware = () => next => args => {
41
47
  timestamp
42
48
  }
43
49
  } = args;
50
+
44
51
  // eslint-disable-next-line @typescript-eslint/no-unused-vars
45
52
  const next_name = name,
46
53
  next_timestamp = timestamp;
@@ -68,4 +75,11 @@ const activityStatusMiddleware = () => next => args => {
68
75
  ;
69
76
  }
70
77
  };
71
- exports.activityStatusMiddleware = activityStatusMiddleware;
78
+
79
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
80
+ exports.activityStatusMiddleware = activityStatusMiddleware;
81
+ const createActivityStatusMiddleware = function () {
82
+ let locale = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : "en-us";
83
+ return activityStatusMiddleware;
84
+ };
85
+ exports.createActivityStatusMiddleware = createActivityStatusMiddleware;
@@ -0,0 +1,20 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.defaultInlineBannerStyle = void 0;
7
+ var _defaultSystemMessageStyles = require("./defaultSystemMessageStyles");
8
+ // Adjust the import path if necessary
9
+
10
+ const defaultInlineBannerStyle = {
11
+ ..._defaultSystemMessageStyles.defaultSystemMessageStyles,
12
+ visibility: "visible",
13
+ height: "20px",
14
+ display: "flex",
15
+ justifyContent: "center",
16
+ alignItems: "center",
17
+ margin: "5px 10px",
18
+ cursor: "pointer"
19
+ };
20
+ exports.defaultInlineBannerStyle = defaultInlineBannerStyle;
@@ -10,7 +10,7 @@ var _react2 = require("@fluentui/react");
10
10
  var _defaultMiddlewareLocalizedTexts = require("../../../../common/defaultProps/defaultMiddlewareLocalizedTexts");
11
11
  var _defaultTimestampContentStyles = require("../defaultStyles/defaultTimestampContentStyles");
12
12
  var _utils = require("../../../../../../common/utils");
13
- var _ = require("../../../../../..");
13
+ var _useChatContextStore = _interopRequireDefault(require("../../../../../../hooks/useChatContextStore"));
14
14
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
15
15
  /* eslint @typescript-eslint/no-explicit-any: "off" */
16
16
  const DeliveredTimestamp = _ref => {
@@ -20,7 +20,7 @@ const DeliveredTimestamp = _ref => {
20
20
  role,
21
21
  name
22
22
  } = _ref;
23
- const [state] = (0, _.useChatContextStore)();
23
+ const [state] = (0, _useChatContextStore.default)();
24
24
  const dir = ((_state$domainStates$r = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r === void 0 ? void 0 : _state$domainStates$r.timestampDir) ?? state.domainStates.globalDir;
25
25
  const contentStyles = {
26
26
  ..._defaultTimestampContentStyles.defaultTimestampContentStyles,
@@ -0,0 +1,59 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.HistoryMessageTimestamp = void 0;
7
+ var _react = _interopRequireDefault(require("react"));
8
+ var _react2 = require("@fluentui/react");
9
+ var _defaultMiddlewareLocalizedTexts = require("../../../../common/defaultProps/defaultMiddlewareLocalizedTexts");
10
+ var _defaultTimestampContentStyles = require("../defaultStyles/defaultTimestampContentStyles");
11
+ var _utils = require("../../../../../../common/utils");
12
+ var _useChatContextStore = _interopRequireDefault(require("../../../../../../hooks/useChatContextStore"));
13
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
14
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
15
+ const HistoryMessageTimestamp = _ref => {
16
+ var _state$domainStates$r, _state$domainStates$r2, _state$domainStates$m;
17
+ let {
18
+ args
19
+ } = _ref;
20
+ const [state] = (0, _useChatContextStore.default)();
21
+ const dir = ((_state$domainStates$r = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r === void 0 ? void 0 : _state$domainStates$r.timestampDir) ?? state.domainStates.globalDir;
22
+ const {
23
+ activity: {
24
+ timestamp,
25
+ from: {
26
+ name,
27
+ role
28
+ }
29
+ }
30
+ } = args;
31
+ const contentStyles = {
32
+ ..._defaultTimestampContentStyles.defaultTimestampContentStyles,
33
+ ...((_state$domainStates$r2 = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r2 === void 0 ? void 0 : _state$domainStates$r2.timestampContentStyleProps)
34
+ };
35
+ const getTimeElement = timestamp => {
36
+ const timeString = (0, _utils.getTimestampHourMinute)(timestamp);
37
+ const isAmPmFormat = timeString.toLowerCase().includes("am") || timeString.toLowerCase().includes("pm");
38
+ if (dir === "rtl" && isAmPmFormat) {
39
+ return /*#__PURE__*/_react.default.createElement("span", {
40
+ dir: "ltr"
41
+ }, timeString);
42
+ } else {
43
+ return /*#__PURE__*/_react.default.createElement("span", {
44
+ dir: dir
45
+ }, timeString);
46
+ }
47
+ };
48
+ return /*#__PURE__*/_react.default.createElement(_react2.Stack, {
49
+ style: contentStyles,
50
+ dir: dir
51
+ }, role === "bot" && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
52
+ dir: dir,
53
+ "aria-hidden": "false"
54
+ }, name, " : ", getTimeElement(timestamp))), role === "user" && /*#__PURE__*/_react.default.createElement(_react.default.Fragment, null, /*#__PURE__*/_react.default.createElement("span", {
55
+ "aria-hidden": "false",
56
+ dir: dir
57
+ }, " ", getTimeElement(timestamp), " - ", ((_state$domainStates$m = state.domainStates.middlewareLocalizedTexts) === null || _state$domainStates$m === void 0 ? void 0 : _state$domainStates$m.MIDDLEWARE_MESSAGE_DELIVERED) ?? _defaultMiddlewareLocalizedTexts.defaultMiddlewareLocalizedTexts.MIDDLEWARE_MESSAGE_DELIVERED), " "));
58
+ };
59
+ exports.HistoryMessageTimestamp = HistoryMessageTimestamp;
@@ -13,10 +13,11 @@ var _defaultTimestampFailedStyles = require("../defaultStyles/defaultTimestampFa
13
13
  var _defaultTimestampRetryStyles = require("../defaultStyles/defaultTimestampRetryStyles");
14
14
  var _utils = require("../../../../../../common/utils");
15
15
  var _botframeworkWebchat = require("botframework-webchat");
16
- var _ = require("../../../../../..");
16
+ var _useChatContextStore = _interopRequireDefault(require("../../../../../../hooks/useChatContextStore"));
17
+ function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
17
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); }
18
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; }
19
- /* eslint @typescript-eslint/no-explicit-any: "off" */
20
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
20
21
  const NotDeliveredTimestamp = _ref => {
21
22
  var _state$domainStates$r, _state$domainStates$r2, _state$domainStates$r3, _state$domainStates$r4, _state$domainStates$m, _state$domainStates$m2;
22
23
  let {
@@ -35,7 +36,7 @@ const NotDeliveredTimestamp = _ref => {
35
36
  const {
36
37
  timestamp
37
38
  } = activity;
38
- const [state] = (0, _.useChatContextStore)();
39
+ const [state] = (0, _useChatContextStore.default)();
39
40
  const dir = ((_state$domainStates$r = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r === void 0 ? void 0 : _state$domainStates$r.timestampDir) ?? state.domainStates.globalDir;
40
41
  const contentStyles = {
41
42
  ..._defaultTimestampContentStyles.defaultTimestampContentStyles,
@@ -8,12 +8,12 @@ var _react = _interopRequireDefault(require("react"));
8
8
  var _react2 = require("@fluentui/react");
9
9
  var _defaultMiddlewareLocalizedTexts = require("../../../../common/defaultProps/defaultMiddlewareLocalizedTexts");
10
10
  var _defaultTimestampContentStyles = require("../defaultStyles/defaultTimestampContentStyles");
11
- var _ = require("../../../../../..");
11
+ var _useChatContextStore = _interopRequireDefault(require("../../../../../../hooks/useChatContextStore"));
12
12
  function _interopRequireDefault(obj) { return obj && obj.__esModule ? obj : { default: obj }; }
13
13
  /* eslint @typescript-eslint/no-explicit-any: "off" */
14
14
  const SendingTimestamp = () => {
15
15
  var _state$domainStates$r, _state$domainStates$r2, _state$domainStates$m;
16
- const [state] = (0, _.useChatContextStore)();
16
+ const [state] = (0, _useChatContextStore.default)();
17
17
  const dir = ((_state$domainStates$r = state.domainStates.renderingMiddlewareProps) === null || _state$domainStates$r === void 0 ? void 0 : _state$domainStates$r.timestampDir) ?? state.domainStates.globalDir;
18
18
  const contentStyles = {
19
19
  ..._defaultTimestampContentStyles.defaultTimestampContentStyles,
@@ -38,6 +38,10 @@ _defineProperty(Constants, "botParticipantTypeTag", "Bot");
38
38
  _defineProperty(Constants, "channelIdKey", "ChannelId-");
39
39
  _defineProperty(Constants, "ChannelId", "lcw");
40
40
  _defineProperty(Constants, "CustomerTag", "FromCustomer");
41
+ // LCW only tags (Only applicable on client-side for additional processing, not recognized by service)
42
+ _defineProperty(Constants, "persistentChatHistoryMessageTag", "PersistentChatHistory");
43
+ _defineProperty(Constants, "persistentChatHistoryMessagePullTriggerTag", "PersistentChatHistoryMessagePullTrigger");
44
+ _defineProperty(Constants, "conversationDividerTag", "ConversationDivider");
41
45
  // gifUploadMiddleware
42
46
  _defineProperty(Constants, "GifContentType", "image/gif");
43
47
  // htmlPlayerMiddleware
@@ -481,6 +481,12 @@ export let FacadeChatSDK = /*#__PURE__*/function () {
481
481
  reconnectableChatsParams.authenticatedUserToken = this.token;
482
482
  return this.validateAndExecuteCall("getReconnectableChats", () => this.chatSDK.OCClient.getReconnectableChats(reconnectableChatsParams));
483
483
  }
484
+ }, {
485
+ key: "fetchPersistentConversationHistory",
486
+ value: async function fetchPersistentConversationHistory() {
487
+ let getPersistentChatHistoryOptionalParams = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
488
+ return this.validateAndExecuteCall("getPersistentChatHistory", () => this.chatSDK.getPersistentChatHistory(getPersistentChatHistoryOptionalParams));
489
+ }
484
490
  }]);
485
491
  return FacadeChatSDK;
486
492
  }();
@@ -68,9 +68,11 @@ export let BroadcastEvent;
68
68
  BroadcastEvent["OnWidgetError"] = "OnWidgetError";
69
69
  BroadcastEvent["FMLTrackingCompletedAck"] = "FMLTrackingCompletedAck";
70
70
  BroadcastEvent["FMLTrackingCompleted"] = "FMLTrackingCompleted";
71
+ BroadcastEvent["PersistentConversationReset"] = "PersistentConversationReset";
71
72
  })(BroadcastEvent || (BroadcastEvent = {}));
72
73
  export let TelemetryEvent;
73
74
  (function (TelemetryEvent) {
75
+ TelemetryEvent["FetchPersistentChatHistoryFailed"] = "FetchPersistentChatHistoryFailed";
74
76
  TelemetryEvent["CallAdded"] = "CallAdded";
75
77
  TelemetryEvent["LocalVideoStreamAdded"] = "LocalVideoStreamAdded";
76
78
  TelemetryEvent["LocalVideoStreamRemoved"] = "LocalVideoStreamRemoved";
@@ -282,6 +284,32 @@ export let TelemetryEvent;
282
284
  TelemetryEvent["UXLiveChatWidgetCompleted"] = "UXLiveChatWidgetCompleted";
283
285
  TelemetryEvent["AppInsightsInitialized"] = "AppInsightsInitialized";
284
286
  TelemetryEvent["AppInsightsInitFailed"] = "AppInsightsInitFailed";
287
+ TelemetryEvent["ConvertPersistentChatHistoryMessageToActivityFailed"] = "ConvertPersistentChatHistoryMessageToActivityFailed";
288
+ TelemetryEvent["UXLCWPersistentChatHistoryInitialized"] = "UXLCWPersistentChatHistoryInitialized";
289
+ TelemetryEvent["LCWPersistentChatHistoryFetchStarted"] = "LCWPersistentChatHistoryFetchStarted";
290
+ TelemetryEvent["LCWPersistentChatHistoryFetchCompleted"] = "LCWPersistentChatHistoryFetchCompleted";
291
+ TelemetryEvent["LCWPersistentChatHistoryFetchFailed"] = "LCWPersistentChatHistoryFetchFailed";
292
+ TelemetryEvent["LCWWebChatStorePollingStarted"] = "LCWWebChatStorePollingStarted";
293
+ TelemetryEvent["LCWWebChatStoreReady"] = "LCWWebChatStoreReady";
294
+ TelemetryEvent["LCWWebChatConnected"] = "LCWWebChatConnected";
295
+ TelemetryEvent["LCWWebChatDisconnected"] = "LCWWebChatDisconnected";
296
+ TelemetryEvent["LCWWebChatConnectionCheckFailed"] = "LCWWebChatConnectionCheckFailed";
297
+ TelemetryEvent["LCWPersistentConversationHandlerInitialized"] = "LCWPersistentConversationHandlerInitialized";
298
+ TelemetryEvent["LCWPersistentHistoryPullBlocked"] = "LCWPersistentHistoryPullBlocked";
299
+ TelemetryEvent["LCWPersistentHistoryPullCompleted"] = "LCWPersistentHistoryPullCompleted";
300
+ TelemetryEvent["LCWLazyLoadInitializationStarted"] = "LCWLazyLoadInitializationStarted";
301
+ TelemetryEvent["LCWLazyLoadContainerNotFound"] = "LCWLazyLoadContainerNotFound";
302
+ TelemetryEvent["LCWLazyLoadInitializationCompleted"] = "LCWLazyLoadInitializationCompleted";
303
+ TelemetryEvent["LCWLazyLoadSessionMetrics"] = "LCWLazyLoadSessionMetrics";
304
+ TelemetryEvent["LCWLazyLoadTargetElementNotFound"] = "LCWLazyLoadTargetElementNotFound";
305
+ TelemetryEvent["LCWLazyLoadScrollFailed"] = "LCWLazyLoadScrollFailed";
306
+ TelemetryEvent["LCWLazyLoadActivityMounted"] = "LCWLazyLoadActivityMounted";
307
+ TelemetryEvent["LCWLazyLoadReset"] = "LCWLazyLoadReset";
308
+ TelemetryEvent["LCWLazyLoadNoMoreHistory"] = "LCWLazyLoadNoMoreHistory";
309
+ TelemetryEvent["LCWLazyLoadDestroyed"] = "LCWLazyLoadDestroyed";
310
+ TelemetryEvent["SecureEventBusUnauthorizedDispatch"] = "SecureEventBusUnauthorizedDispatch";
311
+ TelemetryEvent["SecureEventBusListenerError"] = "SecureEventBusListenerError";
312
+ TelemetryEvent["SecureEventBusDispatchError"] = "SecureEventBusDispatchError";
285
313
  })(TelemetryEvent || (TelemetryEvent = {}));
286
314
  export let TelemetryConstants = /*#__PURE__*/function () {
287
315
  function TelemetryConstants() {
@@ -349,6 +377,9 @@ export let TelemetryConstants = /*#__PURE__*/function () {
349
377
  case TelemetryEvent.PostChatWorkflowFromAgent:
350
378
  case TelemetryEvent.PostChatWorkflowFromBot:
351
379
  case TelemetryEvent.AppStatesException:
380
+ case TelemetryEvent.SecureEventBusUnauthorizedDispatch:
381
+ case TelemetryEvent.SecureEventBusListenerError:
382
+ case TelemetryEvent.SecureEventBusDispatchError:
352
383
  return ScenarioType.ACTIONS;
353
384
  case TelemetryEvent.StartChatSDKCall:
354
385
  case TelemetryEvent.StartChatEventReceived: