@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/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("div", { className: "chat-button ".concat(props.addClass) },
1898
- React__default$1["default"].createElement("div", { id: "xapp-widget-button", className: "chat-button__btn", onClick: props.onClick },
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, onClick: props.onClick }, props.config.message)))));
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
- return (React__default$1["default"].createElement("button", { type: "button", className: "chat-menu-item", onClick: handleClick }, props.label));
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 (label, i) {
7125
- return React__default$1["default"].createElement(ChatMenuItem, { key: i, onClick: props.onItemClick, label: label });
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(Middleware, { key: index, msg: display, ctx: props.middlewareContext });
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.map(function (item) { return item.label; }) : []; }, [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(ChatRating, { agent: props.agent, hasRating: props.hasRating, shouldDisplay: props.shouldDisplay, onRate: handleRate });
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(OfflineForm, { onSubmit: handleSubmit });
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(PrechatForm, { onSubmit: handleSubmit });
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("div", { key: +new Date() },
30544
- "Unhandled message: ",
30545
- JSON.stringify(msg));
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;