@xapp/chat-widget 1.65.9 → 1.67.0
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/dist/components/ChatMessage/ChatMessage.d.ts +0 -0
- package/dist/components/ChatScheduleWidget/ChatScheduleWidget.d.ts +0 -0
- package/dist/components/ChatScheduleWidget/index.d.ts +0 -0
- package/dist/components/MessageList/MessageList.d.ts +0 -0
- package/dist/config/config.d.ts +0 -0
- package/dist/index.css +2 -2
- package/dist/index.es.js +53 -7
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +53 -7
- package/dist/index.js.map +1 -1
- package/dist/xapp-chat-widget.css +2 -2
- package/dist/xapp-chat-widget.js +4 -4
- package/dist/xapp-chat-widget.js.map +1 -1
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -27,6 +27,7 @@ var defaultServerUrl = "";
|
|
|
27
27
|
var defaultWidgetButtonWidth = "48";
|
|
28
28
|
var defaultMobileWidgetButtonWidth = "30";
|
|
29
29
|
var defaultNonMobileScreenWidth = "400";
|
|
30
|
+
var scheduleWidgetUrl = "ScheduleButton";
|
|
30
31
|
var ChatConfigContext = React$1.createContext(null);
|
|
31
32
|
function useWidgetEnv() {
|
|
32
33
|
var ctx = React$1.useContext(ChatConfigContext);
|
|
@@ -889,9 +890,37 @@ function setVisualStatus(status) {
|
|
|
889
890
|
}
|
|
890
891
|
|
|
891
892
|
function execute(url, dispatch, visuals, behavior) {
|
|
893
|
+
var _a, _b;
|
|
892
894
|
if (!dispatch || !visuals) {
|
|
893
895
|
throw new Error("OpenUrl: No dispatch and/or visual.");
|
|
894
896
|
}
|
|
897
|
+
if (url === scheduleWidgetUrl) {
|
|
898
|
+
// It's actually toggle
|
|
899
|
+
var toggleForm = (_a = window.xafwControl) === null || _a === void 0 ? void 0 : _a.openForm;
|
|
900
|
+
if (!toggleForm) {
|
|
901
|
+
err("Cannot find toggleForm! Update form widget!");
|
|
902
|
+
return;
|
|
903
|
+
}
|
|
904
|
+
var isFormActive = false;
|
|
905
|
+
var formStatus = (_b = window.xafwControl) === null || _b === void 0 ? void 0 : _b.formStatus;
|
|
906
|
+
if (formStatus) {
|
|
907
|
+
var formVisuals = formStatus();
|
|
908
|
+
isFormActive = formVisuals.active;
|
|
909
|
+
}
|
|
910
|
+
else {
|
|
911
|
+
err("Cannot find formStatus! Update form widget!");
|
|
912
|
+
}
|
|
913
|
+
// If form is active and we are here, then both widgets are active. Do nothing. Let the user X out the widgets.
|
|
914
|
+
if (!isFormActive) {
|
|
915
|
+
toggleForm();
|
|
916
|
+
if (visuals.opened) {
|
|
917
|
+
dispatch(setVisualStatus({
|
|
918
|
+
opened: false
|
|
919
|
+
}));
|
|
920
|
+
}
|
|
921
|
+
}
|
|
922
|
+
return;
|
|
923
|
+
}
|
|
895
924
|
// Attempt to add query string to the url
|
|
896
925
|
// if the query string already exists, it will not be added
|
|
897
926
|
try {
|
|
@@ -7731,6 +7760,20 @@ var ChatTextMessage = function (props) {
|
|
|
7731
7760
|
React__default$1["default"].createElement("span", null, message.msg.text)))));
|
|
7732
7761
|
};
|
|
7733
7762
|
|
|
7763
|
+
var ChatScheduleWidget = function (props) {
|
|
7764
|
+
var display = props.display;
|
|
7765
|
+
var chatDispatch = useChatDispatch();
|
|
7766
|
+
var visuals = reactRedux.useSelector(function (state) { return state.visuals; });
|
|
7767
|
+
var openUrl = useOpenUrlCallback();
|
|
7768
|
+
function handleClick() {
|
|
7769
|
+
openUrl(scheduleWidgetUrl, chatDispatch, visuals);
|
|
7770
|
+
}
|
|
7771
|
+
return (React__default$1["default"].createElement("div", { className: "chat-schedule-button-container" },
|
|
7772
|
+
React__default$1["default"].createElement("button", { className: "chat-schedule-button", onClick: handleClick },
|
|
7773
|
+
React__default$1["default"].createElement("i", { className: "fa fa-lg fa-calendar" }),
|
|
7774
|
+
React__default$1["default"].createElement("span", null, display.label || "Schedule Now!"))));
|
|
7775
|
+
};
|
|
7776
|
+
|
|
7734
7777
|
function getClassName(msg) {
|
|
7735
7778
|
return isAgent(msg.user.nick) ? "agent" : "visitor";
|
|
7736
7779
|
}
|
|
@@ -7762,6 +7805,9 @@ var ChatMessage = function (props) {
|
|
|
7762
7805
|
React__default$1["default"].createElement(ChatMessagePart, { showAvatar: avaKey === "html", user: user },
|
|
7763
7806
|
React__default$1["default"].createElement(ChatMarkdownMessage, { message: props.message, sibling: props.sibling, onOpenUrl: (_a = props.middlewareContext) === null || _a === void 0 ? void 0 : _a.openUrl })),
|
|
7764
7807
|
msg.displays && middleware && msg.displays.map(function (display, index) {
|
|
7808
|
+
if (display.type === "ScheduleButton") {
|
|
7809
|
+
return (React__default$1["default"].createElement(ChatScheduleWidget, { minimizeOnClick: props.minimizeOnClick, display: display }));
|
|
7810
|
+
}
|
|
7765
7811
|
var Middleware = middleware;
|
|
7766
7812
|
return (React__default$1["default"].createElement(Middleware, { key: index, msg: display, ctx: props.middlewareContext }));
|
|
7767
7813
|
}),
|
|
@@ -29625,11 +29671,12 @@ var defaultProps = {
|
|
|
29625
29671
|
visitorId: "",
|
|
29626
29672
|
onSend: function () { return Promise.resolve(); },
|
|
29627
29673
|
onWrite: function () { return Promise.resolve(); },
|
|
29628
|
-
onOpenUrl: function () { }
|
|
29674
|
+
onOpenUrl: function () { },
|
|
29675
|
+
minimizeOnClick: function () { }
|
|
29629
29676
|
};
|
|
29630
29677
|
var MessageList = function (props) {
|
|
29631
29678
|
if (props === void 0) { props = defaultProps; }
|
|
29632
|
-
var onSend = props.onSend, onWrite = props.onWrite, onOpenUrl = props.onOpenUrl;
|
|
29679
|
+
var onSend = props.onSend, onWrite = props.onWrite, onOpenUrl = props.onOpenUrl, minimizeOnClick = props.minimizeOnClick;
|
|
29633
29680
|
var messagesEndRef = React$1.useRef(null);
|
|
29634
29681
|
React$1.useEffect(function () {
|
|
29635
29682
|
messagesEndRef.current.scrollIntoView({ behavior: "smooth" });
|
|
@@ -29673,7 +29720,7 @@ var MessageList = function (props) {
|
|
|
29673
29720
|
switch (msg.type) {
|
|
29674
29721
|
case "chat.file":
|
|
29675
29722
|
case "chat.msg":
|
|
29676
|
-
return (React__default$1["default"].createElement(ChatMessage, { key: "cm-".concat(msg.type, "-").concat(msg.timestamp), message: msg, sibling: sibling, agent: user, messageMiddleware: props.messageMiddleware, middlewareContext: ctxCache.resolve(user) }));
|
|
29723
|
+
return (React__default$1["default"].createElement(ChatMessage, { key: "cm-".concat(msg.type, "-").concat(msg.timestamp), message: msg, sibling: sibling, agent: user, messageMiddleware: props.messageMiddleware, middlewareContext: ctxCache.resolve(user), minimizeOnClick: minimizeOnClick }));
|
|
29677
29724
|
case "chat.failureMsg":
|
|
29678
29725
|
return (React__default$1["default"].createElement(FailureMessage, __assign({ key: "fm-".concat(msg.type, "-").concat(msg.timestamp), agents: props.agents, time: time }, msg.failureMsg)));
|
|
29679
29726
|
case "chat.memberjoin":
|
|
@@ -30170,9 +30217,8 @@ var ChatWidget = function (props) {
|
|
|
30170
30217
|
// if (get("opened")) {
|
|
30171
30218
|
// setVisible(true);
|
|
30172
30219
|
// }
|
|
30173
|
-
|
|
30174
|
-
|
|
30175
|
-
}
|
|
30220
|
+
// We need this to minimize
|
|
30221
|
+
setVisible(chatState.visuals.opened);
|
|
30176
30222
|
if (patternExist && patternMatches) {
|
|
30177
30223
|
setVisible(true);
|
|
30178
30224
|
}
|
|
@@ -30291,7 +30337,7 @@ var ChatWidget = function (props) {
|
|
|
30291
30337
|
React__default$1["default"].createElement("div", { className: "widget-container ".concat(modeClass, " ").concat(getVisibilityClass()) },
|
|
30292
30338
|
React__default$1["default"].createElement(WidgetStylesheet, { theme: config === null || config === void 0 ? void 0 : config.theme }),
|
|
30293
30339
|
React__default$1["default"].createElement(ChatHeader, { accountStatus: chatState.accountStatus, refreshOnClick: handleRestartClick, minimizeOnClick: handleMinimizeClick, cancelOnClick: handleCancelClick, agent: widgetAgent, canRefresh: canRefresh, canMinimize: canMinimize, canCancel: canCancel, config: config === null || config === void 0 ? void 0 : config.header, menuConfig: config.menu, onSubmit: handleOnSubmit }),
|
|
30294
|
-
React__default$1["default"].createElement(MessageList, { visible: visible, queuePosition: chatState.queuePosition, isChatting: chatState.isChatting, isOffline: isOffline, messages: messages, agents: chatState.agents, agent: config === null || config === void 0 ? void 0 : config.agent, lastRatingRequestTimestamp: chatState.lastRatingRequestTimestamp, hasRating: chatState.hasRating, visitorId: chatState.visitorId, messageMiddleware: props.messageMiddleware, textTypingStatusEnabled: (_w = (_v = props.config) === null || _v === void 0 ? void 0 : _v.typingStatus) === null || _w === void 0 ? void 0 : _w.textTypingStatusEnabled, onSend: handleSendMessage, onWrite: handleWriteMessage, onOpenUrl: handleOpenUrl }),
|
|
30340
|
+
React__default$1["default"].createElement(MessageList, { visible: visible, queuePosition: chatState.queuePosition, isChatting: chatState.isChatting, isOffline: isOffline, messages: messages, agents: chatState.agents, agent: config === null || config === void 0 ? void 0 : config.agent, lastRatingRequestTimestamp: chatState.lastRatingRequestTimestamp, hasRating: chatState.hasRating, visitorId: chatState.visitorId, messageMiddleware: props.messageMiddleware, textTypingStatusEnabled: (_w = (_v = props.config) === null || _v === void 0 ? void 0 : _v.typingStatus) === null || _w === void 0 ? void 0 : _w.textTypingStatusEnabled, onSend: handleSendMessage, onWrite: handleWriteMessage, onOpenUrl: handleOpenUrl, minimizeOnClick: handleMinimizeClick }),
|
|
30295
30341
|
React__default$1["default"].createElement("div", { className: "xa-spinner-container ".concat(visible && connectionStatus === "pending" ? "visible" : "") },
|
|
30296
30342
|
React__default$1["default"].createElement("div", { className: "xa-spinner" })),
|
|
30297
30343
|
connectionStatus === "offline" && React__default$1["default"].createElement(ServerOffline, null),
|