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