@patternfly/chatbot 2.2.0-prerelease.20 → 2.2.0-prerelease.22
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/cjs/Message/Message.d.ts +3 -0
- package/dist/cjs/Message/Message.js +22 -5
- package/dist/cjs/Message/Message.test.js +94 -0
- package/dist/cjs/Message/TableMessage/TableMessage.d.ts +20 -0
- package/dist/cjs/Message/TableMessage/TableMessage.js +67 -0
- package/dist/cjs/Message/TableMessage/TbodyMessage.d.ts +7 -0
- package/dist/cjs/Message/TableMessage/TbodyMessage.js +33 -0
- package/dist/cjs/Message/TableMessage/TdMessage.d.ts +5 -0
- package/dist/cjs/Message/TableMessage/TdMessage.js +26 -0
- package/dist/cjs/Message/TableMessage/ThMessage.d.ts +5 -0
- package/dist/cjs/Message/TableMessage/ThMessage.js +26 -0
- package/dist/cjs/Message/TableMessage/TheadMessage.d.ts +5 -0
- package/dist/cjs/Message/TableMessage/TheadMessage.js +26 -0
- package/dist/cjs/Message/TableMessage/TrMessage.d.ts +7 -0
- package/dist/cjs/Message/TableMessage/TrMessage.js +37 -0
- package/dist/cjs/MessageBar/MessageBar.d.ts +4 -1
- package/dist/cjs/MessageBar/MessageBar.js +125 -39
- package/dist/css/main.css +59 -17
- package/dist/css/main.css.map +1 -1
- package/dist/esm/Message/Message.d.ts +3 -0
- package/dist/esm/Message/Message.js +22 -5
- package/dist/esm/Message/Message.test.js +94 -0
- package/dist/esm/Message/TableMessage/TableMessage.d.ts +20 -0
- package/dist/esm/Message/TableMessage/TableMessage.js +62 -0
- package/dist/esm/Message/TableMessage/TbodyMessage.d.ts +7 -0
- package/dist/esm/Message/TableMessage/TbodyMessage.js +28 -0
- package/dist/esm/Message/TableMessage/TdMessage.d.ts +5 -0
- package/dist/esm/Message/TableMessage/TdMessage.js +21 -0
- package/dist/esm/Message/TableMessage/ThMessage.d.ts +5 -0
- package/dist/esm/Message/TableMessage/ThMessage.js +21 -0
- package/dist/esm/Message/TableMessage/TheadMessage.d.ts +5 -0
- package/dist/esm/Message/TableMessage/TheadMessage.js +21 -0
- package/dist/esm/Message/TableMessage/TrMessage.d.ts +7 -0
- package/dist/esm/Message/TableMessage/TrMessage.js +32 -0
- package/dist/esm/MessageBar/MessageBar.d.ts +4 -1
- package/dist/esm/MessageBar/MessageBar.js +125 -39
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/BotMessage.tsx +27 -1
- package/patternfly-docs/content/extensions/chatbot/examples/Messages/UserMessage.tsx +27 -1
- package/src/Message/Message.test.tsx +99 -0
- package/src/Message/Message.tsx +25 -4
- package/src/Message/TableMessage/TableMessage.scss +23 -0
- package/src/Message/TableMessage/TableMessage.tsx +83 -0
- package/src/Message/TableMessage/TbodyMessage.tsx +20 -0
- package/src/Message/TableMessage/TdMessage.tsx +11 -0
- package/src/Message/TableMessage/ThMessage.tsx +11 -0
- package/src/Message/TableMessage/TheadMessage.tsx +11 -0
- package/src/Message/TableMessage/TrMessage.tsx +27 -0
- package/src/Message/TextMessage/TextMessage.scss +5 -0
- package/src/MessageBar/MessageBar.scss +35 -18
- package/src/MessageBar/MessageBar.tsx +144 -53
- package/src/main.scss +1 -0
@@ -16,52 +16,144 @@ var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
16
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
17
17
|
exports.MessageBar = void 0;
|
18
18
|
const react_1 = __importDefault(require("react"));
|
19
|
+
const react_core_1 = require("@patternfly/react-core");
|
19
20
|
// Import Chatbot components
|
20
21
|
const SendButton_1 = __importDefault(require("./SendButton"));
|
21
22
|
const MicrophoneButton_1 = __importDefault(require("./MicrophoneButton"));
|
22
23
|
const AttachButton_1 = require("./AttachButton");
|
23
24
|
const AttachMenu_1 = __importDefault(require("../AttachMenu"));
|
24
25
|
const StopButton_1 = __importDefault(require("./StopButton"));
|
25
|
-
const dompurify_1 = __importDefault(require("dompurify"));
|
26
26
|
const MessageBar = (_a) => {
|
27
|
-
var { onSendMessage, className, alwayShowSendButton, hasAttachButton = true, hasMicrophoneButton, handleAttach, attachMenuProps, isSendButtonDisabled, handleStopButton, hasStopButton, buttonProps, onChange } = _a, props = __rest(_a, ["onSendMessage", "className", "alwayShowSendButton", "hasAttachButton", "hasMicrophoneButton", "handleAttach", "attachMenuProps", "isSendButtonDisabled", "handleStopButton", "hasStopButton", "buttonProps", "onChange"]);
|
27
|
+
var { onSendMessage, className, alwayShowSendButton, hasAttachButton = true, hasMicrophoneButton, handleAttach, attachMenuProps, isSendButtonDisabled, handleStopButton, hasStopButton, buttonProps, onChange, displayMode } = _a, props = __rest(_a, ["onSendMessage", "className", "alwayShowSendButton", "hasAttachButton", "hasMicrophoneButton", "handleAttach", "attachMenuProps", "isSendButtonDisabled", "handleStopButton", "hasStopButton", "buttonProps", "onChange", "displayMode"]);
|
28
28
|
// Text Input
|
29
29
|
// --------------------------------------------------------------------------
|
30
30
|
const [message, setMessage] = react_1.default.useState('');
|
31
31
|
const [isListeningMessage, setIsListeningMessage] = react_1.default.useState(false);
|
32
|
-
const [
|
32
|
+
const [hasSentMessage, setHasSentMessage] = react_1.default.useState(false);
|
33
33
|
const textareaRef = react_1.default.useRef(null);
|
34
34
|
const attachButtonRef = react_1.default.useRef(null);
|
35
|
-
const
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
35
|
+
const setInitialLineHeight = (field) => {
|
36
|
+
field.style.setProperty('line-height', '1rem');
|
37
|
+
const parent = field.parentElement;
|
38
|
+
if (parent) {
|
39
|
+
parent.style.setProperty('margin-top', `1rem`);
|
40
|
+
parent.style.setProperty('margin-bottom', `0rem`);
|
41
|
+
parent.style.setProperty('height', 'inherit');
|
42
|
+
const grandparent = parent.parentElement;
|
43
|
+
if (grandparent) {
|
44
|
+
grandparent.style.setProperty('flex-basis', 'auto');
|
45
|
+
}
|
43
46
|
}
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
47
|
+
};
|
48
|
+
const setAutoHeight = (field) => {
|
49
|
+
const parent = field.parentElement;
|
50
|
+
if (parent) {
|
51
|
+
parent.style.setProperty('height', 'inherit');
|
52
|
+
const computed = window.getComputedStyle(field);
|
53
|
+
// Calculate the height
|
54
|
+
const height = parseInt(computed.getPropertyValue('border-top-width')) +
|
55
|
+
parseInt(computed.getPropertyValue('padding-top')) +
|
56
|
+
field.scrollHeight +
|
57
|
+
parseInt(computed.getPropertyValue('padding-bottom')) +
|
58
|
+
parseInt(computed.getPropertyValue('border-bottom-width'));
|
59
|
+
parent.style.setProperty('height', `${height}px`);
|
60
|
+
if (height > 32 || window.innerWidth <= 507) {
|
61
|
+
parent.style.setProperty('margin-bottom', `1rem`);
|
62
|
+
parent.style.setProperty('margin-top', `1rem`);
|
50
63
|
}
|
51
|
-
setMessage(newMessage);
|
52
|
-
onChange && onChange(event, newMessage);
|
53
64
|
}
|
54
65
|
};
|
55
|
-
|
56
|
-
|
57
|
-
|
66
|
+
const textIsLongerThan2Lines = (field) => {
|
67
|
+
const lineHeight = parseFloat(window.getComputedStyle(field).lineHeight);
|
68
|
+
const lines = field.scrollHeight / lineHeight;
|
69
|
+
return lines > 2;
|
70
|
+
};
|
71
|
+
const setAutoWidth = (field) => {
|
72
|
+
const parent = field.parentElement;
|
73
|
+
if (parent) {
|
74
|
+
const grandparent = parent.parentElement;
|
75
|
+
if (textIsLongerThan2Lines(field) && grandparent) {
|
76
|
+
grandparent.style.setProperty('flex-basis', `100%`);
|
77
|
+
}
|
78
|
+
}
|
79
|
+
};
|
80
|
+
const handleNewLine = (field) => {
|
81
|
+
const parent = field.parentElement;
|
82
|
+
if (parent) {
|
83
|
+
parent.style.setProperty('margin-bottom', `1rem`);
|
84
|
+
parent.style.setProperty('margin-top', `1rem`);
|
85
|
+
}
|
86
|
+
};
|
87
|
+
react_1.default.useEffect(() => {
|
88
|
+
const field = textareaRef.current;
|
89
|
+
if (field) {
|
90
|
+
if (field.value === '') {
|
91
|
+
if (window.innerWidth > 507) {
|
92
|
+
setInitialLineHeight(field);
|
93
|
+
}
|
94
|
+
}
|
95
|
+
else {
|
96
|
+
setAutoHeight(field);
|
97
|
+
setAutoWidth(field);
|
98
|
+
}
|
99
|
+
}
|
100
|
+
const resetHeight = () => {
|
101
|
+
if (field) {
|
102
|
+
if (field.value === '') {
|
103
|
+
if (window.innerWidth > 507) {
|
104
|
+
setInitialLineHeight(field);
|
105
|
+
}
|
106
|
+
}
|
107
|
+
else {
|
108
|
+
setAutoHeight(field);
|
109
|
+
setAutoWidth(field);
|
110
|
+
}
|
111
|
+
}
|
112
|
+
};
|
113
|
+
window.addEventListener('resize', resetHeight);
|
114
|
+
return () => {
|
115
|
+
window.removeEventListener('resize', resetHeight);
|
116
|
+
};
|
117
|
+
}, []);
|
118
|
+
react_1.default.useEffect(() => {
|
119
|
+
const field = textareaRef.current;
|
120
|
+
if (field) {
|
121
|
+
if (field.value === '') {
|
122
|
+
setInitialLineHeight(textareaRef.current);
|
123
|
+
}
|
124
|
+
else {
|
125
|
+
setAutoHeight(textareaRef.current);
|
126
|
+
setAutoWidth(field);
|
127
|
+
}
|
128
|
+
}
|
129
|
+
}, [displayMode, message]);
|
130
|
+
react_1.default.useEffect(() => {
|
131
|
+
const field = textareaRef.current;
|
132
|
+
if (field) {
|
133
|
+
setInitialLineHeight(field);
|
134
|
+
setHasSentMessage(false);
|
135
|
+
}
|
136
|
+
}, [hasSentMessage]);
|
137
|
+
const handleChange = react_1.default.useCallback((event) => {
|
138
|
+
onChange && onChange(event, event.target.value);
|
58
139
|
if (textareaRef.current) {
|
59
|
-
|
60
|
-
|
61
|
-
|
140
|
+
if (event.target.value === '') {
|
141
|
+
setInitialLineHeight(textareaRef.current);
|
142
|
+
}
|
143
|
+
else {
|
144
|
+
setAutoHeight(textareaRef.current);
|
145
|
+
}
|
62
146
|
}
|
63
|
-
setMessage(
|
64
|
-
}, [
|
147
|
+
setMessage(event.target.value);
|
148
|
+
}, []);
|
149
|
+
// Handle sending message
|
150
|
+
const handleSend = react_1.default.useCallback(() => {
|
151
|
+
setMessage((m) => {
|
152
|
+
onSendMessage(m);
|
153
|
+
setHasSentMessage(true);
|
154
|
+
return '';
|
155
|
+
});
|
156
|
+
}, [onSendMessage]);
|
65
157
|
const handleKeyDown = react_1.default.useCallback((event) => {
|
66
158
|
if (event.key === 'Enter' && !event.shiftKey) {
|
67
159
|
event.preventDefault();
|
@@ -69,6 +161,11 @@ const MessageBar = (_a) => {
|
|
69
161
|
handleSend();
|
70
162
|
}
|
71
163
|
}
|
164
|
+
if (event.key === 'Enter' && event.shiftKey) {
|
165
|
+
if (textareaRef.current) {
|
166
|
+
handleNewLine(textareaRef.current);
|
167
|
+
}
|
168
|
+
}
|
72
169
|
}, [handleSend, isSendButtonDisabled, handleStopButton]);
|
73
170
|
const handleAttachMenuToggle = () => {
|
74
171
|
(attachMenuProps === null || attachMenuProps === void 0 ? void 0 : attachMenuProps.setIsAttachMenuOpen) && (attachMenuProps === null || attachMenuProps === void 0 ? void 0 : attachMenuProps.setIsAttachMenuOpen(!(attachMenuProps === null || attachMenuProps === void 0 ? void 0 : attachMenuProps.isAttachMenuOpen)));
|
@@ -76,11 +173,6 @@ const MessageBar = (_a) => {
|
|
76
173
|
};
|
77
174
|
const handleSpeechRecognition = (message) => {
|
78
175
|
setMessage(message);
|
79
|
-
const textarea = textareaRef.current;
|
80
|
-
if (textarea) {
|
81
|
-
textarea.focus();
|
82
|
-
textarea.textContent = dompurify_1.default.sanitize(message);
|
83
|
-
}
|
84
176
|
onChange && onChange({}, message);
|
85
177
|
};
|
86
178
|
const renderButtons = () => {
|
@@ -94,15 +186,9 @@ const MessageBar = (_a) => {
|
|
94
186
|
hasMicrophoneButton && (react_1.default.createElement(MicrophoneButton_1.default, Object.assign({ isListening: isListeningMessage, onIsListeningChange: setIsListeningMessage, onSpeechRecognition: handleSpeechRecognition, tooltipContent: (_h = buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.microphone) === null || _h === void 0 ? void 0 : _h.tooltipContent, language: (_j = buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.microphone) === null || _j === void 0 ? void 0 : _j.language }, (_k = buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.microphone) === null || _k === void 0 ? void 0 : _k.props))),
|
95
187
|
(alwayShowSendButton || message) && (react_1.default.createElement(SendButton_1.default, Object.assign({ value: message, onClick: handleSend, isDisabled: isSendButtonDisabled, tooltipContent: (_l = buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.send) === null || _l === void 0 ? void 0 : _l.tooltipContent }, (_m = buttonProps === null || buttonProps === void 0 ? void 0 : buttonProps.send) === null || _m === void 0 ? void 0 : _m.props)))));
|
96
188
|
};
|
97
|
-
const placeholder = isListeningMessage ? 'Listening' : 'Send a message...';
|
98
189
|
const messageBarContents = (react_1.default.createElement(react_1.default.Fragment, null,
|
99
190
|
react_1.default.createElement("div", { className: "pf-chatbot__message-bar-input" },
|
100
|
-
|
101
|
-
react_1.default.createElement("div", Object.assign({ contentEditable: true, suppressContentEditableWarning: true, role: "textbox", "aria-multiline": "false", className: "pf-chatbot__message-textarea", onInput: handleInput, onFocus: () => setShowPlaceholder(false), onBlur: () => {
|
102
|
-
if (message === '') {
|
103
|
-
setShowPlaceholder(!showPlaceholder);
|
104
|
-
}
|
105
|
-
}, "aria-label": placeholder, ref: textareaRef, onKeyDown: handleKeyDown }, props))),
|
191
|
+
react_1.default.createElement(react_core_1.TextArea, Object.assign({ className: "pf-chatbot__message-textarea", value: message, onChange: handleChange, "aria-label": isListeningMessage ? 'Listening' : 'Send a message...', placeholder: isListeningMessage ? 'Listening' : 'Send a message...', ref: textareaRef, onKeyDown: handleKeyDown }, props))),
|
106
192
|
react_1.default.createElement("div", { className: "pf-chatbot__message-bar-actions" }, renderButtons())));
|
107
193
|
if (attachMenuProps) {
|
108
194
|
return (react_1.default.createElement(AttachMenu_1.default, Object.assign({ toggle: (toggleRef) => (react_1.default.createElement("div", { ref: toggleRef, className: `pf-chatbot__message-bar ${className !== null && className !== void 0 ? className : ''}` }, messageBarContents)), filteredItems: attachMenuProps === null || attachMenuProps === void 0 ? void 0 : attachMenuProps.attachMenuItems }, (attachMenuProps && { isOpen: attachMenuProps.isAttachMenuOpen }), { onOpenChange: (isAttachMenuOpen) => {
|
package/dist/css/main.css
CHANGED
@@ -1091,6 +1091,10 @@
|
|
1091
1091
|
display: inline-block;
|
1092
1092
|
}
|
1093
1093
|
|
1094
|
+
.pf-chatbot__message-and-actions:has(.pf-chatbot__message-table) {
|
1095
|
+
width: 100%;
|
1096
|
+
}
|
1097
|
+
|
1094
1098
|
.pf-chatbot__message-text {
|
1095
1099
|
width: fit-content;
|
1096
1100
|
padding: var(--pf-t--global--spacer--sm) 0 var(--pf-t--global--spacer--sm) 0;
|
@@ -1192,6 +1196,10 @@
|
|
1192
1196
|
display: inline-block;
|
1193
1197
|
}
|
1194
1198
|
|
1199
|
+
.pf-chatbot__message-and-actions:has(.pf-chatbot__message-table) {
|
1200
|
+
width: 100%;
|
1201
|
+
}
|
1202
|
+
|
1195
1203
|
.pf-chatbot__message-text {
|
1196
1204
|
width: fit-content;
|
1197
1205
|
padding: var(--pf-t--global--spacer--sm) 0 var(--pf-t--global--spacer--sm) 0;
|
@@ -1245,6 +1253,26 @@
|
|
1245
1253
|
padding: var(--pf-t--global--spacer--sm);
|
1246
1254
|
}
|
1247
1255
|
|
1256
|
+
.pf-chatbot__message-table {
|
1257
|
+
border-radius: var(--pf-t--global--border--radius--small);
|
1258
|
+
--pf-v6-c-table--BackgroundColor: var(--pf-t--global--background--color--tertiary--default);
|
1259
|
+
--pf-v6-c-table--BorderColor: var(--pf-t--global--border--color--default);
|
1260
|
+
padding: 0 var(--pf-t--global--spacer--lg) 0 var(--pf-t--global--spacer--lg);
|
1261
|
+
}
|
1262
|
+
.pf-chatbot__message-table.pf-m-grid.pf-v6-c-table tbody:where(.pf-v6-c-table__tbody):first-of-type {
|
1263
|
+
border-block-start: 0;
|
1264
|
+
}
|
1265
|
+
.pf-chatbot__message-table tbody {
|
1266
|
+
border-radius: var(--pf-t--global--border--radius--small);
|
1267
|
+
}
|
1268
|
+
.pf-chatbot__message-table tr {
|
1269
|
+
--pf-v6-c-table__tr--responsive--PaddingInlineEnd: 0;
|
1270
|
+
--pf-v6-c-table__tr--responsive--PaddingInlineStart: 0;
|
1271
|
+
}
|
1272
|
+
.pf-chatbot__message-table .pf-v6-c-table__tr:last-of-type {
|
1273
|
+
border-block-end: 0;
|
1274
|
+
}
|
1275
|
+
|
1248
1276
|
.pf-chatbot__message-loading {
|
1249
1277
|
width: 36px;
|
1250
1278
|
padding: var(--pf-t--global--spacer--sm);
|
@@ -1543,25 +1571,15 @@
|
|
1543
1571
|
}
|
1544
1572
|
.pf-chatbot__message-bar-input {
|
1545
1573
|
flex: 1 1 auto;
|
1546
|
-
padding-block-start: var(--pf-
|
1547
|
-
padding-block-end: var(--pf-
|
1548
|
-
overflow: hidden;
|
1549
|
-
position: relative;
|
1550
|
-
}
|
1551
|
-
.pf-chatbot__message-bar-placeholder {
|
1552
|
-
position: absolute;
|
1553
|
-
top: 20px;
|
1554
|
-
left: 16px;
|
1555
|
-
color: var(--pf-t--global--text--color--placeholder);
|
1556
|
-
pointer-events: none;
|
1557
|
-
font-size: var(--pf-t--chatbot--font-size);
|
1574
|
+
padding-block-start: var(--pf-t--global--spacer--sm);
|
1575
|
+
padding-block-end: var(--pf-t--global--spacer--sm);
|
1558
1576
|
}
|
1559
1577
|
|
1560
1578
|
.pf-chatbot__message-textarea {
|
1561
|
-
|
1562
|
-
|
1563
|
-
|
1564
|
-
|
1579
|
+
--pf-v6-c-form-control--before--BorderStyle: none;
|
1580
|
+
--pf-v6-c-form-control--after--BorderStyle: none;
|
1581
|
+
resize: none;
|
1582
|
+
background-color: transparent;
|
1565
1583
|
font-size: var(--pf-t--global--font--size--md);
|
1566
1584
|
line-height: 1.5rem;
|
1567
1585
|
max-height: 12rem;
|
@@ -1572,7 +1590,31 @@
|
|
1572
1590
|
height: 100%;
|
1573
1591
|
width: 100%;
|
1574
1592
|
display: block !important;
|
1575
|
-
|
1593
|
+
}
|
1594
|
+
.pf-chatbot__message-textarea .pf-v6-c-form-control__textarea:focus-visible {
|
1595
|
+
outline: none;
|
1596
|
+
}
|
1597
|
+
.pf-chatbot__message-textarea textarea {
|
1598
|
+
outline-offset: 0px;
|
1599
|
+
--pf-v6-c-form-control--PaddingBlockStart: 0;
|
1600
|
+
--pf-v6-c-form-control--PaddingBlockEnd: 0;
|
1601
|
+
--pf-v6-c-form-control--BorderRadius: 0;
|
1602
|
+
}
|
1603
|
+
.pf-chatbot__message-textarea textarea:focus-visible {
|
1604
|
+
outline: none;
|
1605
|
+
}
|
1606
|
+
|
1607
|
+
@media screen and (max-width: 359px) {
|
1608
|
+
.pf-chatbot__message-textarea {
|
1609
|
+
margin-top: var(--pf-t--global--spacer--md) !important;
|
1610
|
+
margin-bottom: var(--pf-t--global--spacer--md) !important;
|
1611
|
+
}
|
1612
|
+
}
|
1613
|
+
@media screen and (max-width: 415px) {
|
1614
|
+
.pf-chatbot--embedded .pf-chatbot__message-textarea {
|
1615
|
+
margin-top: var(--pf-t--global--spacer--md) !important;
|
1616
|
+
margin-bottom: var(--pf-t--global--spacer--md) !important;
|
1617
|
+
}
|
1576
1618
|
}
|
1577
1619
|
|
1578
1620
|
.pf-chatbot__jump {
|
package/dist/css/main.css.map
CHANGED
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"sourceRoot":"","sources":["../../src/AttachMenu/AttachMenu.scss","../../src/Chatbot/Chatbot.scss","../../src/ChatbotAlert/ChatbotAlert.scss","../../src/ChatbotContent/ChatbotContent.scss","../../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss","../../src/ChatbotFooter/ChatbotFootnote.scss","../../src/ChatbotFooter/ChatbotFooter.scss","../../src/ChatbotHeader/ChatbotHeader.scss","../../src/ChatbotModal/ChatbotModal.scss","../../src/ChatbotPopover/ChatbotPopover.scss","../../src/ChatbotToggle/ChatbotToggle.scss","../../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss","../../src/CodeModal/CodeModal.scss","../../src/Compare/Compare.scss","../../src/FileDetails/FileDetails.scss","../../src/FileDetailsLabel/FileDetailsLabel.scss","../../src/FileDropZone/FileDropZone.scss","../../src/Message/Message.scss","../../src/Message/MessageLoading.scss","../../src/Message/CodeBlockMessage/CodeBlockMessage.scss","../../src/Message/TextMessage/TextMessage.scss","../../src/Message/ListMessage/ListMessage.scss","../../src/Message/QuickStarts/QuickStartTile.scss","../../src/Message/QuickResponse/QuickResponse.scss","../../src/Message/UserFeedback/UserFeedback.scss","../../src/MessageBar/AttachButton.scss","../../src/MessageBar/MicrophoneButton.scss","../../src/MessageBar/SendButton.scss","../../src/MessageBar/StopButton.scss","../../src/MessageBar/MessageBar.scss","../../src/MessageBox/JumpButton.scss","../../src/MessageBox/MessageBox.scss","../../src/ResponseActions/ResponseActions.scss","../../src/Settings/Settings.scss","../../src/SourcesCard/SourcesCard.scss","../../src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss","../../src/TermsOfUse/TermsOfUse.scss","../../src/main.scss"],"names":[],"mappings":"AAAA;EACE;EACA;;;AAGF;AACE;AAsBA;AASA;;AA9BA;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAGF;AACE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;;AAGF;EACE;;AAIF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;;ACxDJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAKF;EAvBF;IAwBI;IACA;;;AAIF;EA7BF;IA8BI;;;;AAOJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EAXF;IAYI;;;;AAOJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAIF;EAdF;IAeI;;;;AAIJ;EACE;;;AAGF;AAAA;AAAA;EAGE;;;AC1GF;EACE;EACA;EACA;;;ACAF;EACE;EACA;EACA;EACA;EACA;;AAGA;EARF;IASI;;;;AAOJ;EAGI;AAAA;IACE;IACA;;;ACpBJ;EACE;EACA;;AAIF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEF;EACE;;AAGF;EACE;;AAGF;EACE;;;AAMJ;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAIF;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAKA;EACE;EACA;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAKA;EACE;;;AASJ;EACE;;;AAQF;EACE;;AACA;EACE;;;AASJ;EACE;;AACA;EACE;EACA;;AAEF;EACE;;;AASF;AAAA;AAAA;EACE;;;ACvLN;EACE;;AAEA;EACE;EACA;;;ACHJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAMF;EAGI;AAAA;IACE;;EACA;AAAA;IACE;;EAGJ;AAAA;IACE;IACA;IACA;;;AASJ;EACE;;;AC5CJ;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;;;AAQN;EAGI;AAAA;IACE;;EAEF;AAAA;IACE;;;AASJ;EACE;;;AAOJ;AAAA;EAEE;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;;AAOJ;EACE;;;AAOJ;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;;;ACvIF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;AAAA;EAEE;;AAEF;EACE;EACA;;AAEF;EACE;;;AAOJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAGJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAOJ;EACE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAQE;EACE;;;AAQN;EACE;;;ACvFA;EAA0B;;AAMxB;EAAM;;AACN;EAAuB;;AACvB;EACE;;AAIF;EACE;EACA;;AAEF;EACE;;;ACnBN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;AAGF;EACE;;AAIF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;;;AC3BF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;;AAOJ;EAIM;AAAA;IACE;IACA;;;AC1CN;EACE;EACA;EACA;EACA;;AAEF;EACE;AACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;;;AASA;EACE;EACA;;;AAKN;EACE;;;AAGF;EACE;;;AClFF;EACE;EACA;EACA;EACA;;;AAEF;EACE;;AAEA;EACE;EACA;EACA;;;AAGJ;EACE;EACA;EACA;;AAEA;EALF;IAMI;;;AAGF;EACE;;AAEA;EAHF;IAII;;;;AAKN;EACE;;AAEA;EACE;;AAGF;EACE;;AAIA;EADF;IAEI;;;;AAIN;EACE;;AAEA;EAHF;IAII;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EARF;IASI;IACA;IACA;;;;ACrEJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;;;ACvBF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EAEA;EACA;EACA;;AACA;EACE;;AAGF;AAAA;EAEE;EACA;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;;;AAKF;EACE;;AAGF;EACE;;;AAIJ;AAAA;EAEE;EACA;;AAEA;AAAA;EACE;;;AAKF;EACE;;;AAMF;AAAA;EACE;;;AC/DJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;;AAGA;EANF;IAOI;;;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AACA;EACE;EACA;EACA;EACA;;;AAME;EADF;IAEI;IACA;IACA;;EAEA;IACE;;;;AChDR;EACE;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAKF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;;AAEF;EACE;;AAMJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAMJ;EACE;EACA;EACA;;;AC7FF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;IACE;;EAEF;IAEE;;;;AC9CN;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EAEE;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAKN;EACE;EACA;;;AC1EE;EACE;;;AAMN;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;;AAKF;EACE;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;;
|
1
|
+
{"version":3,"sourceRoot":"","sources":["../../src/AttachMenu/AttachMenu.scss","../../src/Chatbot/Chatbot.scss","../../src/ChatbotAlert/ChatbotAlert.scss","../../src/ChatbotContent/ChatbotContent.scss","../../src/ChatbotConversationHistoryNav/ChatbotConversationHistoryNav.scss","../../src/ChatbotFooter/ChatbotFootnote.scss","../../src/ChatbotFooter/ChatbotFooter.scss","../../src/ChatbotHeader/ChatbotHeader.scss","../../src/ChatbotModal/ChatbotModal.scss","../../src/ChatbotPopover/ChatbotPopover.scss","../../src/ChatbotToggle/ChatbotToggle.scss","../../src/ChatbotWelcomePrompt/ChatbotWelcomePrompt.scss","../../src/CodeModal/CodeModal.scss","../../src/Compare/Compare.scss","../../src/FileDetails/FileDetails.scss","../../src/FileDetailsLabel/FileDetailsLabel.scss","../../src/FileDropZone/FileDropZone.scss","../../src/Message/Message.scss","../../src/Message/MessageLoading.scss","../../src/Message/CodeBlockMessage/CodeBlockMessage.scss","../../src/Message/TextMessage/TextMessage.scss","../../src/Message/ListMessage/ListMessage.scss","../../src/Message/TableMessage/TableMessage.scss","../../src/Message/QuickStarts/QuickStartTile.scss","../../src/Message/QuickResponse/QuickResponse.scss","../../src/Message/UserFeedback/UserFeedback.scss","../../src/MessageBar/AttachButton.scss","../../src/MessageBar/MicrophoneButton.scss","../../src/MessageBar/SendButton.scss","../../src/MessageBar/StopButton.scss","../../src/MessageBar/MessageBar.scss","../../src/MessageBox/JumpButton.scss","../../src/MessageBox/MessageBox.scss","../../src/ResponseActions/ResponseActions.scss","../../src/Settings/Settings.scss","../../src/SourcesCard/SourcesCard.scss","../../src/SourceDetailsMenuItem/SourceDetailsMenuItem.scss","../../src/TermsOfUse/TermsOfUse.scss","../../src/main.scss"],"names":[],"mappings":"AAAA;EACE;EACA;;;AAGF;AACE;AAsBA;AASA;;AA9BA;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAGF;AACE;;AACA;EACE;EACA;EACA;EACA;EACA;;AAKJ;EACE;;AAGF;EACE;;AAIF;EACE;EACA;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;;ACxDJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAKF;EAvBF;IAwBI;IACA;;;AAIF;EA7BF;IA8BI;;;;AAOJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;EAXF;IAYI;;;;AAOJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAMF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGA;EACE;;AAIF;EAdF;IAeI;;;;AAIJ;EACE;;;AAGF;AAAA;AAAA;EAGE;;;AC1GF;EACE;EACA;EACA;;;ACAF;EACE;EACA;EACA;EACA;EACA;;AAGA;EARF;IASI;;;;AAOJ;EAGI;AAAA;IACE;IACA;;;ACpBJ;EACE;EACA;;AAIF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEF;EACE;;AAGF;EACE;;AAGF;EACE;;;AAMJ;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;EACA;EACA;EACA;;AAIF;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAIF;EACE;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAKA;EACE;EACA;EACA;EACA;EACA;EACA;;AAKJ;EACE;EACA;EACA;EACA;EAEA;EACA;EACA;EACA;;AAKA;EACE;;;AASJ;EACE;;;AAQF;EACE;;AACA;EACE;;;AASJ;EACE;;AACA;EACE;EACA;;AAEF;EACE;;;AASF;AAAA;AAAA;EACE;;;ACvLN;EACE;;AAEA;EACE;EACA;;;ACHJ;EACE;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;;;AAMF;EAGI;AAAA;IACE;;EACA;AAAA;IACE;;EAGJ;AAAA;IACE;IACA;IACA;;;AASJ;EACE;;;AC5CJ;EACE;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;EACA;;AAEA;EACE;;AAKJ;EACE;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAIJ;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AACA;EACE;;;AAQN;EAGI;AAAA;IACE;;EAEF;AAAA;IACE;;;AASJ;EACE;;;AAOJ;AAAA;EAEE;EACA;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;AAGF;AAAA;AAAA;AAAA;EAEE;EACA;EACA;;AAMA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;;AAOJ;EACE;;;AAOJ;AAAA;EAEE;;;AAGF;EACE;;;AAGF;EACE;;;ACvIF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;AAAA;EAEE;;AAEF;EACE;EACA;;AAEF;EACE;;;AAOJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAGJ;EACE;AAAA;IAEE;IACA;IACA;IACA;IACA;IACA;IACA;;;AAOJ;EACE;;;AAMF;EACE;EACA;EACA;EACA;EACA;EACA;;;AAQE;EACE;;;AAQN;EACE;;;ACvFA;EAA0B;;AAMxB;EAAM;;AACN;EAAuB;;AACvB;EACE;;AAIF;EACE;EACA;;AAEF;EACE;;;ACnBN;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EAEE;;AAGF;EACE;;AAIF;EACE;EACA;;;AAIJ;EACE;EACA;EACA;;;AC3BF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;;AAOJ;EAIM;AAAA;IACE;IACA;;;AC1CN;EACE;EACA;EACA;EACA;;AAEF;EACE;AACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;EACA;;AAEF;EACE;;AAEF;EACE;EACA;;AAEF;EACE;;AAEF;EACE;;;AASA;EACE;EACA;;;AAKN;EACE;;;AAGF;EACE;;;AClFF;EACE;EACA;EACA;EACA;;;AAEF;EACE;;AAEA;EACE;EACA;EACA;;;AAGJ;EACE;EACA;EACA;;AAEA;EALF;IAMI;;;AAGF;EACE;;AAEA;EAHF;IAII;;;;AAKN;EACE;;AAEA;EACE;;AAGF;EACE;;AAIA;EADF;IAEI;;;;AAIN;EACE;;AAEA;EAHF;IAII;;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAEA;EARF;IASI;IACA;IACA;;;;ACrEJ;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;;;AAGF;EACE;;;AAIF;EACE;EACA;EACA;EACA;EACA;;;ACvBF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EAEA;EACA;EACA;;AACA;EACE;;AAGF;AAAA;EAEE;EACA;;;AAIJ;EACE;EACA;EACA;;AAEA;EACE;;;AAKF;EACE;;AAGF;EACE;;;AAIJ;AAAA;EAEE;EACA;;AAEA;AAAA;EACE;;;AAKF;EACE;;;AAMF;AAAA;EACE;;;AC/DJ;EACE;EACA;;;AAGF;EACE;EACA;EACA;;AAGA;EANF;IAOI;;;;AAIJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAIJ;AACA;EACE;EACA;EACA;EACA;;;AAME;EADF;IAEI;IACA;IACA;;EAEA;IACE;;;;AChDR;EACE;EACA;EACA;EACA;;AAIA;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAKF;EACE;EACA;;AAKF;EACE;EACA;EACA;EACA;;AAKF;EACE;EACA;EACA;;AAGA;EACE;EACA;EACA;;AAIF;EACE;EACA;EACA;;AAEA;EACE;;AAKJ;EACE;;AAEF;EACE;;AAMJ;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;;;AAMJ;EACE;EACA;EACA;;;AC7FF;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;IACE;;EAEF;IAEE;;;;AC9CN;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EAEE;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAKN;EACE;EACA;;;AC1EE;EACE;;;AAMN;EACE;;;AAIF;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;;AAKF;EACE;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;;AD9CN;EACE;EACA;EACA;EACA;;AAGA;EACE;EACA;;AAIF;EACE;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;EACA;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;;AAEA;EAEE;;AAMN;EACE;EACA;EACA;EACA;EACA;;AAEA;AAAA;EAEE;EACA;EACA;;AAEF;EACE;EACA;EACA;;AAGF;EACE;EACA;;;AAKN;EACE;EACA;;;AC1EE;EACE;;;AAMN;EACE;;;AAIF;EACE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;AAGF;EACE;EACA;;;AAKF;EACE;EACA;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;EAKE;;;AC7CN;AAAA;EAEE;EACA;EACA;;AAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAGE;;;AAKF;AAAA;EAEE;EACA;EACA;;;ACtBJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;;AAGF;EACE;;;AJjBJ;EACE;EACA;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEF;EAEE;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;IACE;;EAEF;IAEE;;;;AKjDN;EACE;EACA;;AAEA;EAJF;IAKI;IACA;;;AAKA;EACE;;;AAOF;EACE;;;ACnBJ;EACE;;AAEA;EAHF;IAII;;;AAGF;EAPF;IAQI;;;AAKF;EACE;EACA;;AAIJ;AAAA;EAEE;EACA;;AAIF;EACE;EACA;EACA;;;AC7BJ;EACE;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAEF;EACE;EACA;EACA;;;AAEF;EACE;;;AAEF;EACE;EACA;EACA;EACA;;;AAIF;EACE;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;;;AChDF;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAKA;EACE;;AAIJ;EAEE;;AAEA;EACE;;AAKA;EACE;;;AC5BR;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAMA;EACE;;AAKJ;EACE;EACA;;AAGA;EACE;;AAKA;EACE;;;AAMR;EACE;IACE;;EAEF;IACE;;;AC1CJ;EACE;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EAEE;EACA;;AAEA;EACE;;;AAMJ;EACE;;AACA;EACE;;AAIJ;EACE;EACA;;AAGF;AAAA;EAEE;;;AAIJ;EACE;IACE;IACA;;EAEF;IACE;IACA;;;AC/CJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;;AAEA;EACE;;AAKA;EACE;;;ACrBR;EACE;EACA;EAEA;EACA;EAEA;EACA;EACA;EACA;EACA;EACA;EACA;EAGA;;AAEA;EACE;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;EACE;EACA;EACA;EACA;;AAEF;EACE;;;AAIJ;EACE;IACE;IACA;;;AAKF;EACE;IACE;IACA;;;;ACxFN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;;AAEA;EACE;;AAGF;EAEE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAIF;EA3CF;IA4CI;;;;AC9CJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAIA;EAVF;IAWI;;;AAGF;EAdF;IAeI;;;;AAIJ;EACE;;;AAKF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EAGI;AAAA;IACE;IACA;;;ADtCN;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA,YACE;EAIF;;AAEA;EACE;;AAGF;EAEE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;;AAIF;EA3CF;IA4CI;;;;AEhDJ;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAEA;EACE;;AAEF;EACE;EACA;;;AAKN;EACE;EACA;;;AC1BF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;;;AChCF;EACE;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;EACA;EACA;EACA;EACA;EACA;EACA;EACA;;;AAGF;EACE;;;AAGF;EACE;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;;AAEA;EACE;EACA;EACA;EACA;EACA;EACA;EACA;;AAIA;AAAA;EACE;;AAGJ;EACE;EACA;;AAKA;AAAA;EACE;;AAGJ;EACE;;;ACrER;EACE;EACA;EACA;;;AAGF;EACE;EACA;;;AAGF;EACE;;;AAIF;EACE;EACA;;;AAGA;EACE;;;AAIJ;EACE;;;AAGF;EACE;;;AC9BA;EACE;;AAEA;EACE;EACA;EACA;EACA;EACA;;AAEF;EACE;;AAIJ;EACE;EACA;EACA;EACA;EACA;EACA;;AAGF;EACE;EACA;EACA;;AAGF;EACE;;AAGF;EACE;EACA;EACA;EACA;;AAIF;EACE;IACE;IACA;;;;AAKN;AAAA;EAGE;;AAGE;AAAA;EACE;;AAIJ;AAAA;EACE;;;AC7BJ;EAKE;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;EASA;EACA;EAEA;EAEA;AAAA;AAAA;AAAA;AAAA;AAAA;EAMA;EAKA;EAEA;EACA;EACA;EAEA;EAEA;;;AAMF;EACE;EACA;EAEA;EAEA;EACA;;;AAGF;EACE;EACA","file":"main.css"}
|
@@ -6,6 +6,7 @@ import { QuickStart, QuickstartAction } from './QuickStarts/types';
|
|
6
6
|
import QuickResponse from './QuickResponse/QuickResponse';
|
7
7
|
import { UserFeedbackProps } from './UserFeedback/UserFeedback';
|
8
8
|
import { UserFeedbackCompleteProps } from './UserFeedback/UserFeedbackComplete';
|
9
|
+
import { TableProps } from '@patternfly/react-table';
|
9
10
|
export interface MessageAttachment {
|
10
11
|
/** Name of file attached to the message */
|
11
12
|
name: string;
|
@@ -84,6 +85,8 @@ export interface MessageProps extends Omit<React.HTMLProps<HTMLDivElement>, 'rol
|
|
84
85
|
isLiveRegion?: boolean;
|
85
86
|
/** Ref applied to message */
|
86
87
|
innerRef?: React.Ref<HTMLDivElement>;
|
88
|
+
/** Props for table message. It is important to include a detailed aria-label that describes the purpose of the table. */
|
89
|
+
tableProps?: Required<Pick<TableProps, 'aria-label'>> & TableProps;
|
87
90
|
}
|
88
91
|
export declare const MessageBase: React.FunctionComponent<MessageProps>;
|
89
92
|
declare const Message: React.ForwardRefExoticComponent<Omit<MessageProps, "ref"> & React.RefAttributes<HTMLDivElement>>;
|
@@ -29,8 +29,14 @@ import QuickStartTile from './QuickStarts/QuickStartTile';
|
|
29
29
|
import QuickResponse from './QuickResponse/QuickResponse';
|
30
30
|
import UserFeedback from './UserFeedback/UserFeedback';
|
31
31
|
import UserFeedbackComplete from './UserFeedback/UserFeedbackComplete';
|
32
|
+
import TableMessage from './TableMessage/TableMessage';
|
33
|
+
import TrMessage from './TableMessage/TrMessage';
|
34
|
+
import TdMessage from './TableMessage/TdMessage';
|
35
|
+
import TbodyMessage from './TableMessage/TbodyMessage';
|
36
|
+
import TheadMessage from './TableMessage/TheadMessage';
|
37
|
+
import ThMessage from './TableMessage/ThMessage';
|
32
38
|
export const MessageBase = (_a) => {
|
33
|
-
var { role, content, name, avatar, timestamp, isLoading, actions, sources, botWord = 'AI', loadingWord = 'Loading message', codeBlockProps, quickResponses, quickResponseContainerProps = { numLabels: 5 }, attachments, hasRoundAvatar = true, avatarProps, quickStarts, userFeedbackForm, userFeedbackComplete, isLiveRegion = true, innerRef } = _a, props = __rest(_a, ["role", "content", "name", "avatar", "timestamp", "isLoading", "actions", "sources", "botWord", "loadingWord", "codeBlockProps", "quickResponses", "quickResponseContainerProps", "attachments", "hasRoundAvatar", "avatarProps", "quickStarts", "userFeedbackForm", "userFeedbackComplete", "isLiveRegion", "innerRef"]);
|
39
|
+
var { role, content, name, avatar, timestamp, isLoading, actions, sources, botWord = 'AI', loadingWord = 'Loading message', codeBlockProps, quickResponses, quickResponseContainerProps = { numLabels: 5 }, attachments, hasRoundAvatar = true, avatarProps, quickStarts, userFeedbackForm, userFeedbackComplete, isLiveRegion = true, innerRef, tableProps } = _a, props = __rest(_a, ["role", "content", "name", "avatar", "timestamp", "isLoading", "actions", "sources", "botWord", "loadingWord", "codeBlockProps", "quickResponses", "quickResponseContainerProps", "attachments", "hasRoundAvatar", "avatarProps", "quickStarts", "userFeedbackForm", "userFeedbackComplete", "isLiveRegion", "innerRef", "tableProps"]);
|
34
40
|
let avatarClassName;
|
35
41
|
if (avatarProps && 'className' in avatarProps) {
|
36
42
|
const { className } = avatarProps, rest = __rest(avatarProps, ["className"]);
|
@@ -56,16 +62,27 @@ export const MessageBase = (_a) => {
|
|
56
62
|
var { children } = _a, props = __rest(_a, ["children"]);
|
57
63
|
return (React.createElement(CodeBlockMessage, Object.assign({}, props, codeBlockProps), children));
|
58
64
|
},
|
59
|
-
ul: UnorderedListMessage,
|
60
|
-
ol: (props) => React.createElement(OrderedListMessage, Object.assign({}, props)),
|
61
|
-
li: ListItemMessage,
|
62
65
|
h1: (props) => React.createElement(TextMessage, Object.assign({ component: ContentVariants.h1 }, props)),
|
63
66
|
h2: (props) => React.createElement(TextMessage, Object.assign({ component: ContentVariants.h2 }, props)),
|
64
67
|
h3: (props) => React.createElement(TextMessage, Object.assign({ component: ContentVariants.h3 }, props)),
|
65
68
|
h4: (props) => React.createElement(TextMessage, Object.assign({ component: ContentVariants.h4 }, props)),
|
66
69
|
h5: (props) => React.createElement(TextMessage, Object.assign({ component: ContentVariants.h5 }, props)),
|
67
70
|
h6: (props) => React.createElement(TextMessage, Object.assign({ component: ContentVariants.h6 }, props)),
|
68
|
-
blockquote: (props) => React.createElement(TextMessage, Object.assign({ component: ContentVariants.blockquote }, props))
|
71
|
+
blockquote: (props) => React.createElement(TextMessage, Object.assign({ component: ContentVariants.blockquote }, props)),
|
72
|
+
ul: (props) => React.createElement(UnorderedListMessage, Object.assign({}, props)),
|
73
|
+
ol: (props) => React.createElement(OrderedListMessage, Object.assign({}, props)),
|
74
|
+
li: (props) => React.createElement(ListItemMessage, Object.assign({}, props)),
|
75
|
+
table: (props) => React.createElement(TableMessage, Object.assign({}, props, tableProps)),
|
76
|
+
tbody: (props) => React.createElement(TbodyMessage, Object.assign({}, props)),
|
77
|
+
thead: (props) => React.createElement(TheadMessage, Object.assign({}, props)),
|
78
|
+
tr: (props) => React.createElement(TrMessage, Object.assign({}, props)),
|
79
|
+
td: (props) => {
|
80
|
+
// Conflicts with Td type
|
81
|
+
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
82
|
+
const { width } = props, rest = __rest(props, ["width"]);
|
83
|
+
return React.createElement(TdMessage, Object.assign({}, rest));
|
84
|
+
},
|
85
|
+
th: (props) => React.createElement(ThMessage, Object.assign({}, props))
|
69
86
|
}, remarkPlugins: [remarkGfm] }, content)),
|
70
87
|
!isLoading && sources && React.createElement(SourcesCard, Object.assign({}, sources)),
|
71
88
|
quickStarts && quickStarts.quickStart && (React.createElement(QuickStartTile, { quickStart: quickStarts.quickStart, onSelectQuickStart: quickStarts.onSelectQuickStart, minuteWord: quickStarts.minuteWord, minuteWordPlural: quickStarts.minuteWordPlural, prerequisiteWord: quickStarts.prerequisiteWord, prerequisiteWordPlural: quickStarts.prerequisiteWordPlural, quickStartButtonAriaLabel: quickStarts.quickStartButtonAriaLabel })),
|
@@ -88,6 +88,50 @@ const HEADING = `
|
|
88
88
|
const BLOCK_QUOTES = `> Blockquotes can also be nested...
|
89
89
|
>> ...by using additional greater-than signs (>) right next to each other...
|
90
90
|
> > > ...or with spaces between each sign.`;
|
91
|
+
const TABLE = `
|
92
|
+
|
93
|
+
| Column 1 | Column 2 |
|
94
|
+
|-|-|
|
95
|
+
| Cell 1 | Cell 2 |
|
96
|
+
| Cell 3 | Cell 4 |
|
97
|
+
|
98
|
+
`;
|
99
|
+
const ONE_COLUMN_TABLE = `
|
100
|
+
|
101
|
+
| Column 1 |
|
102
|
+
|-|
|
103
|
+
| Cell 1 |
|
104
|
+
| Cell 2 |
|
105
|
+
|
106
|
+
`;
|
107
|
+
const ONE_CELL_TABLE = `
|
108
|
+
|
109
|
+
| Column 1 |
|
110
|
+
|-|
|
111
|
+
| Cell 1 |
|
112
|
+
|
113
|
+
`;
|
114
|
+
const HEADERLESS_TABLE = `
|
115
|
+
|
116
|
+
| |
|
117
|
+
|-|
|
118
|
+
| Cell 1 |
|
119
|
+
|
120
|
+
`;
|
121
|
+
const CHILDLESS_TABLE = `
|
122
|
+
|
123
|
+
| Column 1 |
|
124
|
+
|-|
|
125
|
+
| |
|
126
|
+
|
127
|
+
`;
|
128
|
+
const EMPTY_TABLE = `
|
129
|
+
|
130
|
+
| |
|
131
|
+
|-|
|
132
|
+
| |
|
133
|
+
|
134
|
+
`;
|
91
135
|
const checkListItemsRendered = () => {
|
92
136
|
const items = ['Item 1', 'Item 2', 'Item 3'];
|
93
137
|
expect(screen.getAllByRole('listitem')).toHaveLength(3);
|
@@ -413,4 +457,54 @@ describe('Message', () => {
|
|
413
457
|
expect(screen.getByRole('heading', { name: /h5 Heading/i })).toBeTruthy();
|
414
458
|
expect(screen.getByRole('heading', { name: /h6 Heading/i })).toBeTruthy();
|
415
459
|
});
|
460
|
+
it('should render table correctly', () => {
|
461
|
+
render(React.createElement(Message, { avatar: "./img", role: "user", name: "User", content: TABLE }));
|
462
|
+
expect(screen.getByRole('row', { name: /Column 1 Column 2/i })).toBeTruthy();
|
463
|
+
expect(screen.getByRole('row', { name: /Cell 1 Cell 2/i })).toBeTruthy();
|
464
|
+
expect(screen.getByRole('row', { name: /Cell 3 Cell 4/i })).toBeTruthy();
|
465
|
+
expect(screen.getByRole('columnheader', { name: /Column 1/i })).toBeTruthy();
|
466
|
+
expect(screen.getByRole('columnheader', { name: /Column 2/i })).toBeTruthy();
|
467
|
+
expect(screen.getByRole('cell', { name: /Cell 1/i })).toBeTruthy();
|
468
|
+
expect(screen.getByRole('cell', { name: /Cell 2/i })).toBeTruthy();
|
469
|
+
expect(screen.getByRole('cell', { name: /Cell 3/i })).toBeTruthy();
|
470
|
+
expect(screen.getByRole('cell', { name: /Cell 4/i })).toBeTruthy();
|
471
|
+
});
|
472
|
+
it('should render table data labels correctly for mobile breakpoint', () => {
|
473
|
+
render(React.createElement(Message, { avatar: "./img", role: "user", name: "User", content: TABLE }));
|
474
|
+
expect(screen.getByRole('row', { name: /Cell 1 Cell 2/i })).toHaveAttribute('extraHeaders', 'Column 1,Column 2');
|
475
|
+
expect(screen.getByRole('row', { name: /Cell 3 Cell 4/i })).toHaveAttribute('extraHeaders', 'Column 1,Column 2');
|
476
|
+
expect(screen.getByRole('cell', { name: /Cell 1/i })).toHaveAttribute('data-label', 'Column 1');
|
477
|
+
expect(screen.getByRole('cell', { name: /Cell 2/i })).toHaveAttribute('data-label', 'Column 2');
|
478
|
+
expect(screen.getByRole('cell', { name: /Cell 3/i })).toHaveAttribute('data-label', 'Column 1');
|
479
|
+
expect(screen.getByRole('cell', { name: /Cell 4/i })).toHaveAttribute('data-label', 'Column 2');
|
480
|
+
});
|
481
|
+
it('should render table data labels correctly for mobile breakpoint for one column table', () => {
|
482
|
+
render(React.createElement(Message, { avatar: "./img", role: "user", name: "User", content: ONE_COLUMN_TABLE }));
|
483
|
+
expect(screen.getByRole('row', { name: /Cell 1/i })).toHaveAttribute('extraHeaders', 'Column 1');
|
484
|
+
expect(screen.getByRole('row', { name: /Cell 2/i })).toHaveAttribute('extraHeaders', 'Column 1');
|
485
|
+
expect(screen.getByRole('cell', { name: /Cell 1/i })).toHaveAttribute('data-label', 'Column 1');
|
486
|
+
expect(screen.getByRole('cell', { name: /Cell 2/i })).toHaveAttribute('data-label', 'Column 1');
|
487
|
+
});
|
488
|
+
it('should render table data labels correctly for mobile breakpoint for one cell table', () => {
|
489
|
+
render(React.createElement(Message, { avatar: "./img", role: "user", name: "User", content: ONE_CELL_TABLE }));
|
490
|
+
expect(screen.getByRole('row', { name: /Cell 1/i })).toHaveAttribute('extraHeaders', 'Column 1');
|
491
|
+
expect(screen.getByRole('cell', { name: /Cell 1/i })).toHaveAttribute('data-label', 'Column 1');
|
492
|
+
});
|
493
|
+
it('should render table data labels correctly for mobile breakpoint for headerless', () => {
|
494
|
+
render(React.createElement(Message, { avatar: "./img", role: "user", name: "User", content: HEADERLESS_TABLE }));
|
495
|
+
expect(screen.getByRole('row', { name: /Cell 1/i })).toHaveAttribute('extraHeaders', '');
|
496
|
+
expect(screen.getByRole('cell', { name: /Cell 1/i })).not.toHaveAttribute('data-label');
|
497
|
+
});
|
498
|
+
it('should render table data labels correctly for mobile breakpoint for childless', () => {
|
499
|
+
render(React.createElement(Message, { avatar: "./img", role: "user", name: "User", content: CHILDLESS_TABLE }));
|
500
|
+
expect(screen.getByRole('cell')).not.toHaveAttribute('extraHeaders', 'Column 1');
|
501
|
+
});
|
502
|
+
it('should render table data labels correctly for mobile breakpoint for empty', () => {
|
503
|
+
render(React.createElement(Message, { avatar: "./img", role: "user", name: "User", content: EMPTY_TABLE }));
|
504
|
+
expect(screen.getByRole('cell')).not.toHaveAttribute('extraHeaders', '');
|
505
|
+
});
|
506
|
+
it('should render custom table aria label correctly', () => {
|
507
|
+
render(React.createElement(Message, { avatar: "./img", role: "user", name: "User", content: TABLE, tableProps: { 'aria-label': 'Test' } }));
|
508
|
+
expect(screen.getByRole('grid', { name: /Test/i })).toBeTruthy();
|
509
|
+
});
|
416
510
|
});
|
@@ -0,0 +1,20 @@
|
|
1
|
+
import React from 'react';
|
2
|
+
import { ExtraProps } from 'react-markdown';
|
3
|
+
import { TableProps } from '@patternfly/react-table';
|
4
|
+
interface Properties {
|
5
|
+
line: number;
|
6
|
+
column: number;
|
7
|
+
offset: number;
|
8
|
+
}
|
9
|
+
export interface TableNode {
|
10
|
+
children?: TableNode[];
|
11
|
+
value?: string;
|
12
|
+
position: {
|
13
|
+
start: Properties;
|
14
|
+
end: Properties;
|
15
|
+
};
|
16
|
+
tagName: string;
|
17
|
+
type: string;
|
18
|
+
}
|
19
|
+
declare const TableMessage: ({ children, ...props }: TableProps & ExtraProps) => React.JSX.Element;
|
20
|
+
export default TableMessage;
|
@@ -0,0 +1,62 @@
|
|
1
|
+
// ============================================================================
|
2
|
+
// Chatbot Main - Message - Content - Table
|
3
|
+
// ============================================================================
|
4
|
+
var __rest = (this && this.__rest) || function (s, e) {
|
5
|
+
var t = {};
|
6
|
+
for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
|
7
|
+
t[p] = s[p];
|
8
|
+
if (s != null && typeof Object.getOwnPropertySymbols === "function")
|
9
|
+
for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
|
10
|
+
if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
|
11
|
+
t[p[i]] = s[p[i]];
|
12
|
+
}
|
13
|
+
return t;
|
14
|
+
};
|
15
|
+
import React from 'react';
|
16
|
+
import { Table } from '@patternfly/react-table';
|
17
|
+
const TableMessage = (_a) => {
|
18
|
+
var _b;
|
19
|
+
var { children } = _a, props = __rest(_a, ["children"]);
|
20
|
+
const { className } = props, rest = __rest(props, ["className"]);
|
21
|
+
// This allows us to parse the nested data we get back from the 3rd party Markdown parser
|
22
|
+
// Open to feedback here if there is a better way to do this
|
23
|
+
// This looks for ths and spits them all out so we can filter them later, looking for text values
|
24
|
+
const findHeaders = (array) => {
|
25
|
+
const headers = [];
|
26
|
+
if (!array) {
|
27
|
+
return headers;
|
28
|
+
}
|
29
|
+
const traverse = (items) => {
|
30
|
+
for (const item of items) {
|
31
|
+
if (item.tagName === 'th') {
|
32
|
+
headers.push(item);
|
33
|
+
}
|
34
|
+
if (item.children) {
|
35
|
+
traverse(item.children);
|
36
|
+
}
|
37
|
+
}
|
38
|
+
};
|
39
|
+
traverse(array);
|
40
|
+
return headers;
|
41
|
+
};
|
42
|
+
const headers = findHeaders((_b = rest.node) === null || _b === void 0 ? void 0 : _b.children);
|
43
|
+
const headerTextValues = headers.map((header) => { var _a, _b; return (_b = (_a = header === null || header === void 0 ? void 0 : header.children) === null || _a === void 0 ? void 0 : _a.filter((c) => (c === null || c === void 0 ? void 0 : c.type) === 'text')[0]) === null || _b === void 0 ? void 0 : _b.value; });
|
44
|
+
// We are sending these header text values down to child tds by passing them through children, since mobile view for tables expects a dataLabel prop
|
45
|
+
// The data structure does not otherwise know this information at that level
|
46
|
+
// This is somewhat opinionated and may break if 3rd party library changes
|
47
|
+
// See Tr and Tbody for other usage
|
48
|
+
const modifyChildren = (children) => React.Children.map(children, (child) => {
|
49
|
+
if (child && (headerTextValues === null || headerTextValues === void 0 ? void 0 : headerTextValues.length) > 0) {
|
50
|
+
return React.cloneElement(child, { extraHeaders: headerTextValues });
|
51
|
+
}
|
52
|
+
return child;
|
53
|
+
});
|
54
|
+
if (!props['aria-label']) {
|
55
|
+
// eslint-disable-next-line no-console
|
56
|
+
console.warn('For accessibility reasons an aria-label should be specified for the Table via the <Message /> tableProps prop');
|
57
|
+
}
|
58
|
+
return (
|
59
|
+
// gridBreakPoint is so we show mobile-styled-PF table
|
60
|
+
React.createElement(Table, Object.assign({ "aria-label": props['aria-label'], gridBreakPoint: "grid", className: `pf-chatbot__message-table ${className ? className : ''}` }, rest), modifyChildren(children)));
|
61
|
+
};
|
62
|
+
export default TableMessage;
|