@microsoft/omnichannel-chat-widget 1.7.8-main.29ce174 → 1.7.8-main.50111af

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 (95) hide show
  1. package/lib/cjs/common/Constants.js +57 -18
  2. package/lib/cjs/common/KeyCodes.js +6 -1
  3. package/lib/cjs/common/contextDataStore/DataStoreManager.js +6 -1
  4. package/lib/cjs/common/facades/FacadeChatSDK.js +385 -292
  5. package/lib/cjs/common/storage/default/defaultCacheManager.js +6 -3
  6. package/lib/cjs/common/telemetry/TelemetryConstants.js +137 -116
  7. package/lib/cjs/common/telemetry/TelemetryHelper.js +219 -181
  8. package/lib/cjs/common/telemetry/TelemetryManager.js +9 -2
  9. package/lib/cjs/components/chatbuttonstateful/ChatButtonStateful.js +4 -5
  10. package/lib/cjs/components/headerstateful/HeaderStateful.js +3 -5
  11. package/lib/cjs/components/livechatwidget/common/ActivityStreamHandler.js +32 -19
  12. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +71 -56
  13. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +17 -8
  14. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber.js +65 -52
  15. package/lib/cjs/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +31 -18
  16. package/lib/cjs/components/livechatwidget/common/ChatAdapterShim.js +14 -6
  17. package/lib/cjs/components/livechatwidget/common/Deferred.js +14 -6
  18. package/lib/cjs/components/livechatwidget/common/chatDisconnectHelper.js +3 -1
  19. package/lib/cjs/components/livechatwidget/common/endChat.js +4 -18
  20. package/lib/cjs/components/livechatwidget/common/reconnectChatHelper.js +0 -5
  21. package/lib/cjs/components/livechatwidget/common/startChat.js +2 -23
  22. package/lib/cjs/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +3 -3
  23. package/lib/cjs/components/ooohpanestateful/OOOHPaneStateful.js +6 -4
  24. package/lib/cjs/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +7 -6
  25. package/lib/cjs/components/webchatcontainerstateful/WebChatContainerStateful.js +4 -3
  26. package/lib/cjs/components/webchatcontainerstateful/common/DemoChatAdapter.js +88 -65
  27. package/lib/cjs/components/webchatcontainerstateful/common/DemoChatSDK.js +26 -7
  28. package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatAdapter.js +49 -26
  29. package/lib/cjs/components/webchatcontainerstateful/common/DesignerChatSDK.js +57 -35
  30. package/lib/cjs/components/webchatcontainerstateful/common/mockadapter.js +62 -52
  31. package/lib/cjs/components/webchatcontainerstateful/common/mockchatsdk.js +95 -61
  32. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +6 -1
  33. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +6 -1
  34. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/markdownrenderers/HyperlinkTextOverrideRenderer.js +53 -39
  35. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +4 -0
  36. package/lib/cjs/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +88 -60
  37. package/lib/cjs/contexts/common/LiveChatWidgetContextInitialState.js +18 -6
  38. package/lib/cjs/firstresponselatency/Constants.js +13 -0
  39. package/lib/cjs/firstresponselatency/FirstMessageTrackerFromBot.js +118 -0
  40. package/lib/cjs/firstresponselatency/FirstResponseLatencyTracker.js +201 -0
  41. package/lib/cjs/firstresponselatency/util.js +98 -0
  42. package/lib/cjs/plugins/createChatTranscript.js +88 -58
  43. package/lib/cjs/plugins/newMessageEventHandler.js +102 -88
  44. package/lib/esm/common/Constants.js +57 -18
  45. package/lib/esm/common/KeyCodes.js +6 -1
  46. package/lib/esm/common/contextDataStore/DataStoreManager.js +6 -1
  47. package/lib/esm/common/facades/FacadeChatSDK.js +385 -292
  48. package/lib/esm/common/storage/default/defaultCacheManager.js +6 -1
  49. package/lib/esm/common/telemetry/TelemetryConstants.js +137 -116
  50. package/lib/esm/common/telemetry/TelemetryHelper.js +219 -181
  51. package/lib/esm/common/telemetry/TelemetryManager.js +9 -2
  52. package/lib/esm/components/chatbuttonstateful/ChatButtonStateful.js +4 -5
  53. package/lib/esm/components/headerstateful/HeaderStateful.js +3 -5
  54. package/lib/esm/components/livechatwidget/common/ActivityStreamHandler.js +32 -19
  55. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/BotAuthActivitySubscriber.js +71 -56
  56. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/DefaultActivitySubscriber.js +17 -8
  57. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/HiddenAdaptiveCardActivitySubscriber.js +65 -52
  58. package/lib/esm/components/livechatwidget/common/ActivitySubscriber/PauseActivitySubscriber.js +31 -18
  59. package/lib/esm/components/livechatwidget/common/ChatAdapterShim.js +14 -6
  60. package/lib/esm/components/livechatwidget/common/Deferred.js +14 -6
  61. package/lib/esm/components/livechatwidget/common/chatDisconnectHelper.js +3 -1
  62. package/lib/esm/components/livechatwidget/common/endChat.js +4 -18
  63. package/lib/esm/components/livechatwidget/common/reconnectChatHelper.js +1 -6
  64. package/lib/esm/components/livechatwidget/common/startChat.js +3 -24
  65. package/lib/esm/components/livechatwidget/livechatwidgetstateful/LiveChatWidgetStateful.js +3 -3
  66. package/lib/esm/components/ooohpanestateful/OOOHPaneStateful.js +6 -4
  67. package/lib/esm/components/postchatsurveypanestateful/PostChatSurveyPaneStateful.js +7 -6
  68. package/lib/esm/components/webchatcontainerstateful/WebChatContainerStateful.js +4 -3
  69. package/lib/esm/components/webchatcontainerstateful/common/DemoChatAdapter.js +88 -65
  70. package/lib/esm/components/webchatcontainerstateful/common/DemoChatSDK.js +26 -7
  71. package/lib/esm/components/webchatcontainerstateful/common/DesignerChatAdapter.js +49 -26
  72. package/lib/esm/components/webchatcontainerstateful/common/DesignerChatSDK.js +57 -35
  73. package/lib/esm/components/webchatcontainerstateful/common/mockadapter.js +63 -52
  74. package/lib/esm/components/webchatcontainerstateful/common/mockchatsdk.js +95 -61
  75. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/BotMagicCodeStore.js +6 -1
  76. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/WebChatStoreLoader.js +6 -1
  77. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/markdownrenderers/HyperlinkTextOverrideRenderer.js +53 -39
  78. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/middlewares/renderingmiddlewares/timestamps/DeliveredTimestamp.js +4 -0
  79. package/lib/esm/components/webchatcontainerstateful/webchatcontroller/notification/NotificationHandler.js +88 -60
  80. package/lib/esm/contexts/common/LiveChatWidgetContextInitialState.js +18 -6
  81. package/lib/esm/firstresponselatency/Constants.js +6 -0
  82. package/lib/esm/firstresponselatency/FirstMessageTrackerFromBot.js +112 -0
  83. package/lib/esm/firstresponselatency/FirstResponseLatencyTracker.js +194 -0
  84. package/lib/esm/firstresponselatency/util.js +87 -0
  85. package/lib/esm/plugins/createChatTranscript.js +88 -58
  86. package/lib/esm/plugins/newMessageEventHandler.js +100 -86
  87. package/lib/types/common/facades/FacadeChatSDK.d.ts +1 -0
  88. package/lib/types/common/telemetry/TelemetryConstants.d.ts +8 -1
  89. package/lib/types/components/webchatcontainerstateful/interfaces/IWebChatProps.d.ts +2 -2
  90. package/lib/types/contexts/common/ILiveChatWidgetContext.d.ts +1 -1
  91. package/lib/types/firstresponselatency/Constants.d.ts +30 -0
  92. package/lib/types/firstresponselatency/FirstMessageTrackerFromBot.d.ts +1 -0
  93. package/lib/types/firstresponselatency/FirstResponseLatencyTracker.d.ts +22 -0
  94. package/lib/types/firstresponselatency/util.d.ts +7 -0
  95. package/package.json +18 -6
@@ -1,3 +1,6 @@
1
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
3
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
1
4
  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; }
2
5
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
6
  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); }
@@ -7,8 +10,9 @@ import { ConnectionStatus } from "botframework-directlinejs";
7
10
  import { BehaviorSubject } from "rxjs";
8
11
  import { Observable } from "rxjs/Observable";
9
12
  import { uuidv4 } from "@microsoft/omnichannel-chat-sdk";
10
- export default class MockAdapter {
11
- constructor() {
13
+ let MockAdapter = /*#__PURE__*/function () {
14
+ function MockAdapter() {
15
+ _classCallCheck(this, MockAdapter);
12
16
  _defineProperty(this, "activityObserver", void 0);
13
17
  _defineProperty(this, "activity$", void 0);
14
18
  _defineProperty(this, "connectionStatus$", new BehaviorSubject(ConnectionStatus.Uninitialized));
@@ -27,56 +31,63 @@ export default class MockAdapter {
27
31
  });
28
32
  }).share();
29
33
  }
30
- postActivity(activity) {
31
- if (activity) {
32
- var _activity$text;
33
- let modActivity;
34
- let typingActivity;
35
- const userId = "userId",
36
- botId = "botId";
37
- if ((_activity$text = activity.text) !== null && _activity$text !== void 0 && _activity$text.startsWith(":")) {
38
- var _this$activityObserve, _this$activityObserve2;
39
- modActivity = {
40
- ...activity,
41
- id: uuidv4(),
42
- from: {
43
- ...activity.from,
44
- id: botId,
45
- name: "Bot",
46
- role: "bot"
47
- },
48
- text: activity.text.substr(1)
49
- };
50
- typingActivity = {
51
- id: uuidv4(),
52
- from: {
34
+ _createClass(MockAdapter, [{
35
+ key: "postActivity",
36
+ value: function postActivity(activity) {
37
+ if (activity) {
38
+ var _activity$text;
39
+ let modActivity;
40
+ let typingActivity;
41
+ const userId = "userId",
42
+ botId = "botId";
43
+ if ((_activity$text = activity.text) !== null && _activity$text !== void 0 && _activity$text.startsWith(":")) {
44
+ var _this$activityObserve, _this$activityObserve2;
45
+ modActivity = {
46
+ ...activity,
53
47
  id: uuidv4(),
54
- name: "Bot",
55
- role: "bot"
56
- },
57
- type: "typing"
58
- };
59
- (_this$activityObserve = this.activityObserver) === null || _this$activityObserve === void 0 ? void 0 : _this$activityObserve.next(modActivity); // mock echo message
60
- (_this$activityObserve2 = this.activityObserver) === null || _this$activityObserve2 === void 0 ? void 0 : _this$activityObserve2.next(typingActivity); // mock typing
61
- } else {
62
- var _this$activityObserve3;
63
- modActivity = {
64
- ...activity,
65
- id: uuidv4(),
66
- from: {
67
- ...activity.from,
68
- id: userId,
69
- name: "User",
70
- role: "user"
71
- }
72
- };
73
- (_this$activityObserve3 = this.activityObserver) === null || _this$activityObserve3 === void 0 ? void 0 : _this$activityObserve3.next(modActivity); // mock message sent
48
+ from: {
49
+ ...activity.from,
50
+ id: botId,
51
+ name: "Bot",
52
+ role: "bot"
53
+ },
54
+ text: activity.text.substr(1)
55
+ };
56
+ typingActivity = {
57
+ id: uuidv4(),
58
+ from: {
59
+ id: uuidv4(),
60
+ name: "Bot",
61
+ role: "bot"
62
+ },
63
+ type: "typing"
64
+ };
65
+ (_this$activityObserve = this.activityObserver) === null || _this$activityObserve === void 0 ? void 0 : _this$activityObserve.next(modActivity); // mock echo message
66
+ (_this$activityObserve2 = this.activityObserver) === null || _this$activityObserve2 === void 0 ? void 0 : _this$activityObserve2.next(typingActivity); // mock typing
67
+ } else {
68
+ var _this$activityObserve3;
69
+ modActivity = {
70
+ ...activity,
71
+ id: uuidv4(),
72
+ from: {
73
+ ...activity.from,
74
+ id: userId,
75
+ name: "User",
76
+ role: "user"
77
+ }
78
+ };
79
+ (_this$activityObserve3 = this.activityObserver) === null || _this$activityObserve3 === void 0 ? void 0 : _this$activityObserve3.next(modActivity); // mock message sent
80
+ }
74
81
  }
75
- }
76
82
 
77
- return Observable.of(activity.id || "");
78
- }
79
- end() {
80
- return;
81
- }
82
- }
83
+ return Observable.of(activity.id || "");
84
+ }
85
+ }, {
86
+ key: "end",
87
+ value: function end() {
88
+ return;
89
+ }
90
+ }]);
91
+ return MockAdapter;
92
+ }();
93
+ export { MockAdapter as default };
@@ -1,10 +1,14 @@
1
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
3
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
1
4
  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; }
2
5
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
6
  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); }
4
7
  import MockAdapter from "./mockadapter";
5
8
  import { ParticipantType } from "../../../common/Constants";
6
- export class MockChatSDK {
7
- constructor() {
9
+ export let MockChatSDK = /*#__PURE__*/function () {
10
+ function MockChatSDK() {
11
+ _classCallCheck(this, MockChatSDK);
8
12
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
9
13
  _defineProperty(this, "sleep", ms => new Promise(r => setTimeout(r, ms)));
10
14
  _defineProperty(this, "isMockModeOn", true);
@@ -14,63 +18,93 @@ export class MockChatSDK {
14
18
  orgUrl: "https://contoso.crm.dynamics.com"
15
19
  });
16
20
  }
17
- async initialize() {
18
- return this.getLiveChatConfig();
19
- }
20
- async startChat() {
21
- await this.sleep(1000);
22
- }
23
- endChat() {
24
- return null;
25
- }
26
- getChatToken() {
27
- return null;
28
- }
29
- createChatAdapter() {
30
- return new MockAdapter();
31
- }
21
+ _createClass(MockChatSDK, [{
22
+ key: "initialize",
23
+ value: async function initialize() {
24
+ return this.getLiveChatConfig();
25
+ }
26
+ }, {
27
+ key: "startChat",
28
+ value: async function startChat() {
29
+ await this.sleep(1000);
30
+ }
31
+ }, {
32
+ key: "endChat",
33
+ value: function endChat() {
34
+ return null;
35
+ }
36
+ }, {
37
+ key: "getChatToken",
38
+ value: function getChatToken() {
39
+ return null;
40
+ }
41
+ }, {
42
+ key: "createChatAdapter",
43
+ value: function createChatAdapter() {
44
+ return new MockAdapter();
45
+ }
32
46
 
33
- // eslint-disable-next-line @typescript-eslint/no-unused-vars
34
- getPreChatSurvey(parseToJson) {
35
- return "";
36
- }
37
- getConversationDetails() {
38
- return {
39
- State: "Active",
40
- conversationId: "",
41
- canRenderPostChat: "",
42
- participantType: ParticipantType.User
43
- };
44
- }
45
- getCurrentLiveChatContext() {
46
- return {
47
- chatToken: {},
48
- requestId: ""
49
- };
50
- }
51
- onNewMessage() {
52
- return null;
53
- }
54
- getChatReconnectContext() {
55
- return {
56
- reconnectId: "123"
57
- };
58
- }
59
- getVoiceVideoCalling() {
60
- return null;
61
- }
62
- setAuthTokenProvider() {
63
- return null;
64
- }
65
- getLiveChatConfig() {
66
- return {
67
- LiveWSAndLiveChatEngJoin: {
68
- msdyn_postconversationsurveyenable: "true",
69
- msdyn_conversationmode: "192350000"
70
- }
71
- };
72
- }
73
- sendTypingEvent() {
74
- return null;
75
- }
76
- }
47
+ // eslint-disable-next-line @typescript-eslint/no-unused-vars
48
+ }, {
49
+ key: "getPreChatSurvey",
50
+ value: function getPreChatSurvey(parseToJson) {
51
+ return "";
52
+ }
53
+ }, {
54
+ key: "getConversationDetails",
55
+ value: function getConversationDetails() {
56
+ return {
57
+ State: "Active",
58
+ conversationId: "",
59
+ canRenderPostChat: "",
60
+ participantType: ParticipantType.User
61
+ };
62
+ }
63
+ }, {
64
+ key: "getCurrentLiveChatContext",
65
+ value: function getCurrentLiveChatContext() {
66
+ return {
67
+ chatToken: {},
68
+ requestId: ""
69
+ };
70
+ }
71
+ }, {
72
+ key: "onNewMessage",
73
+ value: function onNewMessage() {
74
+ return null;
75
+ }
76
+ }, {
77
+ key: "getChatReconnectContext",
78
+ value: function getChatReconnectContext() {
79
+ return {
80
+ reconnectId: "123"
81
+ };
82
+ }
83
+ }, {
84
+ key: "getVoiceVideoCalling",
85
+ value: function getVoiceVideoCalling() {
86
+ return null;
87
+ }
88
+ }, {
89
+ key: "setAuthTokenProvider",
90
+ value: function setAuthTokenProvider() {
91
+ return null;
92
+ }
93
+ }, {
94
+ key: "getLiveChatConfig",
95
+ value: function getLiveChatConfig() {
96
+ return {
97
+ LiveWSAndLiveChatEngJoin: {
98
+ msdyn_postconversationsurveyenable: "true",
99
+ msdyn_conversationmode: "192350000"
100
+ }
101
+ };
102
+ }
103
+ }, {
104
+ key: "sendTypingEvent",
105
+ value: function sendTypingEvent() {
106
+ return null;
107
+ }
108
+ }]);
109
+ return MockChatSDK;
110
+ }();
@@ -1,5 +1,10 @@
1
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
2
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
3
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1
4
  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; }
2
5
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
6
  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); }
4
- export class BotMagicCodeStore {}
7
+ export let BotMagicCodeStore = /*#__PURE__*/_createClass(function BotMagicCodeStore() {
8
+ _classCallCheck(this, BotMagicCodeStore);
9
+ });
5
10
  _defineProperty(BotMagicCodeStore, "botOAuthSignInId", "");
@@ -1,6 +1,11 @@
1
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
2
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
3
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
1
4
  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; }
2
5
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
6
  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); }
4
- export class WebChatStoreLoader {}
7
+ export let WebChatStoreLoader = /*#__PURE__*/_createClass(function WebChatStoreLoader() {
8
+ _classCallCheck(this, WebChatStoreLoader);
9
+ });
5
10
  // eslint-disable-next-line @typescript-eslint/no-explicit-any
6
11
  _defineProperty(WebChatStoreLoader, "store", void 0);
@@ -1,56 +1,70 @@
1
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
3
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
1
4
  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; }
2
5
  function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
3
6
  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); }
4
7
  import DOMPurify from "dompurify";
5
8
  import { HtmlAttributeNames } from "../../../../common/Constants";
6
- class HyperlinkTextOverrideRenderer {
7
- constructor(hyperlinkTextOverride) {
9
+ let HyperlinkTextOverrideRenderer = /*#__PURE__*/function () {
10
+ function HyperlinkTextOverrideRenderer(hyperlinkTextOverride) {
11
+ _classCallCheck(this, HyperlinkTextOverrideRenderer);
8
12
  _defineProperty(this, "hyperlinkTextOverride", void 0);
9
13
  this.hyperlinkTextOverride = hyperlinkTextOverride;
10
14
  }
11
- convertTextToHtmlNode(text) {
12
- const htmlNode = document.createElement(HtmlAttributeNames.div);
13
- try {
14
- text = DOMPurify.sanitize(text, {
15
- ADD_ATTR: ["target"]
16
- });
17
- htmlNode.innerHTML = text;
18
- } catch {
15
+ _createClass(HyperlinkTextOverrideRenderer, [{
16
+ key: "convertTextToHtmlNode",
17
+ value: function convertTextToHtmlNode(text) {
18
+ const htmlNode = document.createElement(HtmlAttributeNames.div);
19
+ try {
20
+ text = DOMPurify.sanitize(text, {
21
+ ADD_ATTR: ["target"]
22
+ });
23
+ htmlNode.innerHTML = text;
24
+ } catch {
25
+ return htmlNode;
26
+ }
19
27
  return htmlNode;
20
28
  }
21
- return htmlNode;
22
- }
23
- processANode(htmlNode) {
24
- // eslint-disable-line @typescript-eslint/no-explicit-any
25
- const aTags = htmlNode.getElementsByTagName(HtmlAttributeNames.aTagName);
26
- for (let index = 0; index < aTags.length; index++) {
27
- const aNode = aTags[index];
28
- if (!aNode || !aNode.tagName || aNode.tagName.toLowerCase() !== HtmlAttributeNames.aTagName || !aNode.href) continue;
29
- if (aNode.href !== aNode.text.trim()) {
30
- aNode.text = aNode.href;
29
+ }, {
30
+ key: "processANode",
31
+ value: function processANode(htmlNode) {
32
+ // eslint-disable-line @typescript-eslint/no-explicit-any
33
+ const aTags = htmlNode.getElementsByTagName(HtmlAttributeNames.aTagName);
34
+ for (let index = 0; index < aTags.length; index++) {
35
+ const aNode = aTags[index];
36
+ if (!aNode || !aNode.tagName || aNode.tagName.toLowerCase() !== HtmlAttributeNames.aTagName || !aNode.href) continue;
37
+ if (aNode.href !== aNode.text.trim()) {
38
+ aNode.text = aNode.href;
39
+ }
31
40
  }
32
41
  }
33
- }
34
- applicable(text) {
35
- if (!this.hyperlinkTextOverride) {
36
- return false;
42
+ }, {
43
+ key: "applicable",
44
+ value: function applicable(text) {
45
+ if (!this.hyperlinkTextOverride) {
46
+ return false;
47
+ }
48
+ try {
49
+ const htmlNode = this.convertTextToHtmlNode(text);
50
+ const aNodes = htmlNode.getElementsByTagName(HtmlAttributeNames.aTagName);
51
+ return !!aNodes && aNodes.length && aNodes.length > 0;
52
+ } catch {
53
+ return false;
54
+ }
37
55
  }
38
- try {
56
+ }, {
57
+ key: "render",
58
+ value: function render(text) {
59
+ if (!this.applicable(text)) {
60
+ return text;
61
+ }
39
62
  const htmlNode = this.convertTextToHtmlNode(text);
40
- const aNodes = htmlNode.getElementsByTagName(HtmlAttributeNames.aTagName);
41
- return !!aNodes && aNodes.length && aNodes.length > 0;
42
- } catch {
43
- return false;
44
- }
45
- }
46
- render(text) {
47
- if (!this.applicable(text)) {
63
+ this.processANode(htmlNode);
64
+ text = htmlNode.innerHTML;
48
65
  return text;
49
66
  }
50
- const htmlNode = this.convertTextToHtmlNode(text);
51
- this.processANode(htmlNode);
52
- text = htmlNode.innerHTML;
53
- return text;
54
- }
55
- }
67
+ }]);
68
+ return HyperlinkTextOverrideRenderer;
69
+ }();
56
70
  export default HyperlinkTextOverrideRenderer;
@@ -35,6 +35,10 @@ export const DeliveredTimestamp = _ref => {
35
35
  return /*#__PURE__*/React.createElement("span", {
36
36
  dir: "ltr"
37
37
  }, getTimestampHourMinute(timestamp));
38
+ } else {
39
+ return /*#__PURE__*/React.createElement("span", {
40
+ dir: dir
41
+ }, getTimestampHourMinute(timestamp));
38
42
  }
39
43
  return timeString;
40
44
  };
@@ -1,3 +1,8 @@
1
+ function _classCallCheck(instance, Constructor) { if (!(instance instanceof Constructor)) { throw new TypeError("Cannot call a class as a function"); } }
2
+ function _defineProperties(target, props) { for (var i = 0; i < props.length; i++) { var descriptor = props[i]; descriptor.enumerable = descriptor.enumerable || false; descriptor.configurable = true; if ("value" in descriptor) descriptor.writable = true; Object.defineProperty(target, _toPropertyKey(descriptor.key), descriptor); } }
3
+ function _createClass(Constructor, protoProps, staticProps) { if (protoProps) _defineProperties(Constructor.prototype, protoProps); if (staticProps) _defineProperties(Constructor, staticProps); Object.defineProperty(Constructor, "prototype", { writable: false }); return Constructor; }
4
+ function _toPropertyKey(arg) { var key = _toPrimitive(arg, "string"); return typeof key === "symbol" ? key : String(key); }
5
+ 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); }
1
6
  import { HtmlClassNames, HtmlIdNames } from "../../../../common/Constants";
2
7
  import { NotificationLevel } from "../enums/NotificationLevel";
3
8
  import { WebChatActionType } from "../enums/WebChatActionType";
@@ -5,73 +10,96 @@ import { WebChatStoreLoader } from "../WebChatStoreLoader";
5
10
  import { setFocusOnSendBox } from "../../../../common/utils";
6
11
  import { BroadcastService } from "@microsoft/omnichannel-chat-components";
7
12
  import { BroadcastEvent } from "../../../../common/telemetry/TelemetryConstants";
8
- export class NotificationHandler {
9
- static notify(id, level, message) {
10
- if (WebChatStoreLoader.store) {
11
- WebChatStoreLoader.store.dispatch({
12
- type: WebChatActionType.WEB_CHAT_SET_NOTIFICATION,
13
- payload: {
14
- id,
15
- level,
16
- message
17
- }
18
- });
19
- NotificationHandler.setFocusOnNotificationCloseButton();
20
- }
13
+ export let NotificationHandler = /*#__PURE__*/function () {
14
+ function NotificationHandler() {
15
+ _classCallCheck(this, NotificationHandler);
21
16
  }
22
- static dismissNotification(id) {
23
- if (WebChatStoreLoader.store) {
24
- WebChatStoreLoader.store.dispatch({
25
- type: WebChatActionType.WEB_CHAT_DISMISS_NOTIFICATION,
17
+ _createClass(NotificationHandler, null, [{
18
+ key: "notify",
19
+ value: function notify(id, level, message) {
20
+ if (WebChatStoreLoader.store) {
21
+ WebChatStoreLoader.store.dispatch({
22
+ type: WebChatActionType.WEB_CHAT_SET_NOTIFICATION,
23
+ payload: {
24
+ id,
25
+ level,
26
+ message
27
+ }
28
+ });
29
+ NotificationHandler.setFocusOnNotificationCloseButton();
30
+ }
31
+ }
32
+ }, {
33
+ key: "dismissNotification",
34
+ value: function dismissNotification(id) {
35
+ if (WebChatStoreLoader.store) {
36
+ WebChatStoreLoader.store.dispatch({
37
+ type: WebChatActionType.WEB_CHAT_DISMISS_NOTIFICATION,
38
+ payload: {
39
+ id
40
+ }
41
+ });
42
+ }
43
+ }
44
+ }, {
45
+ key: "notifyError",
46
+ value: function notifyError(id, message) {
47
+ BroadcastService.postMessage({
48
+ eventName: BroadcastEvent.OnWidgetError,
26
49
  payload: {
27
- id
50
+ errorMessage: message
28
51
  }
29
52
  });
53
+ this.notify(id, NotificationLevel.Error, message);
30
54
  }
31
- }
32
- static notifyError(id, message) {
33
- BroadcastService.postMessage({
34
- eventName: BroadcastEvent.OnWidgetError,
35
- payload: {
36
- errorMessage: message
55
+ }, {
56
+ key: "notifyWarning",
57
+ value: function notifyWarning(id, message) {
58
+ this.notify(id, NotificationLevel.Warning, message);
59
+ }
60
+ }, {
61
+ key: "notifyInfo",
62
+ value: function notifyInfo(id, message) {
63
+ this.notify(id, NotificationLevel.Info, message);
64
+ }
65
+ }, {
66
+ key: "notifySuccess",
67
+ value: function notifySuccess(id, message) {
68
+ this.notify(id, NotificationLevel.Success, message);
69
+ }
70
+ }, {
71
+ key: "notifyWithLevel",
72
+ value: function notifyWithLevel(id, message, level) {
73
+ if (!level) {
74
+ this.notifyInfo(id, message);
75
+ } else {
76
+ this.notify(id, level, message);
37
77
  }
38
- });
39
- this.notify(id, NotificationLevel.Error, message);
40
- }
41
- static notifyWarning(id, message) {
42
- this.notify(id, NotificationLevel.Warning, message);
43
- }
44
- static notifyInfo(id, message) {
45
- this.notify(id, NotificationLevel.Info, message);
46
- }
47
- static notifySuccess(id, message) {
48
- this.notify(id, NotificationLevel.Success, message);
49
- }
50
- static notifyWithLevel(id, message, level) {
51
- if (!level) {
52
- this.notifyInfo(id, message);
53
- } else {
54
- this.notify(id, level, message);
55
78
  }
56
- }
57
79
 
58
- /* Bypass WebChat behavior and focus on banner close button */
59
- static setFocusOnNotificationCloseButton() {
60
- const expandButton = document.querySelector(`#${HtmlIdNames.MSLiveChatWidget} .${HtmlClassNames.webChatBannerExpandButton}`);
61
- if (expandButton) {
62
- expandButton.focus();
63
- return;
80
+ /* Bypass WebChat behavior and focus on banner close button */
81
+ }, {
82
+ key: "setFocusOnNotificationCloseButton",
83
+ value: function setFocusOnNotificationCloseButton() {
84
+ const expandButton = document.querySelector(`#${HtmlIdNames.MSLiveChatWidget} .${HtmlClassNames.webChatBannerExpandButton}`);
85
+ if (expandButton) {
86
+ expandButton.focus();
87
+ return;
88
+ }
89
+ const closeButton = document.querySelector(`#${HtmlIdNames.MSLiveChatWidget} .${HtmlClassNames.webChatBannerCloseButton}`);
90
+ if (closeButton) {
91
+ closeButton.focus();
92
+ NotificationHandler.registerOnCloseEvent(closeButton);
93
+ return;
94
+ }
64
95
  }
65
- const closeButton = document.querySelector(`#${HtmlIdNames.MSLiveChatWidget} .${HtmlClassNames.webChatBannerCloseButton}`);
66
- if (closeButton) {
67
- closeButton.focus();
68
- NotificationHandler.registerOnCloseEvent(closeButton);
69
- return;
96
+ }, {
97
+ key: "registerOnCloseEvent",
98
+ value: function registerOnCloseEvent(button) {
99
+ button.onclick = () => {
100
+ setFocusOnSendBox();
101
+ };
70
102
  }
71
- }
72
- static registerOnCloseEvent(button) {
73
- button.onclick = () => {
74
- setFocusOnSendBox();
75
- };
76
- }
77
- }
103
+ }]);
104
+ return NotificationHandler;
105
+ }();