@xapp/chat-widget 1.48.0 → 1.49.2
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/ChatMarkdownMessage/ChatMarkdownMessage.d.ts +1 -0
- package/dist/components/ChatMessage/ChatMessage.d.ts +1 -0
- package/dist/components/ChatPermissionMessage/ChatPermissionMessage.d.ts +1 -0
- package/dist/components/ChatRating/ChatRatingContainer.d.ts +1 -0
- package/dist/components/ChatTextMessage/ChatTextMessage.d.ts +1 -0
- package/dist/components/ChatWidget/ChatWidget.stories.d.ts +1 -0
- package/dist/components/CtaBubble/CtaBubbleContainer.d.ts +1 -1
- package/dist/components/FailureMessage/FailureMessage.d.ts +1 -0
- package/dist/components/OfflineForm/OfflineFormContainer.d.ts +1 -0
- package/dist/components/PrechatForm/PrechatFormContainer.d.ts +1 -0
- package/dist/components/StatusContainer/StatusContainer.stories.d.ts +1 -0
- package/dist/components/SystemMessage/SystemMessage.d.ts +1 -0
- package/dist/index.css +1 -1
- package/dist/index.es.js +63 -35
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +63 -35
- package/dist/index.js.map +1 -1
- package/package.json +13 -13
package/dist/index.js
CHANGED
|
@@ -1642,7 +1642,7 @@ var ChatImage = function (props) {
|
|
|
1642
1642
|
return (React__default$1["default"].createElement("div", { className: "chat-card-img" }, content));
|
|
1643
1643
|
}
|
|
1644
1644
|
else {
|
|
1645
|
-
return (React__default$1["default"].createElement("a", { href: props.imageActionUrl, target: "_blank", rel: "noopener noreferrer", className: "chat-card-img" }, content));
|
|
1645
|
+
return (React__default$1["default"].createElement("a", { href: props.imageActionUrl, "aria-label": "read more", target: "_blank", rel: "noopener noreferrer", className: "chat-card-img" }, content));
|
|
1646
1646
|
}
|
|
1647
1647
|
};
|
|
1648
1648
|
|
|
@@ -1894,12 +1894,12 @@ var CtaBubbleContainer = function (props) {
|
|
|
1894
1894
|
};
|
|
1895
1895
|
|
|
1896
1896
|
var ChatButton = function (props) {
|
|
1897
|
-
return (React__default$1["default"].createElement("
|
|
1898
|
-
React__default$1["default"].createElement("div", { id: "xapp-widget-button", className: "chat-button__btn"
|
|
1897
|
+
return (React__default$1["default"].createElement("button", { className: "chat-button ".concat(props.addClass), onClick: props.onClick },
|
|
1898
|
+
React__default$1["default"].createElement("div", { id: "xapp-widget-button", className: "chat-button__btn" },
|
|
1899
1899
|
React__default$1["default"].createElement("svg", { width: "22", height: "22", viewBox: "0 0 22 22" },
|
|
1900
1900
|
React__default$1["default"].createElement("path", { d: "M13 22l-4-6H2c-1.11-.043-2-.935-2-2V2C0 .89.89 0 2 0h18c1.11 0 2 .892 2 2v12c0 1.067-.89 1.957-2 2h-3l-4 6zm3-8h4c-.005.3-.01-12 0-12-.01.004-18 .006-18 0 .005.006 0 12 0 12h8l3 5 3-5z", fill: "#FFF", fillRule: "evenodd" }))),
|
|
1901
1901
|
props.config && props.config.message && (React__default$1["default"].createElement("div", { className: "chat-button__cta" },
|
|
1902
|
-
React__default$1["default"].createElement(CtaBubbleContainer, { timeout: props.config.timeout, visible: !props.visible
|
|
1902
|
+
React__default$1["default"].createElement(CtaBubbleContainer, { timeout: props.config.timeout, visible: !props.visible }, props.config.message)))));
|
|
1903
1903
|
};
|
|
1904
1904
|
|
|
1905
1905
|
var ChatCard = function (props) {
|
|
@@ -7202,14 +7202,14 @@ var ChatMenu = function (props) {
|
|
|
7202
7202
|
return React__default$1["default"].createElement(ChatMenuItem, { key: i, onClick: props.onItemClick, label: item.label, subtitle: item.subtitle });
|
|
7203
7203
|
}
|
|
7204
7204
|
else if (lib.isStaticImageMenuItem(item)) {
|
|
7205
|
-
return (React__default$1["default"].createElement("div", { className: "chat-menu-item-static" },
|
|
7205
|
+
return (React__default$1["default"].createElement("div", { key: i, className: "chat-menu-item-static" },
|
|
7206
7206
|
React__default$1["default"].createElement("img", { style: {
|
|
7207
7207
|
maxHeight: "100%",
|
|
7208
7208
|
maxWidth: "auto"
|
|
7209
7209
|
}, src: item.imageUrl, alt: "Menu Item" })));
|
|
7210
7210
|
}
|
|
7211
7211
|
else if (lib.isStaticTextMenuItem(item)) {
|
|
7212
|
-
return (React__default$1["default"].createElement("div", { className: "chat-menu-item-static" },
|
|
7212
|
+
return (React__default$1["default"].createElement("div", { key: i, className: "chat-menu-item-static" },
|
|
7213
7213
|
React__default$1["default"].createElement("div", null,
|
|
7214
7214
|
React__default$1["default"].createElement("div", null, item.title),
|
|
7215
7215
|
React__default$1["default"].createElement("div", { className: "chat-menu-item-static--body" }, item.body))));
|
|
@@ -7376,7 +7376,7 @@ var ExternalLink = function (props) {
|
|
|
7376
7376
|
var handleClick = React$1.useCallback(function (ev) {
|
|
7377
7377
|
ev.preventDefault();
|
|
7378
7378
|
}, []);
|
|
7379
|
-
return (React__default$1["default"].createElement("a", { href: url, target: "_blank", rel: "noreferrer", className: props.className, onClick: handleClick }, getSvg()));
|
|
7379
|
+
return (React__default$1["default"].createElement("a", { href: url, "aria-label": "read more", target: "_blank", rel: "noreferrer", className: props.className, onClick: handleClick }, getSvg()));
|
|
7380
7380
|
};
|
|
7381
7381
|
|
|
7382
7382
|
function firstIndex(val, patterns) {
|
|
@@ -7489,7 +7489,7 @@ var SmartLink = function (props) {
|
|
|
7489
7489
|
var handleClick = React$1.useCallback(function (ev) {
|
|
7490
7490
|
ev.preventDefault();
|
|
7491
7491
|
}, []);
|
|
7492
|
-
return (React__default$1["default"].createElement("a", { href: url, target: "_blank", rel: "noreferrer", className: className, onClick: handleClick }, reduceLink(url, 40)));
|
|
7492
|
+
return (React__default$1["default"].createElement("a", { href: url, "aria-label": "read more", target: "_blank", rel: "noreferrer", className: className, onClick: handleClick }, reduceLink(url, 40)));
|
|
7493
7493
|
};
|
|
7494
7494
|
|
|
7495
7495
|
var ListItem = function (props) {
|
|
@@ -7666,6 +7666,7 @@ var ChatMarkdownMessage = function (props) {
|
|
|
7666
7666
|
return (React__default$1["default"].createElement("div", { className: "chat-msg" },
|
|
7667
7667
|
React__default$1["default"].createElement("div", { className: "chat-text-container" },
|
|
7668
7668
|
React__default$1["default"].createElement(ChatMessageBubble, { owner: agentMessage ? "others" : "mine", hasTail: agentMessage && !props.sibling },
|
|
7669
|
+
React__default$1["default"].createElement("span", { className: "message-sr-only" }, "at " + props.time + (agentMessage ? " the bot said" : " the user said")),
|
|
7669
7670
|
React__default$1["default"].createElement("div", { ref: ref })))));
|
|
7670
7671
|
};
|
|
7671
7672
|
|
|
@@ -7673,6 +7674,7 @@ var ChatPermissionMessage = function (props) {
|
|
|
7673
7674
|
var message = props.message, ctx = props.ctx;
|
|
7674
7675
|
var user = ctx.user;
|
|
7675
7676
|
var permissionRequest = message.msg.permissionRequest;
|
|
7677
|
+
var agentMessage = isAgent(props.message.user.nick);
|
|
7676
7678
|
var author = message.user;
|
|
7677
7679
|
var allowLabel = "Allow";
|
|
7678
7680
|
var denyLabel = "Deny";
|
|
@@ -7739,6 +7741,7 @@ var ChatPermissionMessage = function (props) {
|
|
|
7739
7741
|
return React__default$1["default"].createElement(React__default$1["default"].Fragment, null);
|
|
7740
7742
|
}
|
|
7741
7743
|
return (React__default$1["default"].createElement("div", { className: "chat-msg" },
|
|
7744
|
+
React__default$1["default"].createElement("span", { className: "message-sr-only" }, "at " + props.time + (agentMessage ? " the bot said" : " the user said")),
|
|
7742
7745
|
React__default$1["default"].createElement("div", { className: "buttons-container" },
|
|
7743
7746
|
React__default$1["default"].createElement(ActionButton, { label: allowLabel, addClass: "button", onClick: handleAllow }),
|
|
7744
7747
|
React__default$1["default"].createElement(ActionButton, { label: denyLabel, addClass: "button", onClick: handleDeny }))));
|
|
@@ -7749,6 +7752,7 @@ var ChatTextMessage = function (props) {
|
|
|
7749
7752
|
return (React__default$1["default"].createElement("div", { className: "chat-msg" },
|
|
7750
7753
|
React__default$1["default"].createElement("div", { className: "chat-text-container" },
|
|
7751
7754
|
React__default$1["default"].createElement(ChatMessageBubble, { owner: agentMessage ? "others" : "mine", hasTail: agentMessage && !props.sibling },
|
|
7755
|
+
React__default$1["default"].createElement("span", { className: "message-sr-only" }, "at " + props.time + (agentMessage ? " the bot said" : " the user said")),
|
|
7752
7756
|
React__default$1["default"].createElement("span", null, props.message.msg.text)))));
|
|
7753
7757
|
};
|
|
7754
7758
|
|
|
@@ -7776,17 +7780,19 @@ var ChatMessage = function (props) {
|
|
|
7776
7780
|
return (React__default$1["default"].createElement(React__default$1["default"].Fragment, null,
|
|
7777
7781
|
msg.text &&
|
|
7778
7782
|
React__default$1["default"].createElement(ChatMessagePart, { showAvatar: avaKey === "text", user: user },
|
|
7779
|
-
React__default$1["default"].createElement(ChatTextMessage, { message: props.message, sibling: props.sibling })),
|
|
7783
|
+
React__default$1["default"].createElement(ChatTextMessage, { message: props.message, sibling: props.sibling, time: props.time })),
|
|
7780
7784
|
msg.html &&
|
|
7781
7785
|
React__default$1["default"].createElement(ChatMessagePart, { showAvatar: avaKey === "html", user: user },
|
|
7782
|
-
React__default$1["default"].createElement(ChatMarkdownMessage, { message: props.message, sibling: props.sibling, onOpenUrl: (_a = props.middlewareContext) === null || _a === void 0 ? void 0 : _a.openUrl })),
|
|
7786
|
+
React__default$1["default"].createElement(ChatMarkdownMessage, { message: props.message, sibling: props.sibling, time: props.time, onOpenUrl: (_a = props.middlewareContext) === null || _a === void 0 ? void 0 : _a.openUrl })),
|
|
7783
7787
|
msg.displays && middleware && msg.displays.map(function (display, index) {
|
|
7784
7788
|
var Middleware = middleware;
|
|
7785
|
-
return React__default$1["default"].createElement(
|
|
7789
|
+
return (React__default$1["default"].createElement(React__default$1["default"].Fragment, null,
|
|
7790
|
+
React__default$1["default"].createElement("span", { className: "message-sr-only" }, "at " + props.time + " the bot said"),
|
|
7791
|
+
React__default$1["default"].createElement(Middleware, { key: index, msg: display, ctx: props.middlewareContext })));
|
|
7786
7792
|
}),
|
|
7787
7793
|
msg.permissionRequest &&
|
|
7788
7794
|
React__default$1["default"].createElement(ChatMessagePart, { showAvatar: avaKey === "permissionRequest", user: user },
|
|
7789
|
-
React__default$1["default"].createElement(ChatPermissionMessage, { message: props.message, sibling: props.sibling, ctx: props.middlewareContext }))));
|
|
7795
|
+
React__default$1["default"].createElement(ChatPermissionMessage, { message: props.message, sibling: props.sibling, ctx: props.middlewareContext, time: props.time }))));
|
|
7790
7796
|
}
|
|
7791
7797
|
return (React__default$1["default"].createElement(React__default$1["default"].Fragment, null));
|
|
7792
7798
|
}
|
|
@@ -7986,7 +7992,7 @@ var ChatBranding = function (props) {
|
|
|
7986
7992
|
};
|
|
7987
7993
|
|
|
7988
7994
|
var DrawerBars = function (props) {
|
|
7989
|
-
return (React__default$1["default"].createElement("
|
|
7995
|
+
return (React__default$1["default"].createElement("button", { className: "drawer-bars", onClick: props.onToggle },
|
|
7990
7996
|
React__default$1["default"].createElement("div", { className: "drawer-bar bar1" }),
|
|
7991
7997
|
React__default$1["default"].createElement("div", { className: "drawer-bar bar2" })));
|
|
7992
7998
|
};
|
|
@@ -8011,7 +8017,7 @@ var SendIcon = function () {
|
|
|
8011
8017
|
|
|
8012
8018
|
var SendButton = function (props) {
|
|
8013
8019
|
return (React__default$1["default"].createElement(React__default$1["default"].Fragment, null, !props.sendButtonIcon ? (React__default$1["default"].createElement(IconButton_1, { className: "xappw-send-button ".concat(props.className || ""), onClick: props.onClick, icon: SendIcon })) : (React__default$1["default"].createElement("span", { className: "xappw-custom-send-button", onClick: props.onClick },
|
|
8014
|
-
React__default$1["default"].createElement("img", { src: props.sendButtonIcon, alt: "", draggable: false })))));
|
|
8020
|
+
React__default$1["default"].createElement("img", { src: props.sendButtonIcon, alt: "Send button", draggable: false })))));
|
|
8015
8021
|
};
|
|
8016
8022
|
|
|
8017
8023
|
var Input = function (props) {
|
|
@@ -8063,7 +8069,7 @@ var Input = function (props) {
|
|
|
8063
8069
|
}, [suggestion, onChange, onSuggestionCommand]);
|
|
8064
8070
|
return (React__default$1["default"].createElement("div", { className: "xappw-input-container ".concat(props.addClass, " ").concat(dragover ? "drag-drop-zone" : ""), onDrop: onDrop, onDragOver: onDragOver, onDragLeave: onDragLeave },
|
|
8065
8071
|
React__default$1["default"].createElement("form", { className: "xappw-input-form", onSubmit: handleOnSubmit },
|
|
8066
|
-
React__default$1["default"].createElement(RichInput_1, { key: "input", className: "xappw-input", placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : "Type your question here...", onInput: onChange, onChange: onChange, onKeyDown: handleKeyDown,
|
|
8072
|
+
React__default$1["default"].createElement(RichInput_1, { key: "input", id: "chatWidgetInput", className: "xappw-input", placeholder: placeholder !== null && placeholder !== void 0 ? placeholder : "Type your question here...", onInput: onChange, onChange: onChange, onKeyDown: handleKeyDown,
|
|
8067
8073
|
// onFocus={onFocus}
|
|
8068
8074
|
value: value, spellCheck: true }),
|
|
8069
8075
|
React__default$1["default"].createElement("div", { className: "xappw-input-form__buttons" },
|
|
@@ -8155,7 +8161,7 @@ var ChatFooter = function (props) {
|
|
|
8155
8161
|
return (React__default$1["default"].createElement("div", { className: "chat-footer" },
|
|
8156
8162
|
menuItems.length ?
|
|
8157
8163
|
React__default$1["default"].createElement(React__default$1["default"].Fragment, null,
|
|
8158
|
-
React__default$1["default"].createElement(ChatMenu, { opened: drawer, onItemClick: handleMenuItem, items: menuItems }),
|
|
8164
|
+
drawer && React__default$1["default"].createElement(ChatMenu, { opened: drawer, onItemClick: handleMenuItem, items: menuItems }),
|
|
8159
8165
|
React__default$1["default"].createElement("div", { className: "chat-footer__menu-icon" },
|
|
8160
8166
|
React__default$1["default"].createElement(DrawerBars, { onToggle: toggleDrawer }))) : React__default$1["default"].createElement(React__default$1["default"].Fragment, null),
|
|
8161
8167
|
((_j = suggestions.suggestions) === null || _j === void 0 ? void 0 : _j.length) > 0 && React__default$1["default"].createElement(Suggestions, { className: "xappw-chat-footer__suggestions", data: suggestions.suggestions, index: suggestions.index, onItemClick: handleItemClick, onItemUse: handleItemUse }),
|
|
@@ -8250,7 +8256,9 @@ var ChatRatingContainer = function (props) {
|
|
|
8250
8256
|
var handleRate = React$1.useCallback(function (rating) {
|
|
8251
8257
|
dispatch(sendChatRating(rating));
|
|
8252
8258
|
}, [dispatch]);
|
|
8253
|
-
return React__default$1["default"].createElement(
|
|
8259
|
+
return (React__default$1["default"].createElement(React__default$1["default"].Fragment, null,
|
|
8260
|
+
React__default$1["default"].createElement("span", { className: "message-sr-only" }, "at " + props.time + " system message"),
|
|
8261
|
+
React__default$1["default"].createElement(ChatRating, { agent: props.agent, hasRating: props.hasRating, shouldDisplay: props.shouldDisplay, onRate: handleRate })));
|
|
8254
8262
|
};
|
|
8255
8263
|
|
|
8256
8264
|
var dateFns = {};
|
|
@@ -30369,7 +30377,7 @@ function compileSlotValues(responseOutput, slots, replaceWhenUndefined) {
|
|
|
30369
30377
|
}
|
|
30370
30378
|
|
|
30371
30379
|
var FailureMessage = function (props) {
|
|
30372
|
-
var agents = props.agents, text = props.text, delay = props.delay;
|
|
30380
|
+
var agents = props.agents, text = props.text, delay = props.delay, time = props.time;
|
|
30373
30381
|
var _a = React$1.useState(delay), countdown = _a[0], setCountdown = _a[1];
|
|
30374
30382
|
var agent_names = Object.values(agents).filter(function (agent) { return agent.requestFailed; });
|
|
30375
30383
|
React$1.useEffect(function () {
|
|
@@ -30407,6 +30415,7 @@ var FailureMessage = function (props) {
|
|
|
30407
30415
|
React__default$1["default"].createElement(ChatMessagePart, { user: agent.user, showAvatar: true },
|
|
30408
30416
|
React__default$1["default"].createElement("div", { className: "chat-msg" },
|
|
30409
30417
|
React__default$1["default"].createElement(ChatMessageBubble, { owner: "others", hasTail: true },
|
|
30418
|
+
React__default$1["default"].createElement("span", { className: "message-sr-only" }, "at " + time + " the bot said"),
|
|
30410
30419
|
React__default$1["default"].createElement("span", null, failureMessage)))))));
|
|
30411
30420
|
})));
|
|
30412
30421
|
};
|
|
@@ -30475,12 +30484,14 @@ var OfflineForm = function (props) {
|
|
|
30475
30484
|
return React__default$1["default"].createElement(MessageForm, { title: "Offline message card title", onSubmit: props.onSubmit });
|
|
30476
30485
|
};
|
|
30477
30486
|
|
|
30478
|
-
var OfflineFormContainer = function (
|
|
30487
|
+
var OfflineFormContainer = function (props) {
|
|
30479
30488
|
var dispatch = useChatServerDispatch();
|
|
30480
30489
|
var handleSubmit = React$1.useCallback(function (data) {
|
|
30481
30490
|
dispatch(sendOfflineMsg(data));
|
|
30482
30491
|
}, [dispatch]);
|
|
30483
|
-
return React__default$1["default"].createElement(
|
|
30492
|
+
return (React__default$1["default"].createElement(React__default$1["default"].Fragment, null,
|
|
30493
|
+
React__default$1["default"].createElement("span", { className: "message-sr-only" }, "at " + props.time + " system message"),
|
|
30494
|
+
React__default$1["default"].createElement(OfflineForm, { onSubmit: handleSubmit })));
|
|
30484
30495
|
};
|
|
30485
30496
|
|
|
30486
30497
|
var PrechatForm = function (props) {
|
|
@@ -30493,7 +30504,7 @@ var PrechatForm = function (props) {
|
|
|
30493
30504
|
return (React__default$1["default"].createElement(React__default$1["default"].Fragment, null, !sent && React__default$1["default"].createElement(MessageForm, { title: "Introduce yourself!", onSubmit: handleSubmit })));
|
|
30494
30505
|
};
|
|
30495
30506
|
|
|
30496
|
-
var PrechatFormContainer = function (
|
|
30507
|
+
var PrechatFormContainer = function (props) {
|
|
30497
30508
|
var dispatch = useChatServerDispatch();
|
|
30498
30509
|
var handleSubmit = React$1.useCallback(function (data) {
|
|
30499
30510
|
// Don't send empty messages
|
|
@@ -30505,7 +30516,9 @@ var PrechatFormContainer = function (_) {
|
|
|
30505
30516
|
}));
|
|
30506
30517
|
dispatch(executeAction(data.message));
|
|
30507
30518
|
}, [dispatch]);
|
|
30508
|
-
return React__default$1["default"].createElement(
|
|
30519
|
+
return (React__default$1["default"].createElement(React__default$1["default"].Fragment, null,
|
|
30520
|
+
React__default$1["default"].createElement("span", { className: "message-sr-only" }, "at " + props.time + " system message"),
|
|
30521
|
+
React__default$1["default"].createElement(PrechatForm, { onSubmit: handleSubmit })));
|
|
30509
30522
|
};
|
|
30510
30523
|
|
|
30511
30524
|
var defaultProps$1 = {
|
|
@@ -30541,6 +30554,7 @@ function getMessageByType(msg) {
|
|
|
30541
30554
|
}
|
|
30542
30555
|
var SystemMessage = function (props) {
|
|
30543
30556
|
return (React__default$1["default"].createElement("div", { className: "system-msg-container" },
|
|
30557
|
+
React__default$1["default"].createElement("span", { className: "message-sr-only" }, "at " + props.time + " system message"),
|
|
30544
30558
|
React__default$1["default"].createElement("span", { className: "system-msg" }, getMessageByType(props.message))));
|
|
30545
30559
|
};
|
|
30546
30560
|
function convertToSentenceCase(s) {
|
|
@@ -30605,6 +30619,8 @@ var MessageList = function (props) {
|
|
|
30605
30619
|
write: handleWrite,
|
|
30606
30620
|
openUrl: onOpenUrl
|
|
30607
30621
|
}); }, [handleSend, handleWrite, onOpenUrl]);
|
|
30622
|
+
var date = new Date();
|
|
30623
|
+
var time = date.getHours() + ':' + date.getMinutes();
|
|
30608
30624
|
/**
|
|
30609
30625
|
* Render the message based on widget state or message type. offline and pre chat are pseudo messages.
|
|
30610
30626
|
*
|
|
@@ -30617,24 +30633,26 @@ var MessageList = function (props) {
|
|
|
30617
30633
|
switch (msg.type) {
|
|
30618
30634
|
case "chat.file":
|
|
30619
30635
|
case "chat.msg":
|
|
30620
|
-
return (React__default$1["default"].createElement(ChatMessage, { key: msg.type + msg.timestamp, message: msg, sibling: sibling, agent: user, messageMiddleware: props.messageMiddleware, middlewareContext: ctxCache.resolve(user) }));
|
|
30636
|
+
return (React__default$1["default"].createElement(ChatMessage, { key: msg.type + msg.timestamp, message: msg, sibling: sibling, agent: user, time: time, messageMiddleware: props.messageMiddleware, middlewareContext: ctxCache.resolve(user) }));
|
|
30621
30637
|
case "chat.failureMsg":
|
|
30622
|
-
return (React__default$1["default"].createElement(FailureMessage, __assign({ key: msg.type + msg.timestamp, agents: props.agents }, msg.failureMsg)));
|
|
30638
|
+
return (React__default$1["default"].createElement(FailureMessage, __assign({ key: msg.type + msg.timestamp, agents: props.agents, time: time }, msg.failureMsg)));
|
|
30623
30639
|
case "chat.memberjoin":
|
|
30624
30640
|
case "chat.memberleave":
|
|
30625
30641
|
case "chat.rating":
|
|
30626
30642
|
case "chat.typing":
|
|
30627
|
-
return (React__default$1["default"].createElement(SystemMessage, { key: msg.type + msg.timestamp, message: msg }));
|
|
30643
|
+
return (React__default$1["default"].createElement(SystemMessage, { key: msg.type + msg.timestamp, time: time, message: msg }));
|
|
30628
30644
|
case "chat.request.rating":
|
|
30629
|
-
return (React__default$1["default"].createElement(ChatRatingContainer, { key: msg.type + msg.timestamp, agent: user, hasRating: props.hasRating, shouldDisplay: msg.timestamp === props.lastRatingRequestTimestamp }));
|
|
30645
|
+
return (React__default$1["default"].createElement(ChatRatingContainer, { key: msg.type + msg.timestamp, agent: user, hasRating: props.hasRating, time: time, shouldDisplay: msg.timestamp === props.lastRatingRequestTimestamp }));
|
|
30630
30646
|
case "chat.offline":
|
|
30631
|
-
return React__default$1["default"].createElement(OfflineFormContainer, { key: "offline-".concat(msg.timestamp) });
|
|
30647
|
+
return React__default$1["default"].createElement(OfflineFormContainer, { key: "offline-".concat(msg.timestamp), time: time });
|
|
30632
30648
|
case "chat.prechat":
|
|
30633
|
-
return React__default$1["default"].createElement(PrechatFormContainer, { key: "prechat" });
|
|
30649
|
+
return React__default$1["default"].createElement(PrechatFormContainer, { key: "prechat", time: time });
|
|
30634
30650
|
default:
|
|
30635
|
-
return React__default$1["default"].createElement("
|
|
30636
|
-
"
|
|
30637
|
-
|
|
30651
|
+
return (React__default$1["default"].createElement(React__default$1["default"].Fragment, null,
|
|
30652
|
+
React__default$1["default"].createElement("span", { className: "message-sr-only" }, "at " + time + " system message"),
|
|
30653
|
+
React__default$1["default"].createElement("div", { key: +new Date() },
|
|
30654
|
+
"Unhandled message: ",
|
|
30655
|
+
JSON.stringify(msg))));
|
|
30638
30656
|
}
|
|
30639
30657
|
}
|
|
30640
30658
|
/**
|
|
@@ -30671,15 +30689,15 @@ var ServerOffline = function () {
|
|
|
30671
30689
|
};
|
|
30672
30690
|
|
|
30673
30691
|
var CancelButton = function (props) {
|
|
30674
|
-
return React__default$1["default"].createElement("
|
|
30692
|
+
return React__default$1["default"].createElement("button", { id: "xapp-widget-close", className: "cancel-button", onClick: props.onClick });
|
|
30675
30693
|
};
|
|
30676
30694
|
|
|
30677
30695
|
var MinimizeButton = function (props) {
|
|
30678
|
-
return (React__default$1["default"].createElement("
|
|
30696
|
+
return (React__default$1["default"].createElement("button", { id: "xapp-widget-minimize", className: "minimize-button ".concat(props.showInRight ? "positionRight" : ""), onClick: props.onClick }));
|
|
30679
30697
|
};
|
|
30680
30698
|
|
|
30681
30699
|
var RefreshButton = function (props) {
|
|
30682
|
-
return (React__default$1["default"].createElement("
|
|
30700
|
+
return (React__default$1["default"].createElement("button", { id: "xapp-widget-refresh", className: "refresh-button ".concat(props.showInRight ? "positionRight" : props.showInLeft ? "positionLeft" : ""), onClick: props.onClick }));
|
|
30683
30701
|
};
|
|
30684
30702
|
|
|
30685
30703
|
var DEFAULT_STATUS_CONFIG = {
|
|
@@ -30931,7 +30949,7 @@ function getButtonStyle(style) {
|
|
|
30931
30949
|
});
|
|
30932
30950
|
}
|
|
30933
30951
|
function getMenuItemStyle(style) {
|
|
30934
|
-
return union(getTextStyle(style === null || style === void 0 ? void 0 : style.text), withPrefix("subtitle-", getTextStyle(style.subtitle)), getBorderStyle(style.border), getBackgroundStyle(style === null || style === void 0 ? void 0 : style.background), single("height", style === null || style === void 0 ? void 0 : style.height));
|
|
30952
|
+
return union(getTextStyle(style === null || style === void 0 ? void 0 : style.text), withPrefix("subtitle-", getTextStyle(style === null || style === void 0 ? void 0 : style.subtitle)), getBorderStyle(style === null || style === void 0 ? void 0 : style.border), getBackgroundStyle(style === null || style === void 0 ? void 0 : style.background), single("height", style === null || style === void 0 ? void 0 : style.height));
|
|
30935
30953
|
}
|
|
30936
30954
|
function getMenuStyle(style) {
|
|
30937
30955
|
return union(withPrefix("item-", getMenuItemStyle(style === null || style === void 0 ? void 0 : style.item)));
|
|
@@ -31042,6 +31060,13 @@ var ChatWidget = function (props) {
|
|
|
31042
31060
|
}, [staticMode]);
|
|
31043
31061
|
React$1.useEffect(function () {
|
|
31044
31062
|
var _a;
|
|
31063
|
+
document.addEventListener('keydown', function (event) {
|
|
31064
|
+
var body = document.getElementsByTagName("body")[0];
|
|
31065
|
+
body.tabIndex = -1;
|
|
31066
|
+
if (event.key === "Escape") {
|
|
31067
|
+
body.focus();
|
|
31068
|
+
}
|
|
31069
|
+
});
|
|
31045
31070
|
if (checkSessionExpiration(chatState === null || chatState === void 0 ? void 0 : chatState.sessionExpiration, (_a = chatState === null || chatState === void 0 ? void 0 : chatState.chats[chatState.chats.length - 1]) === null || _a === void 0 ? void 0 : _a.timestamp, chatState === null || chatState === void 0 ? void 0 : chatState.lastTimestamp)) {
|
|
31046
31071
|
innerDispatch(reset());
|
|
31047
31072
|
}
|
|
@@ -31112,6 +31137,9 @@ var ChatWidget = function (props) {
|
|
|
31112
31137
|
function chatButtonOnClick() {
|
|
31113
31138
|
set$1("opened", true);
|
|
31114
31139
|
setVisible(true);
|
|
31140
|
+
setTimeout(function () {
|
|
31141
|
+
document.getElementById("chatWidgetInput").focus();
|
|
31142
|
+
}, 100);
|
|
31115
31143
|
}
|
|
31116
31144
|
var isOffline = chatState.accountStatus === "offline" && !chatState.isChatting;
|
|
31117
31145
|
var messages = chatState && chatState.chats;
|