@xapp/chat-widget 1.47.2 → 1.49.1
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/ChatMenu/ChatMenu.d.ts +7 -1
- package/dist/components/ChatMenu/ChatMenu.stories.d.ts +1 -0
- package/dist/components/ChatMenu/ChatMenuItem.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 +142 -29
- package/dist/index.es.js.map +1 -1
- package/dist/index.js +142 -29
- package/dist/index.js.map +1 -1
- package/package.json +16 -16
package/dist/index.js
CHANGED
|
@@ -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) {
|
|
@@ -7110,19 +7110,111 @@ var ChatChipsContainer = function (_) {
|
|
|
7110
7110
|
React__default$1["default"].createElement(ChatChips, { options: chips, onOptionClick: optionOnChange })));
|
|
7111
7111
|
};
|
|
7112
7112
|
|
|
7113
|
+
var lib = {};
|
|
7114
|
+
|
|
7115
|
+
var ChannelData = {};
|
|
7116
|
+
|
|
7117
|
+
Object.defineProperty(ChannelData, "__esModule", { value: true });
|
|
7118
|
+
|
|
7119
|
+
var Constants = {};
|
|
7120
|
+
|
|
7121
|
+
Object.defineProperty(Constants, "__esModule", { value: true });
|
|
7122
|
+
Constants.CHAT_WIDGET_CHANNEL = void 0;
|
|
7123
|
+
Constants.CHAT_WIDGET_CHANNEL = "chat-widget";
|
|
7124
|
+
|
|
7125
|
+
var Types = {};
|
|
7126
|
+
|
|
7127
|
+
/*! Copyright (c) 2021, XAPPmedia */
|
|
7128
|
+
Object.defineProperty(Types, "__esModule", { value: true });
|
|
7129
|
+
|
|
7130
|
+
var UserInfo = {};
|
|
7131
|
+
|
|
7132
|
+
Object.defineProperty(UserInfo, "__esModule", { value: true });
|
|
7133
|
+
|
|
7134
|
+
var WidgetEnv = {};
|
|
7135
|
+
|
|
7136
|
+
Object.defineProperty(WidgetEnv, "__esModule", { value: true });
|
|
7137
|
+
|
|
7138
|
+
var WidgetTheme = {};
|
|
7139
|
+
|
|
7140
|
+
Object.defineProperty(WidgetTheme, "__esModule", { value: true });
|
|
7141
|
+
|
|
7142
|
+
var guards = {};
|
|
7143
|
+
|
|
7144
|
+
Object.defineProperty(guards, "__esModule", { value: true });
|
|
7145
|
+
guards.isStandardMenuItem = guards.isStaticTextMenuItem = guards.isStaticImageMenuItem = void 0;
|
|
7146
|
+
function isStaticImageMenuItem(item) {
|
|
7147
|
+
return !!item && !!item.imageUrl;
|
|
7148
|
+
}
|
|
7149
|
+
guards.isStaticImageMenuItem = isStaticImageMenuItem;
|
|
7150
|
+
function isStaticTextMenuItem(item) {
|
|
7151
|
+
return !!item && !!item.body;
|
|
7152
|
+
}
|
|
7153
|
+
guards.isStaticTextMenuItem = isStaticTextMenuItem;
|
|
7154
|
+
function isStandardMenuItem(item) {
|
|
7155
|
+
return !!item && !!item.label;
|
|
7156
|
+
}
|
|
7157
|
+
guards.isStandardMenuItem = isStandardMenuItem;
|
|
7158
|
+
|
|
7159
|
+
(function (exports) {
|
|
7160
|
+
var __createBinding = (commonjsGlobal && commonjsGlobal.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
7161
|
+
if (k2 === undefined) k2 = k;
|
|
7162
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
7163
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
7164
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7165
|
+
}
|
|
7166
|
+
Object.defineProperty(o, k2, desc);
|
|
7167
|
+
}) : (function(o, m, k, k2) {
|
|
7168
|
+
if (k2 === undefined) k2 = k;
|
|
7169
|
+
o[k2] = m[k];
|
|
7170
|
+
}));
|
|
7171
|
+
var __exportStar = (commonjsGlobal && commonjsGlobal.__exportStar) || function(m, exports) {
|
|
7172
|
+
for (var p in m) if (p !== "default" && !Object.prototype.hasOwnProperty.call(exports, p)) __createBinding(exports, m, p);
|
|
7173
|
+
};
|
|
7174
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
7175
|
+
/*! Copyright (c) 2021, XAPPmedia */
|
|
7176
|
+
__exportStar(ChannelData, exports);
|
|
7177
|
+
__exportStar(Constants, exports);
|
|
7178
|
+
__exportStar(Types, exports);
|
|
7179
|
+
__exportStar(UserInfo, exports);
|
|
7180
|
+
__exportStar(WidgetEnv, exports);
|
|
7181
|
+
__exportStar(WidgetTheme, exports);
|
|
7182
|
+
__exportStar(guards, exports);
|
|
7183
|
+
|
|
7184
|
+
} (lib));
|
|
7185
|
+
|
|
7113
7186
|
var ChatMenuItem = function (props) {
|
|
7114
7187
|
function handleClick() {
|
|
7115
7188
|
if (props.onClick) {
|
|
7116
7189
|
props.onClick(props.label);
|
|
7117
7190
|
}
|
|
7118
7191
|
}
|
|
7119
|
-
|
|
7192
|
+
var content = props.subtitle ? (React__default$1["default"].createElement("span", null,
|
|
7193
|
+
React__default$1["default"].createElement("div", null, props.label),
|
|
7194
|
+
React__default$1["default"].createElement("div", { className: "chat-menu-item--subtitle" }, props.subtitle))) : (React__default$1["default"].createElement("span", null, props.label));
|
|
7195
|
+
return (React__default$1["default"].createElement("button", { type: "button", className: "chat-menu-item", onClick: handleClick }, content));
|
|
7120
7196
|
};
|
|
7121
7197
|
|
|
7122
7198
|
var ChatMenu = function (props) {
|
|
7123
7199
|
var items = props.items;
|
|
7124
|
-
return (React__default$1["default"].createElement("div", { className: "chat-menu ".concat(props.opened ? "chat-menu--opened" : "chat-menu--closed") }, items.map(function (
|
|
7125
|
-
|
|
7200
|
+
return (React__default$1["default"].createElement("div", { className: "chat-menu ".concat(props.opened ? "chat-menu--opened" : "chat-menu--closed") }, items.map(function (item, i) {
|
|
7201
|
+
if (lib.isStandardMenuItem(item)) {
|
|
7202
|
+
return React__default$1["default"].createElement(ChatMenuItem, { key: i, onClick: props.onItemClick, label: item.label, subtitle: item.subtitle });
|
|
7203
|
+
}
|
|
7204
|
+
else if (lib.isStaticImageMenuItem(item)) {
|
|
7205
|
+
return (React__default$1["default"].createElement("div", { key: i, className: "chat-menu-item-static" },
|
|
7206
|
+
React__default$1["default"].createElement("img", { style: {
|
|
7207
|
+
maxHeight: "100%",
|
|
7208
|
+
maxWidth: "auto"
|
|
7209
|
+
}, src: item.imageUrl, alt: "Menu Item" })));
|
|
7210
|
+
}
|
|
7211
|
+
else if (lib.isStaticTextMenuItem(item)) {
|
|
7212
|
+
return (React__default$1["default"].createElement("div", { key: i, className: "chat-menu-item-static" },
|
|
7213
|
+
React__default$1["default"].createElement("div", null,
|
|
7214
|
+
React__default$1["default"].createElement("div", null, item.title),
|
|
7215
|
+
React__default$1["default"].createElement("div", { className: "chat-menu-item-static--body" }, item.body))));
|
|
7216
|
+
}
|
|
7217
|
+
return React__default$1["default"].createElement("p", null, "Unknown");
|
|
7126
7218
|
})));
|
|
7127
7219
|
};
|
|
7128
7220
|
|
|
@@ -7574,6 +7666,7 @@ var ChatMarkdownMessage = function (props) {
|
|
|
7574
7666
|
return (React__default$1["default"].createElement("div", { className: "chat-msg" },
|
|
7575
7667
|
React__default$1["default"].createElement("div", { className: "chat-text-container" },
|
|
7576
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")),
|
|
7577
7670
|
React__default$1["default"].createElement("div", { ref: ref })))));
|
|
7578
7671
|
};
|
|
7579
7672
|
|
|
@@ -7581,6 +7674,7 @@ var ChatPermissionMessage = function (props) {
|
|
|
7581
7674
|
var message = props.message, ctx = props.ctx;
|
|
7582
7675
|
var user = ctx.user;
|
|
7583
7676
|
var permissionRequest = message.msg.permissionRequest;
|
|
7677
|
+
var agentMessage = isAgent(props.message.user.nick);
|
|
7584
7678
|
var author = message.user;
|
|
7585
7679
|
var allowLabel = "Allow";
|
|
7586
7680
|
var denyLabel = "Deny";
|
|
@@ -7647,6 +7741,7 @@ var ChatPermissionMessage = function (props) {
|
|
|
7647
7741
|
return React__default$1["default"].createElement(React__default$1["default"].Fragment, null);
|
|
7648
7742
|
}
|
|
7649
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")),
|
|
7650
7745
|
React__default$1["default"].createElement("div", { className: "buttons-container" },
|
|
7651
7746
|
React__default$1["default"].createElement(ActionButton, { label: allowLabel, addClass: "button", onClick: handleAllow }),
|
|
7652
7747
|
React__default$1["default"].createElement(ActionButton, { label: denyLabel, addClass: "button", onClick: handleDeny }))));
|
|
@@ -7657,6 +7752,7 @@ var ChatTextMessage = function (props) {
|
|
|
7657
7752
|
return (React__default$1["default"].createElement("div", { className: "chat-msg" },
|
|
7658
7753
|
React__default$1["default"].createElement("div", { className: "chat-text-container" },
|
|
7659
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")),
|
|
7660
7756
|
React__default$1["default"].createElement("span", null, props.message.msg.text)))));
|
|
7661
7757
|
};
|
|
7662
7758
|
|
|
@@ -7684,17 +7780,19 @@ var ChatMessage = function (props) {
|
|
|
7684
7780
|
return (React__default$1["default"].createElement(React__default$1["default"].Fragment, null,
|
|
7685
7781
|
msg.text &&
|
|
7686
7782
|
React__default$1["default"].createElement(ChatMessagePart, { showAvatar: avaKey === "text", user: user },
|
|
7687
|
-
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 })),
|
|
7688
7784
|
msg.html &&
|
|
7689
7785
|
React__default$1["default"].createElement(ChatMessagePart, { showAvatar: avaKey === "html", user: user },
|
|
7690
|
-
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 })),
|
|
7691
7787
|
msg.displays && middleware && msg.displays.map(function (display, index) {
|
|
7692
7788
|
var Middleware = middleware;
|
|
7693
|
-
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 })));
|
|
7694
7792
|
}),
|
|
7695
7793
|
msg.permissionRequest &&
|
|
7696
7794
|
React__default$1["default"].createElement(ChatMessagePart, { showAvatar: avaKey === "permissionRequest", user: user },
|
|
7697
|
-
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 }))));
|
|
7698
7796
|
}
|
|
7699
7797
|
return (React__default$1["default"].createElement(React__default$1["default"].Fragment, null));
|
|
7700
7798
|
}
|
|
@@ -7919,7 +8017,7 @@ var SendIcon = function () {
|
|
|
7919
8017
|
|
|
7920
8018
|
var SendButton = function (props) {
|
|
7921
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 },
|
|
7922
|
-
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 })))));
|
|
7923
8021
|
};
|
|
7924
8022
|
|
|
7925
8023
|
var Input = function (props) {
|
|
@@ -7971,7 +8069,7 @@ var Input = function (props) {
|
|
|
7971
8069
|
}, [suggestion, onChange, onSuggestionCommand]);
|
|
7972
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 },
|
|
7973
8071
|
React__default$1["default"].createElement("form", { className: "xappw-input-form", onSubmit: handleOnSubmit },
|
|
7974
|
-
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,
|
|
7975
8073
|
// onFocus={onFocus}
|
|
7976
8074
|
value: value, spellCheck: true }),
|
|
7977
8075
|
React__default$1["default"].createElement("div", { className: "xappw-input-form__buttons" },
|
|
@@ -8024,7 +8122,7 @@ var ChatFooter = function (props) {
|
|
|
8024
8122
|
var contexts = reactRedux.useSelector(function (state) { return state.activeContexts; });
|
|
8025
8123
|
var suggestions = useSuggestions(suggestionSearch, contexts);
|
|
8026
8124
|
var menuItemsRaw = (_b = (_a = useWidgetEnv()) === null || _a === void 0 ? void 0 : _a.menu) === null || _b === void 0 ? void 0 : _b.items;
|
|
8027
|
-
var menuItems = React$1.useMemo(function () { return menuItemsRaw ? menuItemsRaw
|
|
8125
|
+
var menuItems = React$1.useMemo(function () { return menuItemsRaw ? menuItemsRaw : []; }, [menuItemsRaw]);
|
|
8028
8126
|
var branding = (_e = (_d = (_c = useWidgetEnv()) === null || _c === void 0 ? void 0 : _c.footer) === null || _d === void 0 ? void 0 : _d.branding) === null || _e === void 0 ? void 0 : _e.text;
|
|
8029
8127
|
var brandingEnabled = (_h = (_g = (_f = useWidgetEnv()) === null || _f === void 0 ? void 0 : _f.footer) === null || _g === void 0 ? void 0 : _g.branding) === null || _h === void 0 ? void 0 : _h.enabled;
|
|
8030
8128
|
var _m = React$1.useState({
|
|
@@ -8158,7 +8256,9 @@ var ChatRatingContainer = function (props) {
|
|
|
8158
8256
|
var handleRate = React$1.useCallback(function (rating) {
|
|
8159
8257
|
dispatch(sendChatRating(rating));
|
|
8160
8258
|
}, [dispatch]);
|
|
8161
|
-
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 })));
|
|
8162
8262
|
};
|
|
8163
8263
|
|
|
8164
8264
|
var dateFns = {};
|
|
@@ -30277,7 +30377,7 @@ function compileSlotValues(responseOutput, slots, replaceWhenUndefined) {
|
|
|
30277
30377
|
}
|
|
30278
30378
|
|
|
30279
30379
|
var FailureMessage = function (props) {
|
|
30280
|
-
var agents = props.agents, text = props.text, delay = props.delay;
|
|
30380
|
+
var agents = props.agents, text = props.text, delay = props.delay, time = props.time;
|
|
30281
30381
|
var _a = React$1.useState(delay), countdown = _a[0], setCountdown = _a[1];
|
|
30282
30382
|
var agent_names = Object.values(agents).filter(function (agent) { return agent.requestFailed; });
|
|
30283
30383
|
React$1.useEffect(function () {
|
|
@@ -30315,6 +30415,7 @@ var FailureMessage = function (props) {
|
|
|
30315
30415
|
React__default$1["default"].createElement(ChatMessagePart, { user: agent.user, showAvatar: true },
|
|
30316
30416
|
React__default$1["default"].createElement("div", { className: "chat-msg" },
|
|
30317
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"),
|
|
30318
30419
|
React__default$1["default"].createElement("span", null, failureMessage)))))));
|
|
30319
30420
|
})));
|
|
30320
30421
|
};
|
|
@@ -30383,12 +30484,14 @@ var OfflineForm = function (props) {
|
|
|
30383
30484
|
return React__default$1["default"].createElement(MessageForm, { title: "Offline message card title", onSubmit: props.onSubmit });
|
|
30384
30485
|
};
|
|
30385
30486
|
|
|
30386
|
-
var OfflineFormContainer = function (
|
|
30487
|
+
var OfflineFormContainer = function (props) {
|
|
30387
30488
|
var dispatch = useChatServerDispatch();
|
|
30388
30489
|
var handleSubmit = React$1.useCallback(function (data) {
|
|
30389
30490
|
dispatch(sendOfflineMsg(data));
|
|
30390
30491
|
}, [dispatch]);
|
|
30391
|
-
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 })));
|
|
30392
30495
|
};
|
|
30393
30496
|
|
|
30394
30497
|
var PrechatForm = function (props) {
|
|
@@ -30401,7 +30504,7 @@ var PrechatForm = function (props) {
|
|
|
30401
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 })));
|
|
30402
30505
|
};
|
|
30403
30506
|
|
|
30404
|
-
var PrechatFormContainer = function (
|
|
30507
|
+
var PrechatFormContainer = function (props) {
|
|
30405
30508
|
var dispatch = useChatServerDispatch();
|
|
30406
30509
|
var handleSubmit = React$1.useCallback(function (data) {
|
|
30407
30510
|
// Don't send empty messages
|
|
@@ -30413,7 +30516,9 @@ var PrechatFormContainer = function (_) {
|
|
|
30413
30516
|
}));
|
|
30414
30517
|
dispatch(executeAction(data.message));
|
|
30415
30518
|
}, [dispatch]);
|
|
30416
|
-
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 })));
|
|
30417
30522
|
};
|
|
30418
30523
|
|
|
30419
30524
|
var defaultProps$1 = {
|
|
@@ -30449,6 +30554,7 @@ function getMessageByType(msg) {
|
|
|
30449
30554
|
}
|
|
30450
30555
|
var SystemMessage = function (props) {
|
|
30451
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"),
|
|
30452
30558
|
React__default$1["default"].createElement("span", { className: "system-msg" }, getMessageByType(props.message))));
|
|
30453
30559
|
};
|
|
30454
30560
|
function convertToSentenceCase(s) {
|
|
@@ -30513,6 +30619,8 @@ var MessageList = function (props) {
|
|
|
30513
30619
|
write: handleWrite,
|
|
30514
30620
|
openUrl: onOpenUrl
|
|
30515
30621
|
}); }, [handleSend, handleWrite, onOpenUrl]);
|
|
30622
|
+
var date = new Date();
|
|
30623
|
+
var time = date.getHours() + ':' + date.getMinutes();
|
|
30516
30624
|
/**
|
|
30517
30625
|
* Render the message based on widget state or message type. offline and pre chat are pseudo messages.
|
|
30518
30626
|
*
|
|
@@ -30525,24 +30633,26 @@ var MessageList = function (props) {
|
|
|
30525
30633
|
switch (msg.type) {
|
|
30526
30634
|
case "chat.file":
|
|
30527
30635
|
case "chat.msg":
|
|
30528
|
-
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) }));
|
|
30529
30637
|
case "chat.failureMsg":
|
|
30530
|
-
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)));
|
|
30531
30639
|
case "chat.memberjoin":
|
|
30532
30640
|
case "chat.memberleave":
|
|
30533
30641
|
case "chat.rating":
|
|
30534
30642
|
case "chat.typing":
|
|
30535
|
-
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 }));
|
|
30536
30644
|
case "chat.request.rating":
|
|
30537
|
-
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 }));
|
|
30538
30646
|
case "chat.offline":
|
|
30539
|
-
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 });
|
|
30540
30648
|
case "chat.prechat":
|
|
30541
|
-
return React__default$1["default"].createElement(PrechatFormContainer, { key: "prechat" });
|
|
30649
|
+
return React__default$1["default"].createElement(PrechatFormContainer, { key: "prechat", time: time });
|
|
30542
30650
|
default:
|
|
30543
|
-
return React__default$1["default"].createElement("
|
|
30544
|
-
"
|
|
30545
|
-
|
|
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))));
|
|
30546
30656
|
}
|
|
30547
30657
|
}
|
|
30548
30658
|
/**
|
|
@@ -30839,7 +30949,7 @@ function getButtonStyle(style) {
|
|
|
30839
30949
|
});
|
|
30840
30950
|
}
|
|
30841
30951
|
function getMenuItemStyle(style) {
|
|
30842
|
-
return union(getTextStyle(style === null || style === void 0 ? void 0 : style.text), 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));
|
|
30843
30953
|
}
|
|
30844
30954
|
function getMenuStyle(style) {
|
|
30845
30955
|
return union(withPrefix("item-", getMenuItemStyle(style === null || style === void 0 ? void 0 : style.item)));
|
|
@@ -31020,6 +31130,9 @@ var ChatWidget = function (props) {
|
|
|
31020
31130
|
function chatButtonOnClick() {
|
|
31021
31131
|
set$1("opened", true);
|
|
31022
31132
|
setVisible(true);
|
|
31133
|
+
setTimeout(function () {
|
|
31134
|
+
document.getElementById("chatWidgetInput").focus();
|
|
31135
|
+
}, 100);
|
|
31023
31136
|
}
|
|
31024
31137
|
var isOffline = chatState.accountStatus === "offline" && !chatState.isChatting;
|
|
31025
31138
|
var messages = chatState && chatState.chats;
|